Texturování, stínování a fyzikální efekty v počítačové grafice

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í 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 reálné 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 ani nezmenšoval mezi díly.
  • Triplanární projekce: vhodná pro terény nebo objekty bez kvalitní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 proti opakování vzoru (detail textury, makro-variace, noise masky).

Filtrace textur: aliasing, mipmapy a anizotropie

  • Mipmapping: předfiltrované úrovně redukují aliasing a šum v dálce; volba trilineární vs. anizotropní 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ý model, ale bez spekulárních odlesků.
  • Phong / Blinn-Phong – empirické spekulární zvýraznění, jednoduché, avšak nefyzikální (porušuje zachování 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: přibližně 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 přenášena spíše v difuzi nebo ve spekuláru; roughness formuje rozptyl.
  • Specular–Glossiness: explicitní spekulární barva (u dielektrik zpravidla šedá kolem 0,04), gloss jako inverze roughness. Výhodou je explicitní kontrola F0, nevýhodou složitější tvorba materiálů.

Klíčem je zachování energie: součet difuzní a spekulární odražené energie nesmí převýšit dopadající světelnou energii. Difuze se proto škáluje podle F a materiálové kombinace (metalický materiál obvykle nemá žádnou 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 Fresnelových a G/V faktorů.
  • Prefiltrace: difuzní složka (silně rozmazané prostředí konvolucí kosinem) a spekulární složka (řada roughness-dependent map, často mip chain s GGX preintegrací).
  • Expozice a tonemapping: korektní ACES či filmové mapování do LDR pro zachování relativních vztahů jasů materiálů.

Stíny: přesnost, stabilita a měkké okraje

  • Shadow mapping: standard rasterizace; problémy zahrnují acne, peter-panning, aliasing. Řešení: bias, PCF/PCSS, variance/EVSM, cascaded shadow maps (CSM) pro rozsáhlé scény.
  • Ray-traced stíny: přesné polotóny (penumbra) dle velikosti světla; vyžaduje odšumování (SVGF, OIDN).
  • Contact shadows: doplněk pro blízká kontaktní místa (SSCS, GTAO), aby se zabránilo vizuálním „levitujícím“ objektům.

Geometrický detail: normal, bump, parallax a displacement

  • Bump mapping: ovlivnění osvětlení podle výšky bez změny normál; levné, ale omezené na detaily.
  • Normal mapping: přímé dodání perturbovaných normál v tangent space; de facto standard pro střední úroveň detailu.
  • Parallax (occlusion) mapping: simulace skutečné paralaxy a samo-stínění textury; zlepšuje reliéf, ale může vytvářet artefakty při velkých úhlech pohledu.
  • Displacement (tesselace / ray tracing): skutečný posun vrcholů nebo mikropolygonů; nejvěrnější, avšak nejnáročnější na výkon.

Fyzikální efekty materiálů: SSS, transmisivita, anizotropie

  • Subsurface Scattering (SSS): difuzní podpovrchový rozptyl (kůže, mramor) – BSSRDF (např. modely d’Eon, Jensen). V rasterizaci často „pre-integrated SSS“ přes profilovou konvoluci.
  • Transmisivita a průsvitnost: tenké materiály (listy, papír) – model „thin surface“ vs. husté sklo s lomením (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 atmosférické efekty

  • Participující média: mlha, kouř, opar; jednorázové albedo, fázová funkce (Henyey–Greenstein), vícenásobný rozptyl (aproximace s volumetric integration + reprojekce).
  • God rays, aerial perspective: světelné paprsky a zeslabení kontrastu s rostoucí vzdáleností (Rayleigh/Mie aproximace).

Globální iluminace: GI pro real-time a offline

  • Screen-Space GI (SSGI): rychlé řešení, omezující se na viditelnou geometrii; vhodné pro doplnění scénických efektů.
  • Voxelizace / SDF / probe grids: irradiance probes, DDGI s reprojekcí; vhodné pro dynamické scény.
  • Lightmaps a hybridy: předpočtená difuze, dynamická spekulární složka přes IBL; vysoce efektivní zejména pro statickou architekturu.
  • Path tracing: referenční řešení; v real-time náročné na temporalitu, adaptivní sampling a denoising.

Temporální techniky a odšumování

  • TAA (Temporal Anti-Aliasing): akumulace více subpixelových vzorků; pozor na ghosting a ztrátu detailů → používání reactive masks a sharpen filtrů.
  • Denoising RT efektů: odšumování stínů, GI, odrazů – využití temporální akumulace, motion vectors a kombinace filtrů (SVGF, spatio-temporal variance).

Výkon a architektura: forward, deferred, tiled/clustered

  • Forward+ / Clustered Forward: vhodné pro průhledné objekty, méně náročné G-Bufferu, světla se aplikují na shluky pixelů.
  • Deferred: efektivní při velkém počtu světel a náročných materiálech; nevýhodné pro transparentní materiály a MSAA.
  • Hybridní přístup: neprůhledné objekty v deferred, průhledné a speciální efekty ve forward; tile/cluster culling šetří fill-rate.

Kalibrace barev a tonemapping

  • Lineární workflow: textury v sRGB pouze tam, kde reprezentují barvu; výpočty vždy v lineárním prostoru.
  • Expozice: automatická či manuální; kalibrace middle gray podle uměleckého 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 dle velikosti světel; kombinace s rastrovými PCF pro levnou střední vzdálenost.
  • RT GI / Path tracing: fyzikálně věrné nepřímé osvětlení; vyžaduje agresivní temporalitu a odšumování.

Best practices pro tvorbu materiálů

  • Fyzikální rozsahy: dodržujte tabulkové hodnoty albeda a F0; vyvarujte se energy gain.
  • Metalness: nepoužívejte přechodové hodnoty, kde nedávají smysl; dielektrika nemají barevný spekulár.
  • Roughness linearita: roughness není invertovaná gloss gama; editujte v lineárním prostoru, nikoli v sRGB.
  • Texel density a tiling: zachovejte konzistenci napříč scénou; rozbíjejte opakování pomocí makro noise a dekálových prvků.

Časté chyby a jejich diagnostika

  • „Plastový“ vzhled: příliš nízké F0 nebo nevhodná roughness; zkontrolujte IBL a tonemapping.
  • Přepal spekuláru: albedo obsahuje nasnímané světla a stíny (nečisté albedo) → reautorizujte texturu do PBR formátu.
  • Shadow acne / peter-panning: nesprávný 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řegenerujte nebo sjednoťte tangent basis.

Pipeline a validace: od DCC po engine

  • Color management: sRGB tagování textur, lineární export HDR; validace v enginu pomocí LUT.
  • Unit scale: konzistentní měřítko v metrech → správný světelný pád (inverse-square) a chování SSS/volumetrií.
  • Profilace: GPU capture, rozklad času na shadow pass, G-Buffer, lighting, post-processing; cílená optimalizace.

Post-processing jako součást vnímání materiálu

  • Bloom a glare: zlepšují čitelnost spekulárních odlesků, ale nesmí maskovat clipping.
  • Vignette a chromatic aberration: používejte střídmě; nepodporují správné PBR principy.
  • Motion blur a DOF: fyzikální efekty kamery podporují měřítko a realismus (s přihlédnutím k výkonu).

Kontrol