Yksityiskohtainen teksturointi
Yksityiskohtien kartoitus on ohjelmistotekniikka 3D-tietokonegrafiikassa, joka parantaa pintakuvioiden yksityiskohtia lähietäisyydellä kamerasta. Lopputulos luo illuusion valtavan resoluution tekstuurin käytöstä.
Kun kamera zoomaa monikulmion malliin, tekstuuri muuttuu epäselväksi. Jos vapaata muistia on tarpeeksi, epäterävyyttä voidaan poistaa lisäämällä tekstuurin resoluutiota. Jokaisen tekstuurin tallentaminen suurella resoluutiolla ei kuitenkaan ole käytännöllinen ratkaisu. Yksityiskohtaisten teksturointi ratkaisee ongelman eri tavalla:
- Pohjatekstuuri jätetään kohtuulliseen keskiresoluutioon
- Yksityiskohtainen rakenne luodaan suurella kuvalla pienistä yksityiskohdista (yksittäiset ruohonkorvat, kiviä, puurakenne jne.)
- Tuloksena oleva rakenne on värjäytynyt
- Ylipäästösuodatin poistaa kaikki paitsi hienoimmat yksityiskohdat.
- Histogrammin korjaussuodatin asettaa keskimääräiseksi kirkkaudeksi 0,5
- Molemmat tekstuurit sekoitetaan pikselivarjostimessa
- Ennen sekoittamista yksityiskohtaisen tekstuurin tekstuurin koordinaatit skaalataan siten, että yksityiskohtainen rakenne toistuu useita kertoja useammin kuin perustekstuuri.
- Yksityiskohtaisen tekstuurin toistojen näkyvyyden vähentämiseksi asteikko valitaan ei-kokonaislukuksi
- Perustekstuurin väri kerrotaan yksityiskohtaisen tekstuurin värillä kerrottuna kahdella (alkuperäisen kirkkauden säilyttämiseksi)
Esimerkki shader-lähdekoodista
const float detailRepeat = 7.5 ;
float4 color = tex2D ( TextureSampler , input . uv );
float4 detail = tex2D ( DetailSampler , input . uv * detailRepeat );
väri . rgb *= yksityiskohta * 2 ;
Katso myös
Linkit