19. 5. 2009

Buď svetlo !!

Veľmi často tu pri opise technologickej stránky hier používam pojem - Globálna iluminácia /GI/. Najbližších pár rokov budeme všetci svedkami jej búrlivej implementácie od Tetrisa po GTA sériu. Je teda najvyšší čas "posvietiť" si na tento terminus technicus. Určite ste si už všimli, že patrí ku koloritu mnohých pubertálnych sajtov harašiť o raytracingu v reálnom čase bežiacom na ich über alles PC GPU. V článku o KZ2ke som zas písal o nejakej IBL technike, a párkrát som tu zamrmal niečo o photon mappingu a radiosite. To všetko je v skutočnosti veľká rodina typov renderingu patriacich práve pod krídla GI nasvietenia. Chcem aby ste túto problematiku pochopilli, takže to celé uvediem naozaj didakticky.

Predstavte si katedrálu kostola v čiernočiernej tme, kde pod kopulou visí jedna 500w žiarovka osvetľujúca zo všetkých síl celý tento priestor. V reálnom živote budú viac menej takmer VŠETKY objekty istým spôsobom viditeľné, teda OSVETLENÉ. V hre bez GI však iba tie, na ktoré svetlo PRIAMO dopadá, ak tomu grafik nepomôže umeleckým nanesením farbičiek na tie "panenské miesta". To je vlastne alfa a omega tzv. prirodzeného nasvietenia hry. Určite poznáte, keď niekto v recenzii, alebo vo fóre spomenie, že to celé vyzerá plocho, bez výrazu, sterilne. V skutočnosti totiž fotóny - svetelné kvantá z tej žiarovky priestorom putujú, odrážajú sa, idú aj "za roh". Raz, dvakrát, dvadsať krát, dvestokrát, a až potom dorazia na vašu sietnicu.



nekonečné odrazy /bounce/ svetla versus statický ambientný fake

A to nie je všetko. Tým najdôležitejším je farebná modifikácia lúčov po každom odraze !!! Máte pôvodné biele svetlo, mix všetkých vlnových dĺžok istej teploty. Ignorujme teraz jeho rozptyl v atmosfére, dyme, hmle /skatering/. Dopadá teda na stĺp z mramoru, alebo pieskovca, po odraze už v maslovo žltkastej farbe trafí červený baldachýn a po ňom bielu dlažbu, ktorú zároveň trošku sfarbí do ružova. Overte si to okamžite. Zoberte do ruky niečo sýto farebné. Pomaranč, paradajku. Priložte to na vzdialenosť pár centimetrov ku bielej stene. A voilá, máme tu bielu omietku s patričnými odtieňami oranžovej a červenej. Teraz si pozrite vlastnú izbu a sledujte ten cirkus tisícok odtieňov. A to je vlastná tá svetelná revolúcia, ktorá sa na nás chystá.

Diffuse interreflection - indirect illumination. Existuje enormné množstvo pokusov a riešení ako niečo podobné a výpočetne enormne náročné zrealizovať v reálnom, alebo aspoň v "požičanom" čase. V dynamickým podmienkach /geometria, svetelná doba/. Zámerne teraz ignorujem všetky tie aproximované, predpočítané, a iné aj dnes používané statické "ambientné" finty /viď najnovšie LightMass vylepšenie Unreal enginu/. A ak to totiž ešte neviete, hlavným ťahákom pripravovaného Cryenginu 3 je práve rýchlá, kvalitná, komplexná GI, v reálnom čase, unifikovaná pre statické aj dynamické objekty.



bleeding - presahy farieb na iné plochy sekundárnymi odrazmi

Konkurencie samozrejme nespí. Napríklad Illuminate Labs, ale aj Guerrilla Games /Killzone/ pracujú na tom istom. Osobne považujem skutočne dobrú GI za svätý grál pre dosiahnutie nekompromisne fotorealistického vzhľadu scény. Nie je to na prvom mieste o počte polygónov, alebo kvalite textúr. Rozhoduje kvalita svetla. A kde je svetla tam je tieň, a tma. Takže to celé ukončím vysvetlením ďalšej magickej skratky, s ktorou sa budete stretávať rovnako často ako s GI.

Nič iné ako Ambient occlusion, eventuálne jej "hernú" variantu Screen Space Ambient Occlusion /SSAO/. Nechcem vás zamotávať do podrobných a únavných technických nezmyslov /dnes ide hlavne o prácu pre GPU, klasický pixel shader kód/. Vedzte jedno, v podstate ide o nenápadne tiene vrhané právé tým mnohokrát odrazeným, nepriamym, a oslabeným svetlom. Sú teda všadeprítomné, veľmi početné, a majú na svedomí správnu hĺbku scény a definujú vlastne reliéf samotného objekt. Sú naozaj všade, aj v záhyboch vašej košele. Mimochodom posledná revízia SONY Phyre engine má v popise práce aj túto vetu - SPU render post processing example (SSAO). Nepotrebuje preklad.