Precomputed radiance transfer Martin Bulant 11. dubna 2011
Reprezentace funkce na sf´ eˇ re Re´ alnou funkci na sf´eˇre G(x) aproximujeme pomoc´ı line´arn´ı kombinace line´arnˇe nez´ avisl´ ych b´ azov´ ych funkc´ı Bi (x): G(x) =
n X
ci Bi (x)
i=1
To n´ am pˇrin´ aˇs´ı urˇcit´e v´ yhody: • potˇrebujeme si pamatovat jen v´ahy, neboli b´azov´e koeficienty ci • pro danou aproximaci funkce z nekoneˇcnˇedimenzion´aln´ıho prostoru si staˇc´ı pamatovat jen koneˇcnˇe mnoho koeficient˚ u
Volba b´ azov´ ych funkc´ı B´ azov´e funkce lze zvolit mnoha r˚ uzn´ ymi zp˚ usoby, volba b´aze tedy vˇzdy z´avisi na pouˇzit´ı. Kdyˇz uˇz m´ ame b´azi, je potˇreba naj´ıt koeficienty ci pro jednotliv´e b´ azov´e funkce tak, abychom co nejl´epe aproximovali poˇzadovanou funkci G(x). Chceme tedy naj´ıt koeficienty ci , aby byla chyba aproximace minim´aln´ı. Chybu definujeme jako integr´al z rozd´ılu poˇzadovan´e funkce a jej´ı aproximace: Z X EL2 = [G(x) − ci Bi (x)]2 I
i
Jelikoˇz chceme tuto chybu minimalizovat, zderivujeme funkci chyby. Z´ısk´ame soustavu line´ arn´ıch rovnic. Tuto soustavu lze zapsat pomoc´ı matice, ve kter´e se vyskytuj´ı skal´ arn´ı souˇciny b´azov´ ych funkc´ı, oznaˇc´ıme j´ı B. Tato matice je nez´ avisl´ a na aproximovan´e funkci, ale je z´avisl´a na zvolen´e b´azi. Vektor prav´ ych stran uˇz na aproximovan´e funkci z´avisl´ y je.
Postup hled´ an´ı keficient˚ u Nejprve zvol´ıme jakou b´ azi budeme pouˇz´ıvat. Kdyˇz m´ame jiˇz zvolenou b´azi, spoˇc´ıt´ ame matici B a k n´ı inverzn´ı matici B −1 . Pro danou funkci G potom 1
spoˇc´ıt´ ame vektor prav´ ych stran. Vektor koeficient˚ u dostaneme jako souˇcin matice B −1 a vektoru prav´ ych stran: hG|B1 i c1 hG|B2 i c2 .. = B −1 .. . . hG|Bn i cn Takto spoˇc´ıtan´e koeficienty minimalizuj´ı chybu aproximace naˇs´ı funkce pˇri zvolen´e metrice.
V´ yhody ortonorm´ aln´ı b´ aze Pokud m´ ame ortonorm´ aln´ı b´azi, matice B se pak stane jednotkovou, coˇz n´am v´ yraznˇe zjednoduˇsˇs´ı hled´ an´ı koeficient˚ u. Skal´arn´ı souˇcin naˇs´ı funkce s funkcemi z b´ aze odpov´ıd´ a projekci naˇs´ı funkce do prostoru b´aze. Jednotliv´e koeficienty pak ud´ avaj´ı, jak moc se naˇse funkce G(x) podob´a jednotliv´ ym funkc´ım z b´aze (ˇc´ım je koeficient vˇetˇs´ı, t´ım podobnˇejˇs´ı si obˇe funkce jsou). Dalˇs´ı nezanedbatelnou v´ yhodou Pn je, ˇze pˇri pouˇzit´ı ortonorm´ Pn aln´ı b´aze lze integr´ al ze souˇcinu funkc´ı F (x) = i=1 fi Bi (x) a G(x) = i=1 gi Bi (x) nahradit skal´ arn´ım souˇcinem koeficient˚ u tˇechto funkc´ı v˚ uˇci t´eto b´azi, jak popisuje tento vzorec: Z n X fi gi F (x)G(x)dx = S
i=1
Toto je pro n´ as v´ yhodn´e, jelikoˇz zobrazovac´ı rovnice m´a tvar integr´alu souˇcinu.
Sf´ erick´ e harmonick´ e Sf´erick´e harmonick´e jsou funkce definovan´e na sf´eˇre, tedy na smˇerech v tˇr´ırozmˇern´em prostoru. Obecnˇe jsou komplexn´ı, my se vˇsak omez´ıme pouze na jejich re´ alnou ˇc´ ast. Jejich argument, neboli smˇer je moˇzn´e definovat v r˚ uzn´ ych souˇradn´ ych soustav´ ach (napˇr. pol´arn´ı, kart´ezsk´a). My budeme pouˇz´ıvat pol´arn´ı souˇradnou soustavu. Sf´erick´e harmonick´e jsou uzavˇren´e v˚ uˇci rotaci, respektive line´ arn´ı podprostor tvoˇren´ y b´azov´ ymi funkcemi sf´erick´ ych harmonick´ ych do nˇejak´eho ˇradu je uzavˇren na rotaci. Sf´erick´e harmonick´e lze zobrazovat dvˇema zp˚ usoby: • jako orbitaly • jako barvu na povrchu koule Je tˇreba si uvˇedomit ˇze pro ˇr´ad n sf´erick´e harmonick´e funkce je tˇreba si pamatovat n2 koeficient˚ u.
2
Indexov´ an´ı sf´ erick´ ych harmocnick´ ych Sf´erick´e harmonick´e se indexuj´ı dvˇema indexy, nejˇcastˇeji l a m, kde l ud´av´a ˇr´ad sf´erick´e harmocnick´e funkce a m´a rozsah h0, ∞). Oproti tomu index m ud´av´a typ harmocnick´e funkce v r´ amci ˇr´adu a m´a rozsah h−l, li pro dan´ y ˇr´ad l. ˇ Casto se vˇsak indexov´ an´ı zjednoduˇsuje pouze na jeden index i, kter´ y odpov´ıd´a poˇrad´ı sf´erick´e harmonick´e funkce pˇri proch´azen´ı indexu l od 0 a pro kaˇzd´ y ˇr´ad l indexu m od −l do l. Pro toto indexov´an´ı plat´ı: i = l(l + 1) + m Aproximace funkce pomoc´ı sf´ erick´ ych harmonick´ ych Funkce na sf´eˇre, m˚ uˇze b´ yt aproximov´ana pomoc´ı sf´erick´ ych harmonick´ ych. Z praktick´ ych d˚ uvod˚ u se pouˇz´ıv´a dvojit´a suma pro indexy l a m, m´ısto jednoduch´e sumy pro index i. Pro aproximovanou funkci pˇri pouˇz´ıt´ı pol´arn´ıch souˇradnic plat´ı: n−1 X m=l X G(θ, ϕ) = cl,m Yl,m (θ, ϕ) l=0 m=−l
Bohuˇzel pro sloˇzit´e funkce je nedostaˇcuj´ıc´ı i ˇr´ad 10, kter´ y odpov´ıd´a 100 koeficient˚ u sf´erick´ ych harmonick´ ych. Jak uˇz jsme uvedli, sf´erick´e harmonick´e tvoˇr´ı ortonorm´ aln´ı b´ azi. V´ ypoˇcet koeficient˚ u cl,m se prov´ad´ı pomoc´ı integrace souˇcinu aproximovan´e funkce s funkcemi b´ azick´ ymi pˇres celou sf´eru. Plat´ı pro nˇe vzorec: Z
2π
Z
cl,m =
π
G(θ, ϕ)Yl,m (θ, ϕ) sin θdθdϕ 0
0
Vˇetˇsinou se tyto koeficienty poˇc´ıtaj´ı pomoc´ı numerick´e integrace, napˇr. pomoc´ı Monte Carlo integrace.
Renderov´ an´ı v re´ aln´ em ˇ case - real-time rendering Chceme v re´ aln´em ˇcase zobrazovat sc´eny s realistick´ ym osvˇetlen´ım, st´ıny a glob´ aln´ım osvˇetlen´ım. Pˇriˇcemˇz re´aln´ ym ˇcasem je myˇsleno, spoˇc´ıtat v´ ysledn´ y obr´ azek za zlomek sekundy. Bohuˇzel pro souˇcasn´e algoritmy je to nemoˇzn´e, je potˇreba prov´est pˇr´ıliˇs velk´e mnoˇzstv´ı v´ ypoˇct˚ u bˇehem velmi kr´atk´eho ˇcasov´eho u ´seku. To se ˇreˇs´ı dvˇema r˚ uzn´ ymi pˇr´ıstupy. • Prvn´ım je omezen´ı poˇzadavk˚ u, napˇr´ıklad osvˇetlen´ı pˇrich´azej´ıc´ı z nekoneˇcna, nezab´ yv´ an´ı se viditelnost´ı. • Druh´ ym je rozdˇelen´ı v´ ypoˇctu na 2 ˇc´asti, pˇredv´ ypoˇcet a samotn´ y v´ ypoˇcet obr´ azku.
3
Mapov´ an´ı prostˇ red´ı - Environment mapping V tomto pˇr´ıstupu se pouˇzije mnoho pˇredpoklad˚ u, napˇr´ıklad, ˇze svˇetlo pˇrich´az´ı z nekoneˇcna, neovlivˇ nuje ho viditelnost, m´ame jen zrcadlov´e povrchy atd. Za pouˇzit´ı tˇechto pˇredpoklad˚ u je pak rendering trivi´aln´ı. Pokud vˇsak naˇse pˇredpoklady omez´ıme t´ım, ˇze povol´ıme i dif´ uzn´ı a leskl´e povrchy, zaˇcnou se objevovat komplikace. Pro Phong˚ uv svˇeteln´ y model se do v´ ysledn´eho smˇeru ωo neodr´aˇz´ı jen svˇetlo ze smˇeru R, tedy zrcadlov´ y odraz, ale i nˇejak´e svˇetlo z okol´ı dle laloku BRDF. Pˇri vyhled´av´an´ı hodnoty v mapˇe prostˇred´ı se jako index pouˇzije vektor R. To lze vyˇreˇsit tak, ˇze se pouˇzit´a mapa uˇz pˇredem rozmaˇze pomoc´ı filtru vych´ azej´ıc´ıho z dan´e BRDF. I toto ˇreˇsen´ı m´a bohuˇzel vady, pro kaˇzd´ y exponent je tˇreba mapu rozmazat jinak. Dalˇs´ım z´avaˇznˇejˇs´ım probl´em ale je, ˇze pro kaˇzd´ y pixel rozmazan´e mapy mus´ım nˇejak v´aˇzenˇe zkombinovat polovinu pixel˚ u t´e mapy. Cel´ a polovina je to proto, ˇze BRDF je nenulov´a na jedn´e polovinˇe sf´ery. To ovˇsem znamen´ a, ˇze rozmaz´av´an´ı mapy je velmi n´aroˇcn´e. Pokud m´ ame dif´ uzn´ı povrch, rozmaz´av´a se j´adrem, kter´e odpov´ıd´a Phonogovu osvˇetlovac´ımu modelu s exponentem rovn´ ym jedn´e. V tomto pˇr´ıpadˇe se narozd´ıl od phonga pro vyhlad´avan´ı v mapˇe prostˇred´ı pouˇzije jako index norm´alov´ y vektor N (protoˇze dif´ uzn´ı osvˇetlen´ı je nez´avisl´e na u ´hlu pohledu). Odboˇ cka o zvl´ aˇ stn´ım vyuˇ zit´ı dif´ uzn´ı koule Pokud je potˇreba do filmu um´ıstit nˇejakou umˇelou postavu tak, aby mˇela spr´ avn´e osvˇetlen´ı, tak se pˇri nat´aˇcen´ı na m´ısto, kde bude ve filmu umˇel´a postava um´ıst´ı dif´ uzn´ı koule. Po nafilmov´an´ı se pak nastavuj´ı svˇetla v animaˇcn´ım programu pro dif´ uzn´ı kouli tak, aby byl v´ ysledek stejn´ y jako ta nafilmovan´a koule. Takto nastaven´ ymi svˇetly se pak osv´ıt´ı vkl´adan´ y model.
Mapov´ an´ı prostˇ red´ı pomoc´ı sf´ erick´ ych harmonick´ ych Mapu prostˇred´ı budeme reprezentovat pomoc´ı sf´erick´ ych harmonick´ ych. Hodnota iradiance je funkc´ı norm´ aly, lze ji tedy reprezentovat v˚ uˇci b´azi sf´erick´ ych harmonick´ ych. Abych dostal koeficienty iradiance, staˇc´ı koeficienty mapy prostˇred´ı pˇren´ asobit konstantami Al . Konstanty Al maj´ı malou hodnotu pro velk´a l. To znamen´a, ˇze po vyn´asoben´ı touto konstantou uˇreˇzeme vysok´e frekvence, coˇz n´am ale nevad´ı, jelikoˇz chceme zpracovat difuzn´ı povrch. Kdyˇz vezmeme toto v potaz, tak n´am staˇc´ı pouˇz´ıt pouze 9 koeficient˚ u sf´erick´ ych harmonick´ ych pro reprezentaci mapy prostˇred´ı. D´ a se uk´ azat, ˇze pro difuzn´ı povrch je chyba v´ ysledn´e radiance pˇri 9 koeficientech menˇs´ı neˇz 3 procenta. To je d´ıky tomu, ˇze dif´ uzn´ı povrch funguje jako filtr, v tomto pˇr´ıpadˇe n´ızkofrekvenˇcn´ı propust’. Algoritmus Algoritmus se skl´ ad´ a ze dvou ˇc´ast´ı, prvn´ı z nich je pˇredv´ ypoˇcet. Ten se prov´ad´ı pˇri kaˇzd´e zmˇenˇe osvˇetlen´ı, v naˇsem pˇr´ıpadˇe pˇri zmˇenˇe mapy prostˇred´ı. Nejprve si 4
najdeme projekci mapy prostˇred´ı do prvn´ıch dev´ıti b´az´ı sf´erick´ ych harmonick´ ych a pot´e se tyto koeficienty pˇren´asob´ı konstantou Al , ˇc´ımˇz dostaneme koeficienty iradiance jako funkce norm´ aly. Druhou ˇc´ast´ı je samotn´ y v´ ypoˇcet, osvˇetlen´ı. Pro kazd´ y pixel potˇrebujeme vyhodnotit iradianci pro danou norm´alu. D´ıky tomu, ˇze sf´erick´e harmonick´e do koeficientu 9 jsou maxim´alnˇe kvadratick´e funkce, lze j´ı spoˇc´ıtat jen pomoc´ı maticov´eho n´asoben´ı a skal´arn´ıho souˇcinu. Dalˇ s´ı moˇ zn´ e vylepˇ sen´ı Chceme pouˇz´ıt libovolnou BRDF, m´ame mapu prostˇred´ı a st´ale n´as nezaj´ım´a viditelnost vzhledem k t´eto mapˇe. BRDF i mapu prostˇred´ı reprezentujeme pomoc´ı sf´erick´ ych harmonick´ ych. Toto m´a ale drobnou vadu, kterou je to, ˇze BRDF nen´ı funkce definovan´ a na sf´eˇre, protoˇze m´a 2 parametry. Zafixujeme si tedy odchoz´ı smˇer, ˇc´ımˇz se n´ am z BRDF stane funkce definovan´a na sf´eˇre. Odchoz´ı smˇer si diskretizujeme a spoˇc´ıt´ ame si koeficienty BRDF pro dan´ y smˇer v˚ uˇci sf´erick´ ym harmonick´ ym a tento vektor si uloˇz´ıme do textury. Pro kaˇzd´ y odchoz´ı smˇer tedy m´ ame jeden vektor koeficient˚ u. V´ ypoˇ cet hodnoty pixelu Integr´ al ze souˇcinu mapy prostˇred´ı a BRDF lze nahradit skal´arn´ım souˇcinem vektor˚ u koeficient˚ u v˚ uˇci b´ azi sf´erick´ ych harmonick´ ych. Je tˇreba si ovˇsem d´avat pozor, v˚ uˇci kter´emu souˇradn´emu syst´emu m´ame definice. Je tˇreba souˇradn´e syst´emy zarovnat, to se provede pomoc´ı rotace sf´erick´ ych harmonick´ ych. Pro proveden´ı t´eto operace se vyuˇzije toho, ˇze sf´erick´e harmonick´e jsou uzavˇren´e na rotaci.
Precomputed radiance transfer Je to druh´ a cesta, jak rychle poˇc´ıtat osvˇetlen´ı. V tomto pˇr´ıpadˇe nezm´ırˇ nujeme poˇzadavky, chceme tedy komplexn´ı osvˇetlen´ı vˇcetnˇe st´ın˚ u a glob´aln´ıho osvˇetlen´ı. Ale i tak mus´ıme pouˇz´ıt urˇcit´e pˇredpoklady, je nutn´e zafixovat geometrii, materi´ al a pro nˇekter´e techniky tak´e smˇer pohledu. Pˇr´ıkladem je Daytime relighting, kdy chceme m´ıt sc´enu osvˇetlenou v r˚ uzn´ ych denn´ıch dob´ ach. To se ˇreˇs´ı tak, ˇze se vypoˇc´ıt´a osvˇetlen´ı sc´eny v pˇredem urˇcen´ ych ˇcasov´ ych okamˇzicich a v ostatn´ıch pˇr´ıpadech se osˇetlen´ı intepoluje z tˇechto pˇrepoˇc´ıtan´ ych obr´ azk˚ u. Transport svˇ etla Na EM se lze d´ıvat jako na vektor pixel˚ u. Obdobnˇe i na v´ ysledek, napˇr´ıklad obr´ azek, se lze d´ıvat jako na vektor pixel˚ u (v real-time grafice barev vrchol˚ u). Transport svˇetla je line´ arn´ı a lze ho tedy ho zapsat matic´ı. Oznaˇcme ji M, je to pˇredpoˇc´ıtan´ a matice pˇrenosu osvˇetlen´ı ve sc´enˇe. Lze do n´ı zak´odovat st´ıny, glob´ aln´ı osvˇetlen´ı a dalˇs´ı.
5
V´ ypoˇ cet matice transportu svˇ etla M Matici lze spoˇc´ıtat dvˇema zp˚ usoby: • po sloupc´ıch — to znamen´a, ˇze cel´ y obr´azek je osvˇetlen´ y jen jedn´ım pixelem EM • po ˇr´ adc´ıch — to znamen´a, ˇze jeden bod obr´azku je osvˇetlen´ y celou EM Tento pˇr´ıstup m´ a ale probl´em s pˇr´ıliˇs velkou pracnost´ı, takov´ato matice by byla obrovsk´ a a ani maticov´e n´ asoben´ı s n´ı by nebylo upoˇcitateln´e, natoˇz jej´ı v´ ypoˇcet. ˇ s´ı se r˚ Reˇ uzn´ ymi zp˚ usoby, jen´ım z n´ıch je SH-based PRT. SH-based PRT Je to pˇredpoˇc´ıtan´ y pˇrenos radiance, kter´ y vyuˇz´ıv´a reprezentaci funkce na sf´eˇre pomoc´ı sf´erick´ ych harmonick´ ych. Rozliˇsuj´ı se zde 2 pojmy: • Source radiance, coˇz je radiance samotn´e environment mapy. • Transfered Incident radiance, coˇz je radiance pˇrich´azej´ıc´ı do bodu, pokud zapoˇc´ıt´ av´ ame st´ıny a odrazy. Pokud bychom st´ıny a odrazy zanedbali, byla by stejn´ a jako Source radiance. Algortimus funguje tak, ˇze si pˇredpoˇc´ıt´am vzhled objektu pˇri osvˇetlen´ı jednotliv´ ymi b´ azemi SH. Pro skuteˇcnou mapu prostˇred´ı si zjist´ım jej´ı koeficienty v˚ uˇci zvolen´e b´ azi SH a v´ ysledn´ y obr´azek spoˇc´ıt´am v´aˇzenou line´arn´ı kombinaci pˇredpoˇc´ıtan´ ych vzhled˚ u pro jednotliv´e b´aze. Zvolen´ım vhodn´e b´ aze pro reprezantaci osvˇetlen´ı jsme ˇr´adovˇe zmenˇsili potˇrebnou dimenzi. Tento postup lze pouˇz´ıt pro nasvˇetlov´an´ı exteri´eru pˇri r˚ uzn´ ych svˇeteln´ ych podm´ınk´ ach (zmˇeny poˇcas´ı, zmˇeny denn´ı doby, atd.) Light mapa je extr´emn´ı pˇr´ıpad PRT. Kdyˇz se chci d´ıvat z r˚ uzn´ ych u ´hl˚ u, budu si ukl´ adat v´ıce hodonot, pro kaˇzdou b´azi SH jednu.
Reference [1] Kˇriv´ anek, J.: Function Approximation & Spherical Harmonics. 2011. URL [2] Kˇriv´ anek, J.: Pre-computed Radiance Transfer. 2011. URL
6