Detailní texturování
Mapování detailů je softwarová technika ve 3D počítačové grafice, která zlepšuje detaily textury v těsné vzdálenosti od kamery. Konečný výsledek vytváří iluzi použití textury s velkým rozlišením.
Když kamera přiblíží polygonální model, textura se rozmaže. Pokud je dostatek volné paměti, lze rozmazání eliminovat zvýšením rozlišení textury. Ukládání každé textury v obrovském rozlišení však není praktické řešení. Detailní texturování řeší problém jiným způsobem:
- Základní textura je ponechána v rozumném středním rozlišení
- Je vytvořena detailní textura s velkoplošným obrazem malých detailů (jednotlivá stébla trávy, oblázky, struktura dřeva atd.)
- Výsledná textura se odbarví
- Hornopropustný filtr odstraňuje všechny detaily kromě těch nejjemnějších.
- Korekční filtr histogramu nastaví průměrný jas na 0,5
- Obě textury jsou smíchány v pixel shaderu
- Před prolnutím se souřadnice textury podrobné textury upraví tak, aby se podrobná textura opakovala několikrát častěji než základní textura.
- Pro snížení viditelnosti opakování detailní textury je měřítko zvoleno neceločíselné
- Barva základní textury je vynásobena barvou detailní textury vynásobená 2 (pro zachování původního jasu)
Příklad zdrojového kódu shaderu
const float detailRepeat = 7,5 ;
float4 color = tex2D ( TextureSampler , vstup . uv );
float4 detail = tex2D ( DetailSampler , vstup . uv * detailRepeat );
barva . rgb *= detail * 2 ;
Viz také
Odkazy