Detaljeret teksturering
Detailmapping er en softwareteknik i 3D-computergrafik, der forbedrer teksturdetaljer i tæt afstand fra kameraet . Slutresultatet skaber illusionen af at bruge en enorm opløsningstekstur.
Når kameraet zoomer ind på en polygonal model, bliver teksturen sløret. Hvis der er nok ledig hukommelse, kan sløring elimineres ved at øge opløsningen af teksturen. Det er dog ikke en praktisk løsning at gemme hver tekstur med en enorm opløsning. Detaljeteksturering løser problemet på en anden måde:
- Basisteksturen efterlades i en rimelig medium opløsning
- En detaljeret tekstur skabes med et storstilet billede af små detaljer (individuelle græsstrå, småsten, træstruktur osv.)
- Den resulterende tekstur er misfarvet
- Højpasfilteret fjerner alle undtagen de fineste detaljer.
- Histogramkorrektionsfilteret indstiller den gennemsnitlige lysstyrke til 0,5
- Begge teksturer er blandet i pixelskyggeren
- Før blanding skaleres teksturkoordinaterne for den detaljerede tekstur, så den detaljerede tekstur gentages flere gange oftere end basisteksturen.
- For at reducere synligheden af gentagelser af en detaljeret tekstur, er skalaen valgt ikke-heltal
- Farven på basisteksturen ganges med farven på den detaljerede tekstur ganget med 2 (for at bevare den oprindelige lysstyrke)
Eksempel på shader-kildekode
const float detailRepeat = 7,5 ;
float4 color = tex2D ( TexturSampler , input . uv );
float4 detail = tex2D ( DetailSampler , input . uv * detailRepeat );
farve . rgb *= detalje * 2 ;
Se også
Links