Precomputed radiance transfer

Podobné dokumenty
1 Projekce a projektory

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

Lineární algebra : Metrická geometrie

Zobrazování a osvětlování

Fotonové mapy. Leonid Buneev

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

0.1 Úvod do lineární algebry

Eukleidovský prostor a KSS Eukleidovský prostor je bodový prostor, ve kterém je definována vzdálenost dvou bodů (metrika)

PROSTORY SE SKALÁRNÍM SOUČINEM. Definice Nechť L je lineární vektorový prostor nad R. Zobrazení L L R splňující vlastnosti

1 Linearní prostory nad komplexními čísly

maticeteorie 1. Matice A je typu 2 4, matice B je typu 4 3. Jakých rozměrů musí být matice X, aby se dala provést

0.1 Úvod do lineární algebry

19 Eukleidovský bodový prostor

Odraz světla, BRDF. Petr Kadleček

Matematika I 12a Euklidovská geometrie

Circular Harmonics. Tomáš Zámečník

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32

2. prosince velikosti symboly a, b, je b ω a b = a b cosω (1) a. ω pro ω π/2, π platí a b = b a a (3) a b = a 1 b 1 + a 2 b 2 + a 3 b 3 (5)

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

vyjádřete ve tvaru lineární kombinace čtverců (lineární kombinace druhých mocnin). Rozhodněte o definitnosti kvadratické formy κ(x).

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Učební texty k státní bakalářské zkoušce Matematika Skalární součin. študenti MFF 15. augusta 2008

Dnešní látka: Literatura: Kapitoly 3 a 4 ze skript Karel Rektorys: Matematika 43, ČVUT, Praha, Text přednášky na webové stránce přednášejícího.

DEFINICE Z LINEÁRNÍ ALGEBRY

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

VEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A

Stavový model a Kalmanův filtr

označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,

Vektorový součin I

EUKLIDOVSKÉ PROSTORY

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Aplikovaná numerická matematika

Lineární zobrazení. 1. A(x y) = A(x) A(y) (vlastnost aditivity) 2. A(α x) = α A(x) (vlastnost homogenity)

3.2. ANALYTICKÁ GEOMETRIE ROVINY

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Vlastní čísla a vlastní vektory

1 Báze a dimenze vektorového prostoru 1

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Osvětlování a stínování

Poznámka. V některých literaturách se pro označení vektoru také používá symbolu u.

Čebyševovy aproximace

NALG 001 Lineární algebra a geometrie 1, zimní semestr MFF UK Doba řešení: 3 hodiny

1 Determinanty a inverzní matice

Dá se ukázat, že vzdálenost dvou bodů má tyto vlastnosti: 2.2 Vektor, souřadnice vektoru a algebraické operace s vektory

Fotonové mapy. Martin Bulant 21. března Fotonové mapy jsou podobné obousměrnému sledování cest, ale odlišují se tím,

Výběr báze. u n. a 1 u 1

Soustavy lineárních rovnic a determinanty

Matice přechodu. Pozorování 2. Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např.

Úvod do lineární algebry

Reprezentace 3D modelu

V: Pro nulový prvek o lineárního prostoru L platí vlastnosti:

Co je obsahem numerických metod?

Věta 12.3 : Věta 12.4 (princip superpozice) : [MA1-18:P12.7] rovnice typu y (n) + p n 1 (x)y (n 1) p 1 (x)y + p 0 (x)y = q(x) (6)

transformace je posunutí plus lineární transformace má svou matici vzhledem k homogenním souřadnicím [1]

Soustavy linea rnı ch rovnic

1 Analytická geometrie

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Soustavy. Terminologie. Dva pohledy na soustavu lin. rovnic. Definice: Necht A = (a i,j ) R m,n je matice, b R m,1 je jednosloupcová.


VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

11. Skalární součin a ortogonalita p. 1/16

7. Derivace složené funkce. Budeme uvažovat složenou funkci F = f(g), kde některá z jejich součástí

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

α 1 α 2 + α 3 = 0 2α 1 + α 2 + α 3 = 0

7. Lineární vektorové prostory

14. přednáška. Přímka

Matematika B101MA1, B101MA2

Matice. Je dána matice A R m,n, pak máme zobrazení A : R n R m.

Požadavky ke zkoušce

Radiometrie, radiační metody

Euklidovský prostor. Euklides. Euklidovy postuláty (axiomy)

Těleso racionálních funkcí

6. ANALYTICKÁ GEOMETRIE

Soustavy lineárních rovnic

Vektorový prostor. Př.1. R 2 ; R 3 ; R n Dvě operace v R n : u + v = (u 1 + v 1,...u n + v n ), V (E 3 )...množina vektorů v E 3,

Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe.

Necht L je lineární prostor nad R. Operaci : L L R nazýváme

6. Vektorový počet Studijní text. 6. Vektorový počet

Úlohy k přednášce NMAG 101 a 120: Lineární algebra a geometrie 1 a 2,

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

Maticová optika. Lenka Přibylová. 24. října 2010

PŘEDNÁŠKA 6 INTEGRACE POMOCÍ SUBSTITUCE

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Afinní transformace Stručnější verze

Počítačová grafika Radiozita

Rotace ve 3D a kvaterniony. Eva Blažková a Zbyněk Šír (MÚ UK) - Rotace ve 3D a kvaterniony 1 / 16

9.1 Definice a rovnice kuželoseček

Rovinné přetvoření. Posunutí (translace) TEORIE K M2A+ULA

Co jsme udělali: Au = f, u D(A)

Zdrojem většiny příkladů je sbírka úloh 1. cvičení ( ) 2. cvičení ( )

6.1 Vektorový prostor

Integrace. Numerické metody 7. května FJFI ČVUT v Praze

Skalární součin dovoluje zavedení metriky v afinním bodovém prostoru, tj. umožňuje nám určovat vzdálenosti, odchylky, obsahy a objemy.

3 Lineární kombinace vektorů. Lineární závislost a nezávislost

Transkript:

Precomputed radiance transfer Martin Bulant 11. dubna 2011 Reprezentace funkce na sféře Reálnou funkci na sféře G(x) aproximujeme pomocí lineární kombinace lineárně nezávislých bázových funkcí B i (x): To nám přináší určité výhody: G(x) = n c i B i (x) potřebujeme si pamatovat jen váhy, neboli bázové koeficienty c i i=1 pro danou aproximaci funkce z nekonečnědimenzionálního prostoru si stačí pamatovat jen konečně mnoho koeficientů Volba bázových funkcí Bázové funkce lze zvolit mnoha různými způsoby, volba báze tedy vždy závisi na použití. Když už máme bázi, je potřeba najít koeficienty c i pro jednotlivé bázové funkce tak, abychom co nejlépe aproximovali požadovanou funkci G(x). Chceme tedy najít koeficienty c i, aby byla chyba aproximace minimální. Chybu definujeme jako integrál z rozdílu požadované funkce a její aproximace: E L2 = I[G(x) c i B i (x)] 2 i Jelikož chceme tuto chybu minimalizovat, zderivujeme funkci chyby. Získáme soustavu lineárních rovnic. Tuto soustavu lze zapsat pomocí matice, ve které se vyskytují skalární součiny bázových funkcí, označíme jí B. Tato matice je nezávislá na aproximované funkci, ale je závislá na zvolené bázi. Vektor pravých stran už na aproximované funkci závislý je. Postup hledání keficientů Nejprve zvolíme jakou bázi budeme používat. Když máme již zvolenou bázi, spočítáme matici B a k ní inverzní matici B 1. Pro danou funkci G potom 1

spočítáme vektor pravých stran. Vektor koeficientů dostaneme jako součin matice B 1 a vektoru pravých stran: c 1 G B 1 c 2. = G B 2 B 1. G B n c n Takto spočítané koeficienty minimalizují chybu aproximace naší funkce při zvolené metrice. Výhody ortonormální báze Pokud máme ortonormální bázi, matice B se pak stane jednotkovou, což nám výrazně zjednodušší hledání koeficientů. Skalární součin naší funkce s funkcemi z báze odpovídá projekci naší funkce do prostoru báze. Jednotlivé koeficienty pak udávají, jak moc se naše funkce G(x) podobá jednotlivým funkcím z báze (čím je koeficient větší, tím podobnější si obě funkce jsou). Další nezanedbatelnou výhodou je, že při použití ortonormální báze lze integrál ze součinu funkcí F (x) = n i=1 f ib i (x) a G(x) = n i=1 g ib i (x) nahradit skalárním součinem koeficientů těchto funkcí vůči této bázi, jak popisuje tento vzorec: n F (x)g(x)dx = f i g i S Toto je pro nás výhodné, jelikož zobrazovací rovnice má tvar integrálu součinu. Sférické harmonické Sférické harmonické jsou funkce definované na sféře, tedy na směrech v třírozměrném prostoru. Obecně jsou komplexní, my se však omezíme pouze na jejich reálnou část. Jejich argument, neboli směr je možné definovat v různých souřadných soustavách (např. polární, kartézská). My budeme používat polární souřadnou soustavu. Sférické harmonické jsou uzavřené vůči rotaci, respektive lineární podprostor tvořený bázovými funkcemi sférických harmonických do nějakého řadu je uzavřen na rotaci. Sférické harmonické lze zobrazovat dvěma způsoby: jako orbitaly jako barvu na povrchu koule Je třeba si uvědomit že pro řád n sférické harmonické funkce je třeba si pamatovat n 2 koeficientů. i=1 2

Indexování sférických harmocnických Sférické harmonické se indexují dvěma indexy, nejčastěji l a m, kde l udává řád sférické harmocnické funkce a má rozsah 0, ). Oproti tomu index m udává typ harmocnické funkce v rámci řádu a má rozsah l, l pro daný řád l. Často se však indexování zjednodušuje pouze na jeden index i, který odpovídá pořadí sférické harmonické funkce při procházení indexu l od 0 a pro každý řád l indexu m od l do l. Pro toto indexování platí: i = l(l + 1) + m Aproximace funkce pomocí sférických harmonických Funkce na sféře, může být aproximována pomocí sférických harmonických. Z praktických důvodů se používá dvojitá suma pro indexy l a m, místo jednoduché sumy pro index i. Pro aproximovanou funkci při použítí polárních souřadnic platí: G(θ, ϕ) = n 1 m=l l=0 m= l c l,m Y l,m (θ, ϕ) Bohužel pro složité funkce je nedostačující i řád 10, který odpovídá 100 koeficientů sférických harmonických. Jak už jsme uvedli, sférické harmonické tvoří ortonormální bázi. Výpočet koeficientů c l,m se provádí pomocí integrace součinu aproximované funkce s funkcemi bázickými přes celou sféru. Platí pro ně vzorec: c l,m = 2π π 0 0 G(θ, ϕ)y l,m (θ, ϕ) sin θdθdϕ Většinou se tyto koeficienty počítají pomocí numerické integrace, např. pomocí Monte Carlo integrace. Renderování v reálném čase - real-time rendering Chceme v reálném čase zobrazovat scény s realistickým osvětlením, stíny a globálním osvětlením. Přičemž reálným časem je myšleno, spočítat výsledný obrázek za zlomek sekundy. Bohužel pro současné algoritmy je to nemožné, je potřeba provést příliš velké množství výpočtů během velmi krátkého časového úseku. To se řeší dvěma různými přístupy. Prvním je omezení požadavků, například osvětlení přicházející z nekonečna, nezabývání se viditelností. Druhým je rozdělení výpočtu na 2 části, předvýpočet a samotný výpočet obrázku. 3

Mapování prostředí - Environment mapping V tomto přístupu se použije mnoho předpokladů, například, že světlo přichází z nekonečna, neovlivňuje ho viditelnost, máme jen zrcadlové povrchy atd. Za použití těchto předpokladů je pak rendering triviální. Pokud však naše předpoklady omezíme tím, že povolíme i difúzní a lesklé povrchy, začnou se objevovat komplikace. Pro Phongův světelný model se do výsledného směru ω o neodráží jen světlo ze směru R, tedy zrcadlový odraz, ale i nějaké světlo z okolí dle laloku BRDF. Při vyhledávání hodnoty v mapě prostředí se jako index použije vektor R. To lze vyřešit tak, že se použitá mapa už předem rozmaže pomocí filtru vycházejícího z dané BRDF. I toto řešení má bohužel vady, pro každý exponent je třeba mapu rozmazat jinak. Dalším závažnějším problém ale je, že pro každý pixel rozmazané mapy musím nějak váženě zkombinovat polovinu pixelů té mapy. Celá polovina je to proto, že BRDF je nenulová na jedné polovině sféry. To ovšem znamená, že rozmazávání mapy je velmi náročné. Pokud máme difúzní povrch, rozmazává se jádrem, které odpovídá Phonogovu osvětlovacímu modelu s exponentem rovným jedné. V tomto případě se narozdíl od phonga pro vyhladávaní v mapě prostředí použije jako index normálový vektor N (protože difúzní osvětlení je nezávislé na úhlu pohledu). Odbočka o zvláštním využití difúzní koule Pokud je potřeba do filmu umístit nějakou umělou postavu tak, aby měla správné osvětlení, tak se při natáčení na místo, kde bude ve filmu umělá postava umístí difúzní koule. Po nafilmování se pak nastavují světla v animačním programu pro difúzní kouli tak, aby byl výsledek stejný jako ta nafilmovaná koule. Takto nastavenými světly se pak osvítí vkládaný model. Mapování prostředí pomocí sférických harmonických Mapu prostředí budeme reprezentovat pomocí sférických harmonických. Hodnota iradiance je funkcí normály, lze ji tedy reprezentovat vůči bázi sférických harmonických. Abych dostal koeficienty iradiance, stačí koeficienty mapy prostředí přenásobit konstantami A l. Konstanty A l mají malou hodnotu pro velká l. To znamená, že po vynásobení touto konstantou uřežeme vysoké frekvence, což nám ale nevadí, jelikož chceme zpracovat difuzní povrch. Když vezmeme toto v potaz, tak nám stačí použít pouze 9 koeficientů sférických harmonických pro reprezentaci mapy prostředí. Dá se ukázat, že pro difuzní povrch je chyba výsledné radiance při 9 koeficientech menší než 3 procenta. To je díky tomu, že difúzní povrch funguje jako filtr, v tomto případě nízkofrekvenční propust. Algoritmus Algoritmus se skládá ze dvou částí, první z nich je předvýpočet. Ten se provádí při každé změně osvětlení, v našem případě při změně mapy prostředí. Nejprve si 4

najdeme projekci mapy prostředí do prvních devíti bází sférických harmonických a poté se tyto koeficienty přenásobí konstantou A l, čímž dostaneme koeficienty iradiance jako funkce normály. Druhou částí je samotný výpočet, osvětlení. Pro kazdý pixel potřebujeme vyhodnotit iradianci pro danou normálu. Díky tomu, že sférické harmonické do koeficientu 9 jsou maximálně kvadratické funkce, lze jí spočítat jen pomocí maticového násobení a skalárního součinu. Další možné vylepšení Chceme použít libovolnou BRDF, máme mapu prostředí a stále nás nezajímá viditelnost vzhledem k této mapě. BRDF i mapu prostředí reprezentujeme pomocí sférických harmonických. Toto má ale drobnou vadu, kterou je to, že BRDF není funkce definovaná na sféře, protože má 2 parametry. Zafixujeme si tedy odchozí směr, čímž se nám z BRDF stane funkce definovaná na sféře. Odchozí směr si diskretizujeme a spočítáme si koeficienty BRDF pro daný směr vůči sférickým harmonickým a tento vektor si uložíme do textury. Pro každý odchozí směr tedy máme jeden vektor koeficientů. Výpočet hodnoty pixelu Integrál ze součinu mapy prostředí a BRDF lze nahradit skalárním součinem vektorů koeficientů vůči bázi sférických harmonických. Je třeba si ovšem dávat pozor, vůči kterému souřadnému systému máme definice. Je třeba souřadné systémy zarovnat, to se provede pomocí rotace sférických harmonických. Pro provedení této operace se využije toho, že sférické harmonické jsou uzavřené na rotaci. Precomputed radiance transfer Je to druhá cesta, jak rychle počítat osvětlení. V tomto případě nezmírňujeme požadavky, chceme tedy komplexní osvětlení včetně stínů a globálního osvětlení. Ale i tak musíme použít určité předpoklady, je nutné zafixovat geometrii, materiál a pro některé techniky také směr pohledu. Příkladem je Daytime relighting, kdy chceme mít scénu osvětlenou v různých denních dobách. To se řeší tak, že se vypočítá osvětlení scény v předem určených časových okamžicich a v ostatních případech se osětlení intepoluje z těchto přepočítaných obrázků. Transport světla Na EM se lze dívat jako na vektor pixelů. Obdobně i na výsledek, například obrázek, se lze dívat jako na vektor pixelů (v real-time grafice barev vrcholů). Transport světla je lineární a lze ho tedy ho zapsat maticí. Označme ji M, je to předpočítaná matice přenosu osvětlení ve scéně. Lze do ní zakódovat stíny, globální osvětlení a další. 5

Výpočet matice transportu světla M Matici lze spočítat dvěma způsoby: po sloupcích to znamená, že celý obrázek je osvětlený jen jedním pixelem EM po řádcích to znamená, že jeden bod obrázku je osvětlený celou EM Tento přístup má ale problém s příliš velkou pracností, takováto matice by byla obrovská a ani maticové násobení s ní by nebylo upočitatelné, natož její výpočet. Řeší se různými způsoby, jením z ních je SH-based PRT. SH-based PRT Je to předpočítaný přenos radiance, který využívá reprezentaci funkce na sféře pomocí sférických harmonických. Rozlišují se zde 2 pojmy: Source radiance, což je radiance samotné environment mapy. Transfered Incident radiance, což je radiance přicházející do bodu, pokud započítáváme stíny a odrazy. Pokud bychom stíny a odrazy zanedbali, byla by stejná jako Source radiance. Algortimus funguje tak, že si předpočítám vzhled objektu při osvětlení jednotlivými bázemi SH. Pro skutečnou mapu prostředí si zjistím její koeficienty vůči zvolené bázi SH a výsledný obrázek spočítám váženou lineární kombinaci předpočítaných vzhledů pro jednotlivé báze. Zvolením vhodné báze pro reprezantaci osvětlení jsme řádově zmenšili potřebnou dimenzi. Tento postup lze použít pro nasvětlování exteriéru při různých světelných podmínkách (změny počasí, změny denní doby, atd.) Light mapa je extrémní případ PRT. Když se chci dívat z různých úhlů, budu si ukládat více hodonot, pro každou bázi SH jednu. Reference [1] Křivánek, J.: Function Approximation & Spherical Harmonics. 2011. URL <http://cgg.mff.cuni.cz/~jaroslav/teaching/npgr031/ 07-stgi-sh.pdf> [2] Křivánek, J.: Pre-computed Radiance Transfer. 2011. URL <http://cgg.mff.cuni.cz/~jaroslav/teaching/npgr031/ 07-stgi-prt.pdf> 6