Detaljerad texturering
Detaljkartläggning är en mjukvaruteknik i 3D-datorgrafik som förbättrar texturdetaljer på nära avstånd från kameran . Slutresultatet skapar en illusion av att använda en enorm upplösningsstruktur.
När kameran zoomar in på en polygonal modell blir texturen suddig. Om det finns tillräckligt med ledigt minne kan suddighet elimineras genom att öka upplösningen på texturen. Att lagra varje textur med en enorm upplösning är dock ingen praktisk lösning. Detaljstrukturering löser problemet på ett annat sätt:
- Basstrukturen lämnas i en rimlig medelupplösning
- En detaljerad struktur skapas med en storskalig bild av små detaljer (enskilda grässtrån, småsten, trästruktur, etc.)
- Den resulterande texturen är missfärgad
- Högpassfiltret tar bort alla utom de finaste detaljerna.
- Histogramkorrigeringsfiltret ställer in den genomsnittliga ljusstyrkan på 0,5
- Båda texturerna blandas i pixelskuggningen
- Innan blandningen skalas strukturkoordinaterna för den detaljerade strukturen så att den detaljerade strukturen upprepas flera gånger oftare än basstrukturen.
- För att minska synligheten för upprepningar av en detaljerad textur, väljs skalan som inte är heltal
- Färgen på basstrukturen multipliceras med färgen på den detaljerade strukturen, multiplicerad med 2 (för att bevara den ursprungliga ljusstyrkan)
Exempel shader källkod
const float detailRepeat = 7,5 ;
float4 color = tex2D ( TextureSampler , input . uv );
float4 detail = tex2D ( DetailSampler , input . uv * detailRepeat );
färg . rgb *= detalj * 2 ;
Se även
Länkar