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
PierwszaoficjalnieudostępnionawOpenGLw2004rokuimplementacjapro-
gramowalnegopotokuskładałasięzdwóchetapów,pozwalającychnauzyskanie
większegopoziomurealizmuwyświetlanychpowierzchni.Pierwszyznich,znajdu-
jącysięnapoczątkupotoku,zostałzaprojektowanydowykonywaniaprzekształceń
wierzchołkówprymitywówgraficznychzapomocąshaderawierzchołków.Nato-
miastfunkcjonalnośćdrugiegoetapuzostałazdefiniowanajakoszerokopoję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ówgraficznych(shaderwierzchołkówprzetwarzapojedyn-
czewierzchołkiprymitywu),amianowicieshadergeometrii.Niecałyrokpóźniej
nastąpiłapremieraczwartejwersjiOpenGL,która,wprowadzającsekcjęteselacji,
ustaliłaaktualnydodzisiajkształtpotokugraficznego.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