Jak spolu souvisejí texturování, stínování a fyzikální efekty
Texturování, stínování a fyzikálně založené efekty tvoří triádu, která určuje vizuální věrohodnost počítačové grafiky. Textury přinášejí detail a variabilitu materiálu, stínování (shading) popisuje lokální interakci světla s povrchem a fyzikální efekty (PBR, globální iluminace, volumetrika) dodávají konzistentní chování světla v celém prostředí. Moderní rendering stojí na fyzikálně založeném vykreslování (PBR), které respektuje zachování energie, mikrofacetové modely rozptylu a realistické optické jevy, aby byla scéna věrohodná v širokém spektru světelných podmínek.
Texturování: zdroje detailu a variace povrchu
Textura je 2D obraz mapovaný na 3D geometrii prostřednictvím souřadnic UV. Zásadní je rozhodnutí, jaké mapy použít a v jakém barevném prostoru (sRGB vs. lineární):
- Base Color / Albedo: difuzní barva bez stínů a světel; sRGB.
- Metallic: binární až spojitá mapa (0 = dielektrikum, 1 = kov); lineární.
- Roughness / Glossiness: popisuje mikrorauhost povrchu (drsnost ↔ šířka spekulární lóby); lineární.
- Normal Map (Tangent Space): jemný reliéf bez realné geometrie pro lámání normál; lineární.
- Height / Parallax / Displacement: výšková informace; parallax mapping pro rasterizaci, skutečný displacement pro ray tracing či tesselaci.
- Ambient Occlusion: lokální stínění kavit; lineární a kombinované až ve složených texturách (např. ORM: Occlusion-Roughness-Metallic).
- Emission: vlastní svit povrchu; sRGB pro barvu, intenzitu lineárně.
- Opacity / Translucency: alfakanál a dílčí průsvitnost; lineární.
UV mapování, projekce a texel density
- UV rozvin: minimalizujte švy a zkreslení pro klíčové směry detailu. Používejte ostrovy s konzistentní texel density (px na metr), aby se materiál nezvětšoval/zmenšoval mezi díly.
- Triplanární projekce: vhodná pro terény nebo objekty bez dobrého UV; omezuje švy, ale je náročnější na sampling.
- Atlasování a tiling: atlas s více materiály šetří draw calls; tiling s maskami bojuje s opakováním vzoru (detail textury, macro-variace, noise masky).
Filtrace textur: aliasing, mipmapy a anizotropie
- Mipmapping: předfiltrované úrovně redukují aliasing a šum v dálce; volba trilinear vs. anisotropic filtrace dle úhlu pohledu.
- Anizotropní filtrace: zachovává detail při nízkých úhlech dopadu pohledu na plochy (silnice, podlahy).
- Prefiltrace normal map: mikronormály je nutné korektně filtrovat (např. Toksvig nebo LEAN mapy) pro zachování energie při downsamplingu.
Stínování: od empirických modelů k mikrofacetové fyzice
Stínování definuje, jak povrch odráží a pohlcuje světlo. Historicky:
- Lambert – čistě difuzní, levný, ale bez spekulárních odlesků.
- Phong / Blinn-Phong – empirické spekulární zvýraznění, snadné, avšak nefyzikální (porušuje konzervaci energie).
- Cook–Torrance (mikrofacetový BRDF) – základ PBR: D (distribuce mikrofacet), F (Fresnel), G (geometrická maska-stínění).
Standardem je GGX/Trowbridge–Reitz pro D (přirozenější „tlusté“ ocasy odlesků), Smith pro G a Schlickův aproximovaný Fresnel F = F0 + (1 − F0)(1 − V·H)^5. F0 je základní odrazivost v normálním směru: ~0,02–0,08 pro dielektrika (dána indexem lomu) a barevná pro kovy.
PBR workflow: Metallic–Roughness vs. Specular–Glossiness
- Metallic–Roughness: jediné albedo (bez spekulární barvy pro dielektrika), metallic určuje, zda je energie v difuzi nebo ve spekuláru; roughness tvaruje rozptyl.
- Specular–Glossiness: explicitní spekulární barva (u dielektrik typicky šedá ~0,04), gloss jako inverze roughness. Výhodou je explicitní kontrola F0, nevýhodou složitější authoring.
Klíčem je zachování energie: součet difuzní a spekulární odražené energie nesmí převýšit dopadající. Proto se difuze škáluje dle F a materiálové kombinace (metalický materiál mívá nulovou difuzi).
Osvětlení a IBL: prostředí je král
- Image-Based Lighting (IBL): využití HDR environment map pro difuzní (irradiance) a spekulární (prefiltered radiance) složku; BRDF LUT pro integraci Fresnel a G/V faktorů.
- Prefiltrace: difuze (silně rozmazané prostředí konvolucí kosinem) a spekulár (řada roughness-dependent map, často mip chain s GGX preintegrací).
- Expozice a tonemapping: korektní ACES či filmic mapování do LDR, aby si materiály zachovaly relativní vztahy jasů.
Stíny: přesnost, stabilita a měkké okraje
- Shadow mapping: standard rasterizace; problémy: acne, peter-panning, aliasing. Řešení: bias, PCF/PCSS, variance/EVSM, cascaded shadow maps (CSM) pro velké scény.
- Ray-traced stíny: přesné polotóny (penumbra) dle velikosti světla; vyžaduje denoising (SVGF, OIDN).
- Contact shadows: doplněk v blízkosti kontaktů (SSCS, GTAO), aby se předešlo levitaci objektů.
Geometrický detail: normal, bump, parallax a displacement
- Bump mapping: přepočet osvětlení podle výšky bez změny normál; levné, ale omezené.
- Normal mapping: přímé dodání perturbovaných normál v tangent space; de facto standard pro střední detail.
- Parallax (occlusion) mapping: simulace vlastní paralaxy a samo-stínění textury; zlepšuje reliéf, ale může artefaktovat pod velkými úhly.
- Displacement (tesselace / ray tracing): skutečný posun vrcholů nebo mikropolygonů; nejvěrnější, ale nejnáročnější.
Fyzikální efekty materiálů: SSS, transmisivita, anizotropie
- Subsurface Scattering (SSS): difuzní podpovrchový rozptyl (kůže, mramor) – BSSRDF (např. d’Eon, Jensen). V rasterizaci často „pre-integrated SSS“ přes profile convolution.
- Transmisivita a průsvitnost: tenké materiály (listy, papír) – „thin surface“ model vs. silné sklo s lomem (IOR), disperzí a dvojitými Fresnelovými efekty.
- Anizotropní BRDF: kartáčovaný kov, vlasy; zahrnuje tangenciální směr a rozdílné drsnosti (roughnessU/V).
Volumetrická média a účinky atmosféry
- Participující média: mlha, kouř, opar; jednorázový albedo, fázová funkce (Henyey–Greenstein), více-násobný rozptyl (approx. s volumetric integration + reprojekce).
- God rays, aerial perspective: světelné paprsky a zeslabení kontrastu s vzdáleností (Rayleigh/Mie aproximace).
Globální iluminace: GI pro real-time a offline
- Screen-Space GI (SSGI): rychlý, ale omezený na viditelnou geometrii; vhodné pro doplnění.
- Voxelizace / SDF / probe grids: irradiance probes, DDGI s reprojekcí; dobré pro dynamické scény.
- Lightmaps a hybridy: předpočtená difuze, dynamická spekulární složka přes IBL; pro statickou architekturu vysoce efektivní.
- Path tracing: referenční řešení; v real-time s těžkou temporalitou, adaptivním samplingem a denoisingem.
Temporální techniky a odšumování
- TAA (Temporal Anti-Aliasing): akumuluje více subpixelových vzorků; pozor na ghosting a ztrátu detailu → reactive masks, sharpen.
- Denoising RT efektů: stíny, GI, odrazy – využití temporální akumulace, motion vectors a svazků filtrů (SVGF, spatio-temporal variance).
Výkon a architektura: forward, deferred, tiled/clustered
- Forward+ / Clustered Forward: dobré pro průhlednosti, méně G-Bufferu, světla se cílí na shluky.
- Deferred: efektivní pro mnoho světel a těžké materiály; nevýhoda pro transparentní materiály a MSAA.
- Hybridní přístup: neprůhledné v deferred, průhledné a speciály ve forward; tile/cluster culling šetří fill-rate.
Kalibrace barev a tonemapping
- Lineární workflow: textury v sRGB jen tam, kde reprezentují barvu; výpočty v lineárním prostoru.
- Expozice: automatická / ruční; middle gray kalibrace podle záměru scény.
- Tonemapper: ACES/Filmic pro přirozené roll-off světel; minimalizace clippingu saturací.
Ray tracing v praxi: odlesky, stíny a GI
- Specular/reflection RT: přesné odrazy pro kovy a hladké povrchy, fallback SSR pro detaily na obrazovce.
- RT stíny a kontakty: realistická penumbra podle velikosti světel; kombinace s raster PCF pro levné střední vzdálenosti.
- RT GI / Path tracing: fyzikálně věrné nepřímé světlo; nutná agresivní temporalita a denoising.
Best practices pro autorství materiálů
- Fyzikální rozsahy: držte se tabulkových hodnot albeda a F0; vyvarujte se energy gain.
- Metalness: nepoužívejte polovičaté hodnoty, kde to nedává smysl; dielektrikum nemá barevný spekulár.
- Roughness linearita: roughness není gloss invertovaná gama; editujte lineárně, nikoli v sRGB.
- Texel density a tiling: konzistence napříč scénou; rozbíjejte opakování makro-noisem a decal prvky.
Časté chyby a jejich diagnostika
- „Plastový“ vzhled: příliš nízké F0 nebo špatná roughness; zkontrolujte IBL a tonemapping.
- Přepal spekuláru: albedo s nasnímanými světly/stíny (nečisté albedo) → reautorovat PBR-friendly texturu.
- Shadow acne / peter-panning: chybný bias a rozlišení stínových map; použijte slope-scaled bias, CSM a PCF.
- Normal map artefakty: různé tangent space mezi DCC a enginem; přegenerovat nebo sjednotit tangent basis.
Pipeline a validace: od DCC po engine
- Color management: sRGB tagování textur, lineární export HDR; validace v enginu s LUT.
- Unit scale: konzistentní metry → světelný pád (inverse-square) a SSS/volumetry se chovají očekávaně.
- Profilace: GPU capture, rozklad času na shadow pass, G-Buffer, lighting, post-processing; optimalizace cíleně.
Post-processing jako součást vnímání materiálu
- Bloom a glare: pomáhají čitelnosti spekuláru, ale nesmí maskovat clipping.
- Vignette a chromatic aberration: používat střídmě; nejsou náhradou za správné PBR.
- Motion blur a DOF: fyzikální efekty fotoaparátu podporují měřítko a realismus (s ohledem na výkon).
Kontrolní seznam pro realistickou scénu
- Materiály v PBR rozsazích (albedo, F0, roughness) a energetická konzervace.
- HDR prostředí, správně prefiltrované IBL (irradiance + specular prefilter + BRDF LUT).
- Korektní UV a texel density, prefiltrace normal map, anizotropní filtrace.
- Stíny stabilní (CSM/PCF) nebo RT s denoisingem; contact shadows pro kontaktní místa.
- Volumetrika a atmosféra sladěná s tonemapperem a expozicí.
- Temporální stabilita (TAA nastavení, masky), minimalizace ghostingu.
- Profilace a cílená optimalizace (tile/cluster culling, rozumné rozlišení textur).
Závěr: koherence nad vším
Největším tajemstvím fotorealismu není jediný shader nebo textura, ale koherentní fyzikální přístup napříč celou pipeline. PBR materiály v realistických rozsazích, korektní IBL a expozice, stabilní stíny a pečlivé filtrování textur společně vytvářejí scénu, která obstojí v jakémkoli světle. Když je navíc podpoříte vhodnými fyzikálními efekty (SSS, volumetrika, GI) a disciplinovaným post-processingem, získáte obraz, který je současně krásný i věrohodný – a navíc škálovatelný výkonově pro cílovou platformu.