Počítačová grafika III – Path tracing Jaroslav Křivánek, MFF UK

Slides:



Advertisements
Podobné prezentace
Analýza experimentu pro robustní návrh
Advertisements

Počítačová grafika III Odraz světla, BRDF – Cvičení Jaroslav Křivánek, MFF UK
Počítačová grafika III - Cvičení Integrováví na jednotkové kouli
Počítačová grafika III – Monte Carlo integrování II Jaroslav Křivánek, MFF UK
Počítačová grafika III – Důležitost, BPT Jaroslav Křivánek, MFF UK
PA081 Programování numerických výpočtů
Problematika a metody zpracování biomed. dat z pohledu jejich klasifikace Marcel Jiřina.
Jaroslav Křivánek, MFF UK
Počítačová grafika III – Zobrazovací rovnice a její řešení
Počítačová grafika III – Zobrazovací rovnice a její řešení Jaroslav Křivánek, MFF UK
Počítačová grafika III – Monte Carlo integrování
Počítačová grafika III – Path tracing II Jaroslav Křivánek, MFF UK
3. PRINCIP MAXIMÁLNÍ VĚROHODNOSTI
Optimalizace v simulačním modelování. Obecně o optimalizaci  Optimalizovat znamená maximalizovat nebo minimalizovat parametrech (např. počet obslužných.
Získávání informací Získání informací o reálném systému
25. října 2004Statistika (D360P03Z) 4. předn.1 Statistika (D360P03Z) akademický rok 2004/2005 doc. RNDr. Karel Zvára, CSc. KPMS MFF UK
Počítačová grafika III – Monte Carlo integrování Jaroslav Křivánek, MFF UK
Počítačová grafika III – Monte Carlo integrování Přímé osvětlení
Počítačová grafika III – Sekvence s nízkou diskrepancí a metody quasi-Monte Carlo Jaroslav Křivánek, MFF UK
Počítačová grafika III Úvod Jaroslav Křivánek, MFF UK
Počítačová grafika III Světlo, Radiometrie – Cvičení Jaroslav Křivánek, MFF UK
Počítačová grafika III – Cvičení 3 Jaroslav Křivánek, MFF UK
Počítačová grafika III – Multiple Importance Sampling Jaroslav Křivánek, MFF UK
Optimalizace versus simulace 9.přednáška. Obecně o optimalizaci  Maximalizovat nebo minimalizovat omezujících podmínkách.  Maximalizovat nebo minimalizovat.
Data s diskrétním rozdělením
Počítačová grafika III – Monte Carlo integrování II Jaroslav Křivánek, MFF UK
Jedno-indexový model a určení podílů cenných papírů v portfoliu
Počítačová grafika III – Monte Carlo rendering 2 Jaroslav Křivánek, MFF UK
Vektorová grafika.
Odhad metodou maximální věrohodnost
Počítačová grafika III – Monte Carlo integrování Jaroslav Křivánek, MFF UK
Experimentální fyzika I. 2
Počítačová grafika III – Path tracing Jaroslav Křivánek, MFF UK
Počítačová grafika III – Důležitost, BPT Jaroslav Křivánek, MFF UK
Metrologie   Přednáška č. 5 Nejistoty měření.
Počítačová grafika III – Cvičení 4 Jaroslav Křivánek, MFF UK
Počítačová grafika III – Zobrazovací rovnice a její řešení Jaroslav Křivánek, MFF UK
Počítačová grafika III – Radiometrie
Opakování lekce 4,5,
Monte Carlo simulace Experimentální fyzika I/3. Princip metody Problémy které nelze řešit analyticky je možné modelovat na základě statistického chování.
Počítačová grafika III Organizace Jaroslav Křivánek, MFF UK
Počítačová grafika III ZS 2014 Organizace Jaroslav Křivánek, MFF UK
Počítačová grafika III Organizace Jaroslav Křivánek, MFF UK
Počítačová grafika III Úvod Jaroslav Křivánek, MFF UK
Počítačová grafika III – Světlo, Radiometrie
Renderování vlasů. Kajiya – Kay model Rok 1989, článěk [1] Renderování srsti a krátkých vlasů 3D texely s parametry Texel je bod textury. V [1] se pojmem.
Reprezentativita: chyba výběru Jindřich Krejčí Management sociálních dat a datové archivy Kurz ISS FSV UK.
Anti – Aliasing Ondřej Burkert atrey.karlin.mff.cuni.cz/~ondra/stranka.
Hustota pravděpodobnosti – případ dvou proměnných
Statistické odhady (inference) Výběr Nepotřebujeme sníst celého vola jenom proto, abychom poznali, že to jde ztuha. Samuel Johnson (anglický básník a.
Úvod do praktické fyziky Seminář pro I.ročník F J. Englich, ZS 2003/04.
Aritmetický průměr - střední hodnota
Inferenční statistika - úvod
Počítačová grafika III – Monte Carlo rendering 3 Jaroslav Křivánek, MFF UK
Počítačová grafika III – Bidirectional path tracing
Metropolis © Josef Pelikán, 1 / 38 © 2008 Josef Pelikán, CGG MFF UK Praha
Ústav lékařské informatiky, 2. LF UK 2008 STATISTIKA II.
Varianty výzkumu Kroky výzkumu Výběrový soubor
R. Jakubíková J.Korbel J.Novák Monte Carlo.
Reprezentativita: chyba výběru Jindřich Krejčí
Základy statistické indukce
Induktivní statistika
Induktivní statistika
Monte Carlo Typy MC simulací
Induktivní statistika
Počítačová grafika III Monte Carlo estimátory – Cvičení
Počítačová grafika III Monte Carlo estimátory – Cvičení
Lineární regrese.
Induktivní statistika
Princip max. věrohodnosti - odhad parametrů
Transkript prezentace:

Počítačová grafika III – Path tracing Jaroslav Křivánek, MFF UK

Monte Carlo integrování Obecný nástroj k numerickému odhadu určitých integrálů 11 f(x)f(x) 01 p(x)p(x) 22 33 44 55 66 Integrál: Monte Carlo odhad I: „V průměru“ to funguje: PG III (NPGR010) - J. Křivánek

Příklady MC estimátorů

Odhad irradiance – uniformní vzork. Uniformní vzorkování: Estimátor: PG III (NPGR010) - J. Křivánek

Odhad irradiance – cos vzorkování Importance sampling: Estimátor: PG III (NPGR010) - J. Křivánek

6

Odhad irradiance – vzrokování zdroje PG III (NPGR010) - J. Křivánek

Odhad irradiance – vzrokování zdroje Uniformní vzorkování plochy zdroje: Estimátor PG III (NPGR010) - J. Křivánek

9

10

Plošné zdroje světla 1 vzorek na pixel 9 vzorků na pixel 36 vzorků na pixel PG III (NPGR010) - J. Křivánek

Přímé osvětlení na ploše s obecnou BRDF Odhadovaný integrál Estimátor (uniformní vzorkování povrchu zdroje) PG III (NPGR010) - J. Křivánek

Nepřímé osvětlení na ploše s obecnou BRDF Odhadovaný integrál Estimátor pro vzorkování směrů s obecnou pdf p(  ) PG III (NPGR010) - J. Křivánek PDF úměrná nebo velmi podobná BRDF

Distribution Ray Tracing Path tracing

Sledování cest od kamery renderImage() { for all pixels { Color pixelCol = (0,0,0); for k = 1 to N { wk := náhodný směr skrz k-tý pixel pixelCol += getLi(camPos,wk) } return Lo / N } PG III (NPGR010) - J. Křivánek

Distribution Ray Tracing (Cook 84) getLi(x, wi) { hit := NearestIntersect(x, wi) wo := -wi; y := hit.pos; if no intersection return backgroundCol; else { Lo = (0,0,0) for k = 1 to N { wk := náhodný směr na hemisféře s hustotou p(w) Lo += getLi(y, wk) * fr(y, wk, wo) * dot(hit.n,wk) / pdf(wk) } return Lo / N + directLighting (y, wo); } PG III (NPGR010) - J. Křivánek

Distribution Ray Tracing Ad hoc ukončení rekurze 1. maximální povolená hloubka 2. minimální povolený příspěvek  Oba tyto přístupy vedou k systematické chybě (bias) Zásadní problém  Exponenciální růst počtu paprsků s hloubkou rekurze PG III (NPGR010) - J. Křivánek

Sledování cest (Path tracing, Kajiya86) Pouze jeden sekundární paprsek 1. Náhodný výběr interakce (ideální lom, difúzní odraz, …) 2. Importance sampling podle vybrané interakce Přímé osvětlení  Doufej, že náhodně vygenerovaný paprsek trefí zdroj, anebo  Vyber náhodně jeden vzorek na jednom zdroji světla Trasuj stovky cest přes každý pixel a zprůměruj výsledek Výhoda: žádná exploze počtu paprsků kvůli rekurzi PG III (NPGR010) - J. Křivánek

Path Tracing – Implicitní osvětlení getLi(x, w) { Color thrput = (1,1,1) Color accum = (0,0,0) while(1) { hit = NearestIntersect(x, w) if no intersection return accum + thrput * bgRadiance(x, w) if isOnLightSource(hit) accum += thrput * Le(hit.pos, -w) ρ = reflectance(hit.pos, -w) if rand() < ρ // russian roulette – survive (reflect) wi := SampleDir(hit) thrput *= fr(hit.pos, wi, -w) * dot(hit.n, wi) / (ρ*pdf(wi)) x := hit.pos w := wi else // absorb break; } return accum; } PG III (NPGR010) - J. Křivánek

Ukončení rekurze – Ruská ruleta Pokračuj v rekurzi s pravděpodobností q Uprav váhu faktorem 1 / q PG III (NPGR010) - J. Křivánek

Výběr náhodného směru – Importance Sampling getLi(x, w) { Color thrput = (1,1,1) Color accum = (0,0,0) while(1) { hit = NearestIntersect(x, w) if no intersection return accum + thrput * bgRadiance(x, w) if isOnLightSource(hit) accum += thrput * Le(hit.pos, -w) ρ = reflectance(hit.pos, -w) if rand() < ρ // russian roulette – survive (reflect) wi := SampleDir(hit) thrput *= fr(hit.pos, wi, -w) * dot(hit.n, wi) / (ρ * pdf(wi)) x := hit.pos w := wi else // absorb break; } return accum; } PG III (NPGR010) - J. Křivánek

Obyčejně vzorkujeme s hustotou „co nejpodobnější“ součinu f r (  i,  o ) cos  i  Ideálně bychom chtěli vzorkovat podle L i (  i ) f r (  i,  o ) cos  i, ale to neumíme, protože neznáme L i Co když bude hustota přesně úměrná f r (  i,  o ) cos  i ? PG III (NPGR010) - J. Křivánek Výběr náhodného směru – Importance Sampling

„Ideální“ BRDF Importance Sampling Normalizace (integrál pdf musí být = 1) PG III (NPGR010) - J. Křivánek odrazivost 

„Ideální“ BRDF IS v Path Traceru Obecná hustota (pdf)... thrput *= fr(.) * dot(.) / ( ρ * p(wi) ) „Ideální“ BRDF importance sampling... thrput *= 1 PG III (NPGR010) - J. Křivánek

Pravděpodobnost přežití cesty getLi(x, w) { Color thrput = (1,1,1) Color accum = (0,0,0) while(1) { hit = NearestIntersect(x, w) if no intersection return accum + thrput * bgRadiance(x, w) if isOnLightSource(hit) accum += thrput * Le(hit.pos, -w) ρ = reflectance(hit.pos, -w) if rand() < ρ // russian roulette – survive (reflect) wi := SampleDir(hit) thrput *= fr(hit.pos, wi, -w) * dot(hit.n, wi) / (ρ * p(wi)) x := hit.pos w := wi else // absorb break; } return accum; } PG III (NPGR010) - J. Křivánek

Pravděpodobnost přežití cesty Použití odrazivosti  jako p-nosti přežití dává smysl  Pokud plocha odráží jen 30% energie, pokračujeme pouze s 30% pravděpodobností. Co když neumím spočítat  ? Alternativa 1. Nejdříve vygeneruj náhodný směr podle p(  i ) 2.  Pro „ideální“ BRDF IS stejné jako původní metoda PG III (NPGR010) - J. Křivánek

Zpět k obecnému MC integrování – „Multiple Importance Sampling“

Multiple Importance Sampling f(x) 01 p 1 (x) p 2 (x) PG III (NPGR010) - J. Křivánek (Veach & Guibas, 95)

Multiple importance sampling Máme dáno n vzorkovacích „technik“ (hustot pravděpodobnosti) p 1 (x),.., p n (x) Z každé techniky (hustoty) vybereme n i vzorků X i,1,.., X i,n i Kombinovaný estimátor PG III (NPGR010) - J. Křivánek vzorkovací techniky vzorky z jednotlivých technik kombinační váhy (mohou být různé pro každý vzorek)

Nestrannost kombinovaného odhadu Podmínka pro váhové funkce PG III (NPGR010) - J. Křivánek

Volba váhových funkcí Cíl: minimalizovat rozptyl kombinovaného estimátoru 1. Aritmetický průměr (velmi špatná kombinace) 2. Vyrovnaná heuristika (velmi dobrá kombinace)  …. PG III (NPGR010) - J. Křivánek

Vyrovnaná heuristika (Balance heurist.) Kombinační váhy Výsledný estimátor (po dosazení vah)  příspěvek vzorku nezávisí na tom, ze které byl pořízen techniky (tj. pdf) PG III (NPGR010) - J. Křivánek

Vyrovnaná heuristika (Balance heurist.) Vyrovnaná heuristika je téměř optimální  Žádný kombinovaný estimátor nemůže mít rozptyl „o mnoho“ menší než vyrovnaná heuristika Další možné kombinační heuristiky  Maximální heuristika  Mocninná heuristika  viz. Veach 1997 PG III (NPGR010) - J. Křivánek

Jeden člen kombinovaného odhadu f(x) 01 p 1 (x) p 2 (x) PG III (NPGR010) - J. Křivánek

Aritmetický průměr 01 PG III (NPGR010) - J. Křivánek

Vyrovnaná heuristika 01 PG III (NPGR010) - J. Křivánek