Mitkä ovat parhaat vinkit OpenGL® Depthille?

OpenGL®-syvyyspuskuri on yksi väärinymmärretyimmistä, monimutkaisimmista ja viime kädessä hyödyllisimmistä kolmiulotteisen (3D) grafiikkaohjelmoijan käytettävissä olevista työkaluista. Puskuria voidaan optimoida useilla tavoilla, jotta ohjelman kuvataajuutta voidaan nostaa, mukaan lukien lähi- ja etäleikkaustasojen oikea asettaminen. Muita vinkkejä ovat puskurin tyhjentäminen renderöintien välillä ja sellaisten kohtauskoostumusten välttäminen, jotka voivat aiheuttaa syvyyden ongelman asettamalla esineet liian lähelle toisiaan. Jotkut kaksiulotteiset (2D) grafiikkatemput voidaan suorittaa helposti ja tehokkaasti käyttämällä OpenGL®-syvyyspuskuria. Myös käytössä oleva näytönohjain voi joskus olla syvyysongelma, joten oikean asetuksen käyttäminen voi nopeuttaa nopeutta ja vähentää tarpeettomia käsittelyjaksoja.

Yksi ensimmäisistä ongelmista, jotka voivat vaikuttaa OpenGL® -syvyyspuskurin suorituskykyyn, jota kutsutaan myös Z -puskuriksi perinteisesti suorakulmaisen syvyystason merkitsevän kirjaimen jälkeen, on lähi- ja etäleikkaustasojen sijoittaminen. Nämä tasot määrittävät rajat sille, mitä kohtauksessa tulisi esittää ja mitä ei, ja niiden arvot osoittavat etäisyyden katsojasta, josta leikkauksen pitäisi alkaa ja lopettaa. Intuitiivinen ajatus olisi aloittaa renderointi kohdasta, jossa katsoja on, asettamalla lähitaso nollaan, mutta tämä ei itse asiassa pidä paikkaansa. Itse asiassa OpenGL® ei salli lähitason asettamista nollaan. Jos lähellä olevan tason arvo on hyvin pieni, esimerkiksi murto -osa yhdestä, renderöintilaite ei ehkä näytä mitään tai se ei pysty lajittelemaan syvyyspuskuria oikein.

Tämä johtuu siitä, että mitä lähempänä kohde on katsojaa, sitä tarkemmin OpenGL® laskee kohteen sijainnin. Kun etäisyys katsojaan lähestyy nollaa, laskettu tarkkuus kasvaa eksponentiaalisesti. Tämä hidastaa renderointiaikaa ja voi johtaa parittomiin graafisiin esineisiin ja muihin ongelmiin sen lisäksi, että laskettua tarkkuustasoa tarvitaan harvoin.

Kun hahmonnat 2D -grafiikkaa, OpenGL® -syvyyspuskuri voi helpottaa joitakin toimintoja. Syvyyspuskurin käyttäminen koostumuksen laattoina käytettävien nelosien lievään kompensointiin voi auttaa kaakeloidun kohtauksen elementtejä liikkumaan sujuvasti ilman, että kuvassa syntyy outoja tehosteita, jotka johtuvat kahdesta monikulmiosta, jotka ovat päällekkäin samassa tasossa. Samalla tavalla valmistetut elementit voidaan piilottaa näkökentästä tai kaukaisen leikkaustason taakse, jotta ne voidaan nopeasti tuoda näyttämölle, mahdollisesti jopa hyödyntämällä muutoksia ja kierroksia erityisen häivytyksen tai häivytyksen aikaansaamiseksi.

Lopuksi, vaikka OpenGL®-syvyyspuskuri voi tukea eri laitteistokokoja puskurille, on parasta käyttää 16-bittistä versiota. Tämä johtuu siitä, että useimmissa kohtauksissa 32-bittisen puskurin käyttö voi hidastaa renderointiaikaa. Kaikki näytönohjaimet eivät myöskään tue 32-bittisiä syvyyspuskureita, joten pudottaminen alimpaan yhteiseen nimittäjään tarkoittaa, että useammat ihmiset voivat käyttää 3D-ohjelmaa sellaisena kuin se on kirjoitettu.