Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
3.PotokrenderującyOpenGL
31
•Przesunięciegłębi(ang.depthoffset).Wtymetapiejestdokonywaneopcjo-
nalneprzesunięciegłębidlakażdegowynikowegofragmentuozadanąprzezfunk-
cjęAPIPolygonOffset()wartość.
•Wygładzaniekrawędzi(ang.antialiasing).Natymetapiejestdokonywa-
newygładzeniekrawędziprymitywówprzezwykonanietestu,mającegonacelu
sprawdzenie,jakaczęśćpikselajestpokrywanaprzezzawierającysięwnimfrag-
mentprymitywu.
3.1.3.Przetwarzaniefragmentów
Poniższeetapyzajmująsięprzetwarzaniemindywidualnychfragmentówbędących
produktemprocesurasteryzacji.
•Testprzynależnościpiksela(ang.pixelownershiptest).Testtensprawdza
przynależnośćpikseladobuforaramki.Możesięzdarzyć,żefragmentokna,na
którymobiekt3Djestrenderowany,będziezasłoniętyprzezinneoknosystemowe.
Testtenmanaceluodrzucenietakichpikseli.
•Testnożyc(ang.scissortest).Testtenpowodujeodrzucenietychfragmen-
tów,któreznajdująsiępozaobszaremrenderowaniazdefiniowanympoprzez
funkcjęAPIglScissor().
•Wczesnytestfragmentów(ang.earlyfragmenttest).Natesttenskładająsię
dwatesty:szablonowy(ang.stenciltest)igłębi(ang.depthtest),któresąwyko-
nywanewtejwłaśniekolejności.Testszablonowypozwaladokonaćporównania
naliczbachcałkowitychmiędzywartościąprzypisanądodanegofragmentu,atą
znajdującasięaktualniewbuforzeszablonowym.Warunkitestusąokreślanezpo-
ziomuAPIpoprzezfunkcjeglStencil*().Testgłębizkoleipozwaladokonać
porównaniawartościgłębiaktualnieprzetwarzanegofragmentuzwartościąodpo-
wiadającegofragmentuznajdującegosięwbuforzegłębi.Warunkitegotestusą
równieżokreślanezpoziomuAPI,tymrazemprzezfunkcjęglDepthFunc().Frag-
menty,którenieprzechodząowychtestów,sąodrzucane.Obatestysąokreślane
mianemwczesnychtestów,gdyżzostająonewykonanejeszczeprzedwywołaniem
shaderafragmentów.Więcejinformacjinatentematznajdujesięwp.6.9.4.
•Shaderfragmentów(ang.fragmentshader).Jesttoostatniprogramowalny
etapgraficznegopotokurenderującego.Jegozadaniepoleganawyznaczeniuko-
loru(lubteżinnejwartościwspecjalnychprzypadkach)fragmentu,którymoże
zostaćumieszczonywbuforzeramki.
•Testfragmentów(ang.fragmenttest).Testtenjestanalogicznydowczesnego
testufragmentów,ztąróżnicą,żejestwykonywanyposhaderzefragmentów.Spe-
cyfikacjadomyślnieprzyjmujetąwłaśniekolejność.Tylkojedentestfragmentów
możezostaćwykonanywcykluprzetwarzania.