Texturare detaliată
Maparea detaliilor este o tehnică software în grafica 3D pe computer care îmbunătățește detaliile texturii la o distanță apropiată de cameră. Rezultatul final creează iluzia folosirii unei texturi cu rezoluție uriașă.
Când camera mărește pe un model poligonal, textura devine neclară. Dacă există suficientă memorie liberă, estomparea poate fi eliminată prin creșterea rezoluției texturii. Cu toate acestea, stocarea fiecărei texturi la o rezoluție mare nu este o soluție practică. Texturarea detaliată rezolvă problema într-un mod diferit:
- Textura de bază este lăsată la o rezoluție medie rezonabilă
- O textură detaliată este creată cu o imagine la scară mare a detaliilor mici (fire individuale de iarbă, pietricele, structură de lemn etc.)
- Textura rezultată este decolorată
- Filtrul de trecere înaltă elimină toate detaliile, cu excepția celor mai fine.
- Filtrul de corecție a histogramei setează luminozitatea medie la 0,5
- Ambele texturi sunt amestecate în pixel shader
- Înainte de amestecare, coordonatele texturii texturii detaliate sunt scalate astfel încât textura detaliată să se repete de câteva ori mai des decât textura de bază.
- Pentru a reduce vizibilitatea repetărilor unei texturi detaliate, scara este aleasă fără numere întregi
- Culoarea texturii de bază este înmulțită cu culoarea texturii detaliate, înmulțită cu 2 (pentru a păstra luminozitatea originală)
Exemplu de cod sursă shader
const float detailRepeat = 7,5 ;
float4 color = tex2D ( TextureSampler , input . uv );
float4 detaliu = tex2D ( DetailSampler , input . uv * detailRepeat );
culoare . rgb *= detaliu * 2 ;
Vezi și
Link -uri