Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
32
Shadery.ZaawansowaneprogramowaniewGLSL
3.1.4.Postprocessfragmentów
Natejwysokościpotokufragmentysąpoddawanewewnętrznymprocesomprze-
kształcającymjewewłaściwypikselbuforaramki.
Mieszaniekolorów(ang.blending).Etaptenrealizujemieszaniekolorów
przetwarzanegofragmentuzfragmentemznajdującymsięwbuforzekoloruram-
ki.UstawieniajegodziałaniasądokonywanezpoziomuAPIpoprzezfunkcje
glBlend*().
Operacjelogiczne(ang.logicaloperations).Natymetapiesąrealizowane
logiczneoperacjenabitachwartościkolorudanegofragmentuitegoznajdującego
sięwbuforzekoloruramki.IchustawieniasądokonywanezapomocąfunkcjiAPI
glLogicOp().Aktywowanieoperacjilogicznychuniemożliwiamieszaniekolorów
(etaptenjestpomijanynawetwtedy,gdyzostałaktywowany).
Zapisdobuforaramki.Jesttoostatnietap,wktórymbuforramkizostaje
zaktualizowanynapodstawiedostarczonegofragmentu.
3.2.Wprowadzeniedoprogramowalnegopotoku
PierwszaocjalnieudostępnionawOpenGLw2004rokuimplementacjapro-
gramowalnegopotokuskładałasięzdwóchetapów,pozwalającychnauzyskanie
większegopoziomurealizmuwyświetlanychpowierzchni.Pierwszyznich,znajdu-
jącysięnapoczątkupotoku,zostałzaprojektowanydowykonywaniaprzekształceń
wierzchołkówprymitywówgracznychzapomocąshaderawierzchołków.Nato-
miastfunkcjonalnośćdrugiegoetapuzostałazdeniowanajakoszerokopojęte
przekształcenianaobrazie,realizowanezapomocąshaderafragmentów.Wciągu
kilkuostatnichlatprogramowalnypotokrenderującyuległznacznemurozbudowa-
niu.Zostałydodanenoweetapy,umożliwiająceuzyskaniejeszczebardziejreali-
stycznychwizualizacji.WrazzpojawieniemsięOpenGLwwersji3.2w2009roku,
międzyistniejącymishaderamizostałumieszczonyetapumożliwiającyprzetwa-
rzaniecałychprymitywówgracznych(shaderwierzchołkówprzetwarzapojedyn-
czewierzchołkiprymitywu),amianowicieshadergeometrii.Niecałyrokźniej
nastąpiłapremieraczwartejwersjiOpenGL,która,wprowadzającsekcjęteselacji,
ustaliłaaktualnydodzisiajkształtpotokugracznego.Wskładnowododanej
sekcjiweszłydwaprogramowalneetapyodpowiedzialnezakontrolęorazprzebieg
teselacji:shaderkontroliteselacjiorazshaderewaluacjiteselacji.W2012roku,
wrazzaktualizacjąOpenGLdowersji4.3,programiściotrzymalibardzopotężne
narzędziewpostacishaderaobliczeniowego.Możnapowiedzieć,żestanowion
odrębnypotokobliczeniowy,składającysięzjednegoetapu.Jegofunkcjonalność
możezostaćwykorzystanadoprzygotowaniadanych,dostarczanychdopotoku
renderującego.Zewzględunafakt,żeshaderobliczeniowyniejestbezpośred-
niozwiązanyzpotokiemrenderującym,powiemysobieonimszerzejdopiero