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ępozaobszaremrenderowaniazdeniowanympoprzez
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
etapgracznegopotokurenderującego.Jegozadaniepoleganawyznaczeniuko-
loru(lubteżinnejwartościwspecjalnychprzypadkach)fragmentu,którymoże
zostaćumieszczonywbuforzeramki.
Testfragmentów(ang.fragmenttest).Testtenjestanalogicznydowczesnego
testufragmentów,ztążnicą,żejestwykonywanyposhaderzefragmentów.Spe-
cykacjadomyślnieprzyjmujetąwłaśniekolejność.Tylkojedentestfragmentów
możezostaćwykonanywcykluprzetwarzania.