Texturování, stínování a fyzikální efekty: cesta k realismu

Texturování, stínování a fyzikální efekty: Realismus

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

  1. Materiály v rozsazích PBR (albedo, F0, roughness) a zachování energie.
  2. HDR prostředí, správně předfiltrované IBL (irradiance + předfiltrování spekulární složky + BRDF LUT).
  3. Správné UV a hustota texelů, předfiltrování normal map, anizotropní filtrování.
  4. Stabilní stíny (CSM/PCF) nebo RT s odšumováním; kontaktní stíny v místech kontaktu.
  5. Volumetrika a atmosféra sladěná s tonemapperem a expozicí.
  6. Temporální stabilita (nastavení TAA, masky), minimalizace zdvojování obrazu.
  7. 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.