Počítačová grafika Radiozita V. Chalupecký chalupec@kmlinux.fjfi.cvut.cz Obsah 1 Literatura 1 2 Úvod 5 3 Radiometrie a fotometrie 6 3.1 Prostorový úhel.......................... 6 3.2 Zářivý tok............................. 7 3.3 Intenzita ozáření......................... 7 3.4 Zář................................. 7 3.5 Radiozita............................. 8 4 BRDF 8 4.1 Rovnice odrazivosti........................ 9 4.2 Zobrazovací rovnice........................ 10 5 Diskretizace osvětlovací rovnice 12 5.1 Metoda konstantních prvků................... 14 6 Konfigurační faktory 16 6.1 Polokrychle............................ 17 7 Řešení radiační soustavy rovnic 19 1 Literatura M. Cohen, J. Wallace, Radiosity and realistic image synthesis, Morgan Kaufmann (1993), IBN 0-12-178270-0 1
2
3
4
2 Úvod radiační metoda založena na fyzikálním principu propagace světla v difúzním prostředí doposud jsme ho aproximovali ambientním členem dobře spočítá měkké osvětlení, sekundární odrazy světla základní metoda nezvládá ostré světlo, zrcadlové odrazy, lze kombinovat s raytracingem zdiskretizujeme scénu a vypočítáme světelnou interakci mezi každou dvojicí prvků všechny interakce spočítáme jednou nezávisle na pohledu 5
3 Radiometrie a fotometrie radiometrie věda zabývající se fyzikálním měřením EM energie měření se vyjadřují v jednotkách pro energii (Joule) a výkon (Watt) fotometrie se zabývá psychofyzikálním měřením viditelných projevů EM spektra při výpočtu osvětlení používáme radiometrické veličiny jsou závislé na místě, směru, vlnové délce, čase a polarizaci zanedbáme časovou závislost a polarizaci závislost na vlnové délce zjednodušíme použitím určitého počtu základních barev, nejčastěji RGB 3.1 Prostorový úhel dω = da r 2 značíme ω, jednotkou je steradián (sr) = sin θ dθ dφ je užitečné uvažovat o prostorovém úhlu d ω jako o vektoru směr d ω je směr k bodu na kouli, délka d ω je rovna velikosti prostorového úhlu 6
3.2 Zářivý tok množství energie přijaté (vyzářené) nějakou částí plochy je Q in, Q out [J] energie přenesená EM zářením za jednotku času se nazývá zářivý tok (angl. radiant flux) Φ e = dq dt, [W ] 3.3 Intenzita ozáření angl. irradiance plošná hustota zářivého toku dopadajícího na plochu da 3.4 Zář E e = dφ e da, [W m 2 ]. zář (angl. radiance) je nejdůležitější jednotkou pro syntézu obrazu na počítači hustota zářivého toku na jednotkovou promítnutou oblast kolmou k paprsku a na jednotkový prostorový úhel ve směru paprsku L e = d2 Φ e d ω da, [W sr 1 m 2 ] prostorový úhel i plocha jsou ve vektorové formě skalární součin ve jmenovateli znamená d ω d A = dω da cos θ, kde θ je úhel mezi osou prostorového úhlu d ω a normálou plochy da 7
zář není definována na rozhraních prostředí (světlo zde skokově mění směr) zavádí se příchozí a odchozí záře L in, L out vlastnosti odezva senzoru (např. lidského oka) je přímo úměrná záři viditelné plochy zář je konstantní podél celé dráhy světelného paprsku za předpokladu nulových ztrát daných např. absorbcí nebo rozptylem 3.5 Radiozita podobná intenzitě ozáření (energie na jednotku plochy dopadající na povrch) radiozita = energie na jednotku plochy opouštějící povrch B = L o cos θ dω, kde L o je odchozí zář 4 BRDF světlo dopadá na povrch z prostorového úhlu ve směru ω i Ω množství světla odraženého do směru ω r je úměrné dopadající intenzitě ozáření z ω i poměr se nazývá dvousměrová distribuční funkce odrazivosti (angl. bidirectional reflection distribution function, BRDF) f r (ω i ω r ) = dl r (ω r ) dl i (ω i ) cos θ i dω i, [sr 1 ] 8
vlastnosti pro fyzikální povrchy platí f r (ω r ω i ) = f r (ω i ω r ) BRDF je obecně anizotropní (pokud je směr dopadu a odrazu pevný a otáčíme s povrchem, množství odraženého světla se může měnit), např. broušené materiály, látky,... f r ((θ i, φ i + φ) (θ r, φ r + φ)) f r ((θ i, φ i ) (θ r, φ r )) 4.1 Rovnice odrazivosti přidání světla v jiném úhlu dopadu neovlivní množství odraženého světla z jiného úhlu dopadu celkové množství světla odraženého povrchem do daného směru je dáno integrálem přes všechny možné směru dopadu L r ( ω r ) = f r (ω i ω r )L i (ω i ) cos θ i dω i Ω i odchozí zář v konkrétním směru je dána příchozí září ze všech směrů váženou pomocí BRDF a prostorovým úhlem 9
4.2 Zobrazovací rovnice potřebujeme spojit osvětlení jednoho povrchu s odraženým světlem na jiném povrchu potřebujeme vyjádřit prostorovou závislost záře a brát v potaz zakrytí záře je konstantní podél paprsku dopadající záře v x v důsledku odchozí záře v x je L i (x, ω i ) = L o (x, ω o )V (x, x ), kde ω i je směrový vektor z x do x a ω o míří v opačném směru funkce V (x, x ) je funkce viditelnosti je rovna 1 pokud x a x jsou vzájemně viditelné a 0 jinak dále potřebujeme přejít od integrálu přes úhly dopadu k plošnému integrálu přes všechny okolní povrchy v prostředí tzn. kde dω i = cos θ o da x x 2 dω i cos θ o da = G(x, x ) da, G(x, x ) = G(x, x) = cos θ i cos θ o x x 2. 10
dosazením do rovnice odrazivosti dostaneme zobrazovací rovnici L(x, ω ) = f r (x)l(x, ω)g(x, x )V (x, x ) da vystupují zde pouze odchozí záře a směry, můžeme vypustit dolní indexy v prostředí skládajícím se pouze z matných objektů je jediným zdrojem světla emise z povrchu L(x, ω ) = L e (x, ω) + f r (x)l(x, ω)g(x, x )V (x, x ) da pokud budeme dále předpokládat, že povrchy jsou ideálně difúzní, bude BRDF nezávislá na příchozím a odchozím směru a lze ji vyndat před integrál L(x x ) = L e (x x ) + f r (x ) L(x x )G(x, x )V (x, x ) da = L e (x x ) + ρ(x ) π kde ρ [0, 1] je odrazivost L(x x )G(x, x )V (x, x ) da, 11
odchozí záře z ideálně difúzního povrchu je stejná ve všech směrech a rovná se radiozitě dělené π radiační rovnice B(x) = E(x) + ρ(x) B(x ) G(x, x )V (x, x ) da π v dalším budeme do geometrického členu G zahrnovat i viditelnost V a π B(x) = E(x) + ρ(x) B(x )G(x, x ) da 5 Diskretizace osvětlovací rovnice funkce B(x) popisuje skalární funkci na povrchu těles ve scéně budeme uvažovat pouze achromatickou intenzitu, pro barevnou scénu bychom museli řešit systém pro několik vlnových délek a z nich případně získat RGB hodnoty prostor funkcí B(x) je nekonečněrozměrný budeme diskretizovat jedna možnost je pomocí ray tracingu a Monte Carlo metod závislé na pohledu radiační metoda je založena na výpočtu a uložení přibližných hodnot radiance na površích ve scéně, většinou v diskrétních bodech při zobrazování je třeba stínovat viditelné povrchy za pomoci těchto hodnot (Gouraudovo stínování nebo jiné interpolace) nezávislé na pohledu lze kombinovat metody závislé i nezávislé na pohledu metoda konečných prvků definiční obor funkce rozdělíme do oblastí, na kterých je funkce aproximována lineární kombinací bazických funkcí bazické funkce jsou určeny hodnotami v diskrétních bodech neznámé obecný algoritmus radiační metody 1. rozdělíme povrchy ve scéně do konečných prvků = pokrýt povrchy těles sítí 2. vybereme uzly, kde budeme hledat hodnoty radiozity, a bazické funkce (typicky polynomy s omezeným nosičem) 12
3. vybereme metriku, ve které budeme chtít minimalizovat chybu řešení budeme hledat na podprostoru, definovaném (konečným počtem) bazických funkcí konečný systém lineárních rovnic 4. vypočítáme koeficienty lineárního systému závisí na geometrických vztazích, které určují přenos světla mezi prvky, nazývají se konfigurační faktory 5. vyřešíme výsledný systém rovnic pro hodnoty radiozity v uzlech 6. rekonstruujeme přibližné řešení jako lineární kombinaci bazických funkcí 7. zobrazíme výsledný obrázek pomocí některého stínovacího algoritmu základní algoritmus, některá rozšíření některé kroky opakují body 2. a 3. představují spíše rozhodnutí ve fázi formulace řešení, ne kroky prováděné algoritmem 13
5.1 Metoda konstantních prvků použijeme konstantní bazické funkce N i na elementu předpokládám konstantní odrazivost ρ a radiozitu B B(x) ˆB(x) = n j=1 B jn j (x) vynásobíme testovací funkcí N i (x), zintegrujeme přes a dosadíme za B(x). Dostaneme [ n [ B j N i (x)n j (x) da j=1 N i (x)ρ(x) N j (x )G(x, x ) da da ]] E(x)N i (x) da = 0. (1) 14
N i (x)n j (x) da = { Ai pokud i = j, 0 jinak. kde δ ij je Kroneckerovo delta a A i je plocha prvku i podobně kde E i je průměrná emise z prvku i E(x)N i (x) da = E i A i, } = δ ij A i, bazické funkce mají hodnotu 1 na svém prvku lze je vypustit a integrovat přes plochy prvků N i (x)ρ(x) N j (x )G(x, x ) da da dosadíme do (1) a máme = ρ i A i A j G(x, x ) da j da i [ n [ ] B j δij A i ρ i G(x, x Aj ] ) da j da i j=1 A i E i A i = 0, i ˆn vydělíme, upravíme a máme klasickou radiozitní rovnici n B i = E i + ρ i B j F ij, j=1 kde F ij = 1 A i A i A j G(x, x ) da j da i matice soustavy má tvar 1 ρ 1 F 11... ρ 1 F 1n ρ 2 F 21... ρ 2 F 2n..... ρ n 1 F n 11... ρ n 1 F n 1n ρ n F n 1... ρ n F nn B 1 B 2. B n 1 B n = E 1 E 2. E n 1 E n 15
pro rovinné plošky platí, že F ii = 0 na diagonále jsou pouze jedničky nediagonální prvky mají typicky malou absolutní hodnotu matice je diagonálně dominantní soustava je stabilní a lze ji řešit iteračními metodami (Jacobi, Gauss-eidel) pokud počítáme přímou metodou, při změně osvětlení (tj. při změně pravé strany) není třeba matici znovu rozkládat i při používání konstantních prvků při zobrazování používáme alespoň Gouraudovo stínování 6 Konfigurační faktory soustavu rovnic můžeme zapsat zkráceně jako KB = E většina výpočetního času se stráví výpočtem koeficientů matice K, t.j. hlavně výpočtem konfiguračních faktorů F ij urychlit můžeme rychlejším výpočtem F ij, snížením dimenze problému (adaptivita) nebo snížením počtu vypočítavaných konfiguračních faktorů (sdružování prvků a vypočítávání jednoho k.f. pro celou skupinu hierarchická radiozita) pro konstantní bazické funkce k.f. představuje zlomek světla opouštějící jeden prvek a přímo dopadající na jiný k.f. je pouze funkcí geometrie nezávisí na odrazových vlastnostech povrchu, závisí na vzdálenosti, orientaci a viditelnosti dvou prvků 16
někdy je lze vyčíslit v uzavřené formě (např. dva navzájem úplně viditelné polygony), většinou je třeba užít numerické postupy vzorkováním polokoule scénu promítneme na polokouli nad prvkem i, integrujeme přes polokouli (např. metodami Monte Carlo). Nejnáročnější je určování viditelnosti nusseltův analog nad prvek umístíme jednotkovou polokouli, prvek j na ni promítneme a tento průmět ortogonálně promítneme na podstavu plocha průmětu průmětu je rovna F ij 6.1 Polokrychle prvky, které mají stejný průmět na polokouli, mají stejný k.f. (zaujímají stejný prostorový úhel) je jedno, na jakou plochu scénu promítáme 17
nad prvek umístíme polokrychli o výšce 1, scénu promítáme na ni stěny polokrychle rozdělíme do sítě, každá buňka definuje jeden směr a prostorový úhel prvek j promítneme na polokrychli, zjišťujeme, které buňky průmět pokrývá 18
každá stěna krychle definuje perspektivní projekci s pohledovým úhlem 90 průmět scény získáme z-bufferem místo barvy ukládáme ukazatel na prvek aliasing 7 Řešení radiační soustavy rovnic matice soustavy má u základní metody velikost n n, kde n je počet prvků ve scéně matice ja řídká (protože bazické funkce mají omezený nosič) v současné podobě matice není symetrická. Pokud v systému rovnic vydělíme i-tou rovnici plochou A i i-tého prvku, bude symetrická matice je striktně diagonálně dominantní pro konstatní prvky K ij < K ii, i j=1 j i Tato vlastnost nám zajišťuje dobrou konvergenci u iteračních metod jako Gauss-eidel 19
matice je dobře podmíněná (číslo podmíněnosti matice λ max (K)/λ min (K) není velké ) řešení není citlivé na perturbace pravé strany a lze aplikovat většinu metod pro hledání řešení lin. soustav rovnic 20