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 mikroskopickou drsnost povrchu (drsnost ↔ šířka spekulární lalokové funkce); lineární.
- Normal Map (Tangent Space): jemný reliéf bez skutečné geometrie pro změnu směru normál; lineární.
- Height / Parallax / Displacement: výšková informace; parallax mapping pro rasterizaci, skutečný displacement pro ray tracing či teselaci.
- Ambient Occlusion: lokální stínění dutin; lineární a kombinované až ve složených texturách (např. ORM: Occlusion-Roughness-Metallic).
- Emission: vlastní svit povrchu; sRGB pro barvu, intenzita lineárně.
- Opacity / Translucency: alfa kanál a částečná průsvitnost; lineární.
UV mapování, projekce a hustota texelů
- UV rozvinutí: minimalizujte švy a zkreslení v klíčových směrech detailu. Používejte ostrovy s konzistentní hustotou texelů (px na metr), aby se materiál mezi částmi nezvětšoval ani nezmenšoval.
- Triplanární projekce: vhodná pro terény nebo objekty bez kvalitních UV souřadnic; omezuje švy, ale je náročnější na vzorkování.
- Atlasování a opakování textur: atlas s více materiály šetří počet volání vykreslování; opakování textur s maskami pomáhá potlačit opakující se vzor (detailní textury, makrovariace, šumové masky).
Filtrování textur: aliasing, mipmapy a anizotropie
- Mipmapping: předfiltrované úrovně omezují aliasing a šum ve vzdálenosti; volba mezi trilineárním a anizotropním filtrováním podle úhlu pohledu.
- Anizotropní filtrování: zachovává detaily při nízkých úhlech pohledu na plochy (silnice, podlahy).
- Předfiltrování normal map: mikronormály je nutné správně filtrovat (např. metodou Toksvig nebo pomocí map LEAN), aby se při zmenšování rozlišení zachovalo zachování energie.
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í model, nenáročný na výpočet, ale bez spekulárních odlesků.
- Phong / Blinn-Phong – empirické spekulární zvýraznění, snadné na použití, ale nefyzikální (porušuje zákon zachování energie).
- Cook–Torrance (mikrofacetový BRDF) – základ PBR: D (distribuce mikrofacet), F (Fresnelův člen), G (geometrické maskování a stínění).
Standardem je GGX/Trowbridge–Reitz pro D (přirozenější „tlusté“ chvosty odlesků), Smith pro G a Schlickův aproximovaný Fresnelův člen F = F0 + (1 − F0)(1 − V·H)^5. F0 je základní odrazivost v kolmém směru: přibližně 0,02–0,08 u dielektrik (daná indexem lomu) a barevná u kovů.
Pracovní postup PBR: Metallic–Roughness vs. Specular–Glossiness
- Metallic–Roughness: jediné albedo (bez spekulární barvy pro dielektrika), parametr metallic určuje, zda je energie v difuzní, nebo ve spekulární složce; roughness ovlivňuje tvar rozptylu.
- Specular–Glossiness: explicitní spekulární barva (u dielektrik typicky šedá, přibližně 0,04), gloss jako inverze parametru roughness. Výhodou je explicitní kontrola F0, nevýhodou složitější tvorba materiálu.
Klíčem je zachování energie: součet difuzní a spekulárně odražené energie nesmí převýšit dopadající energii. Proto se difuzní složka škáluje podle F a kombinace materiálů (metalický materiál mívá nulovou difuzní složku).
Osvětlení a IBL: prostředí je král
- Image-Based Lighting (IBL): využití HDR map prostředí pro difuzní (irradiance) a spekulární (prefiltered radiance) složku; BRDF LUT slouží k integraci Fresnelova členu a faktorů G/V.
- Předfiltrování: difuzní složka (silně rozmazané prostředí konvolucí s kosinem) a spekulární složka (řada map závislých na roughness, často řetězec mipmap s předintegrovaným GGX).
- Expozice a mapování tónů: správné mapování ACES či filmic do LDR, aby si materiály zachovaly vzájemné poměry jasů.
Stíny: přesnost, stabilita a měkké okraje
- Shadow mapping: standardní metoda rasterizace; problémy: acne, peter-panning, aliasing. Řešení: bias, PCF/PCSS, variance/EVSM, kaskádové stínové mapy (CSM) pro rozsáhlé scény.
- Ray-traced stíny: přesné polostínové oblasti (penumbra) podle velikosti světla; vyžadují odšumování (SVGF, OIDN).
- Kontaktní stíny: doplněk v blízkosti míst kontaktu (SSCS, GTAO), který zabraňuje dojmu, že objekty levitují.
Geometrický detail: normal, bump, parallax a displacement
- Bump mapping: přepočet osvětlení podle výšky bez změny normál; nenáročný, ale omezený.
- Normal mapping: přímé zadání pozměněných normál v tangent space; faktický standard pro středně jemné detaily.
- Parallax (occlusion) mapping: simulace skutečné paralaxy a samostínění textury; zlepšuje dojem reliéfu, ale při velkých úhlech může způsobovat artefakty.
- Displacement (teselace / ray tracing): skutečné posunutí vrcholů nebo mikropolygonů; nejvěrnější metoda, 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 se často používá „předintegrované SSS“ prostřednictvím konvoluce profilu.
- Transmisivita a průsvitnost: tenké materiály (listy, papír) – model „thin surface“ oproti silnému sklu s lomem (IOR), disperzí a dvojitými Fresnelovými efekty.
- Anizotropní BRDF: kartáčovaný kov, vlasy; zahrnuje tangenciální směr a různé drsnosti (roughnessU/V).
Objemová média a účinky atmosféry
- Participující média: mlha, kouř, opar; jednorázové albedo, fázová funkce (Henyey–Greenstein), vícenásobný rozptyl (přibližně pomocí volumetric integration + reprojekce).
- God rays, atmosférická perspektiva: světelné paprsky a zeslabování kontrastu se vzdáleností (aproximace Rayleighova/Mieova rozptylu).
Globální iluminace: GI pro real-time a offline rendering
- Screen-Space GI (SSGI): rychlá metoda, ale omezená na viditelnou geometrii; vhodná jako doplněk.
- Voxelizace / SDF / sítě sond: irradiance probes, DDGI s reprojekcí; vhodné pro dynamické scény.
- Lightmaps a hybridní řešení: předpočítaná difuzní složka, dynamická spekulární složka prostřednictvím IBL; vysoce efektivní pro statickou architekturu.
- Path tracing: referenční řešení; v real-time vyžaduje náročné temporální techniky, adaptivní vzorkování a odšumování.
Temporální techniky a odšumování
- TAA (Temporal Anti-Aliasing): akumuluje více subpixelových vzorků; pozor na zdvojování obrazu a ztrátu detailů → reactive masks, sharpen.
- Odšumování RT efektů: stínů, GI a odrazů – využití temporální akumulace, vektorů pohybu a svazků filtrů (SVGF, spatiotemporální variance).
Výkon a architektura: forward, deferred, tiled/clustered
- Forward+ / Clustered Forward: vhodné pro průhledné materiály, méně dat v G-bufferu, světla se přiřazují ke shlukům.
- Deferred: efektivní při velkém počtu světel a složitých materiálech; nevýhodou je podpora průhledných materiálů a MSAA.
- Hybridní přístup: neprůhledné objekty v režimu deferred, průhledné a speciální objekty v režimu forward; ořezávání podle dlaždic a shluků šetří fill rate.
Kalibrace barev a mapování tónů
- Lineární pracovní postup: textury jsou v sRGB pouze tehdy, když reprezentují barvu; výpočty probíhají v lineárním prostoru.
- Expozice: automatická / ruční; kalibrace podle střední šedé (middle gray) podle záměru scény.
- Tonemapper: ACES/Filmic pro přirozené potlačení světel; minimalizujte ořezávání barev způsobené saturací.
Ray tracing v praxi: odlesky, stíny a GI
- Specular/reflection RT: přesné odrazy na kovech a hladkých površích, s využitím SSR jako náhradního řešení pro detaily na obrazovce.
- RT stíny a kontaktní stíny: realistická penumbra podle velikosti světel; kombinace s rasterizovaným PCF pro střední vzdálenosti s nízkými výpočetními nároky.
- RT GI / Path tracing: fyzikálně věrné nepřímé světlo; vyžaduje intenzivní temporální zpracování a odšumování.
Osvědčené postupy při tvorbě materiálů
- Fyzikální rozsahy: držte se tabulkových hodnot albeda a F0; vyvarujte se energy gain.
- Metalness: nepoužívejte mezilehlé hodnoty, pokud to nedává smysl; dielektrikum nemá barevnou spekulární složku.
- Linearita roughness: roughness není gloss převedená inverzní gama korekcí; upravujte ji lineárně, nikoli v sRGB.
- Hustota texelů a opakování textur: zachovejte konzistenci napříč scénou; rozbíjejte opakování pomocí makrošumu a decalů.
Časté chyby a jejich diagnostika
- „Plastový“ vzhled: příliš nízké F0 nebo nesprávná roughness; zkontrolujte IBL a mapování tónů.
- Přepálená spekulární složka: albedo se zachycenými světly a stíny (znečištěné albedo) → znovu vytvořte texturu vhodnou pro PBR.
- Shadow acne / peter-panning: nesprávný bias a rozlišení stínových map; použijte bias škálovaný podle sklonu, CSM a PCF.
- Artefakty normal map: rozdílný tangent space mezi DCC a enginem; znovu vygenerujte mapy nebo sjednoťte tangent basis.
Pipeline a validace: od DCC po engine
- Správa barev: označování textur jako sRGB, lineární export HDR; validace v enginu pomocí LUT.
- Měřítko jednotek: zachovejte konzistentní metry → útlum světla (inverse-square) a SSS/volumetrické efekty se budou chovat podle očekávání.
- Profilování: zachycení práce GPU, rozbor času věnovaného průchodu stínů, G-bufferu, osvětlení a postprocessingu; cílená optimalizace.
Post-processing jako součást vnímání materiálu
- Bloom a glare: pomáhají zvýraznit spekulární složku, ale nesmějí maskovat ořezávání jasů.
- Vinětace a chromatická aberace: používejte střídmě; nenahrazují správné PBR.
- Motion blur a DOF: fyzikální efekty fotoaparátu podporují dojem měřítka a realismu (s ohledem na výkon).
Kontrolní seznam pro realistickou scénu
- Materiály v rozsazích PBR (albedo, F0, roughness) a zachování energie.
- HDR prostředí, správně předfiltrované IBL (irradiance + předfiltrování spekulární složky + BRDF LUT).
- Správné UV a hustota texelů, předfiltrování normal map, anizotropní filtrování.
- Stabilní stíny (CSM/PCF) nebo RT s odšumováním; kontaktní stíny v místech kontaktu.
- Volumetrika a atmosféra sladěná s tonemapperem a expozicí.
- Temporální stabilita (nastavení TAA, masky), minimalizace zdvojování obrazu.
- Profilování a cílená optimalizace (ořezávání podle dlaždic/shluků, přiměřené rozlišení textur).
Závěr: nade vším je soudržnost
Největším tajemstvím fotorealismu není jediný shader nebo textura, ale soudržný fyzikální přístup napříč celou pipeline. Materiály PBR v realistických rozsazích, správné 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 postprocessingem, získáte obraz, který je současně krásný i věrohodný – a navíc jej lze výkonově škálovat podle cílové platformy.
