Počítačová grafika III (NPGR010) Přednáška: Path tracing II

Podobné dokumenty
Počítačová grafika III Multiple Importance Sampling. Jaroslav Křivánek, MFF UK

Počítačová grafika III Multiple Importance Sampling. Jaroslav Křivánek, MFF UK

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

Počítačová grafika III Monte Carlo integrování II. Jaroslav Křivánek, MFF UK

A4M39RSO. Sledování cest (Path tracing) Vlastimil Havran ČVUT v Praze CTU Prague Verze 2014

Počítačová grafika III Monte Carlo integrování II. Jaroslav Křivánek, MFF UK

Monte Carlo rendering

Fotonové mapy. Leonid Buneev

Počítačová grafika III Monte Carlo rendering 2. Jaroslav Křivánek, MFF UK

1. Náhodný vektor (X, Y ) má diskrétní rozdělení s pravděpodobnostní funkcí p, kde. p(x, y) = a(x + y + 1), x, y {0, 1, 2}.

Odraz světla, BRDF. Petr Kadleček

Photon-Mapping Josef Pelikán CGG MFF UK Praha.

Generování pseudonáhodných. Ing. Michal Dorda, Ph.D.

Distribuované sledování paprsku

PŘEDNÁŠKA 6 INTEGRACE POMOCÍ SUBSTITUCE

Řešení. Označme po řadě F (z) Odtud plyne, že

X39RSO/A4M39RSO. Integrace a syntéza obrazu pomocí metody Monte Carlo. Vlastimil Havran, ČVUT v Praze

Náhodný vektor. Náhodný vektor. Hustota náhodného vektoru. Hustota náhodného vektoru. Náhodný vektor je dvojice náhodných veličin (X, Y ) T = ( X

Lingebraické kapitolky - Analytická geometrie

Vícerozměrná rozdělení

Bayesovské metody. Mnohorozměrná analýza dat

F n = F 1 n 1 + F 2 n 2 + F 3 n 3.

9. T r a n s f o r m a c e n á h o d n é v e l i č i n y

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

Odhady - Sdružené rozdělení pravděpodobnosti

Lineární algebra : Metrická geometrie

Počítačová grafika III Důležitost, BPT. Jaroslav Křivánek, MFF UK

PŘEDNÁŠKA 9 KŘIVKOVÝ A PLOŠNÝ INTEGRÁL 1. DRUHU

Zobrazování a osvětlování

13. cvičení z Matematické analýzy 2

letní semestr Katedra pravděpodobnosti a matematické statistiky Matematicko-fyzikální fakulta Univerzity Karlovy Matematická statistika vektory

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2

Náhodný vektor. Náhodný vektor. Hustota náhodného vektoru. Hustota náhodného vektoru. Náhodný vektor je dvojice náhodných veličin (X, Y ) T = ( X

X39RSO/A4M39RSO Vychýlené (biased) metody globálního osvětlení. Vlastimil Havran ČVUT v Praze CTU Prague Verze 2011

NÁHODNÉ VELIČINY JAK SE NÁHODNÁ ČÍSLA PŘEVEDOU NA HODNOTY NÁHODNÝCH VELIČIN?

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:

Obsah. Aplikovaná matematika I. Gottfried Wilhelm Leibniz. Základní vlastnosti a vzorce

Rekurzivní sledování paprsku

y ds, z T = 1 z ds, kde S = S

9. T r a n s f o r m a c e n á h o d n é v e l i č i n y

10. cvičení z Matematické analýzy 2

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

ˇ EDNA SˇKA 9 DALS ˇ I METODY INTEGRACE

Dvojné a trojné integrály příklad 3. x 2 y dx dy,

stránkách přednášejícího.

Pravděpodobnost a aplikovaná statistika

1.1 Existence a jednoznačnost řešení. Příklad 1.1: [M2-P1] diferenciální rovnice (DR) řádu n: speciálně nás budou zajímat rovnice typu

Lineární algebra : Změna báze

19 Eukleidovský bodový prostor

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

Pravděpodobnostní algoritmy

Precomputed radiance transfer

Jasové transformace. Karel Horák. Rozvrh přednášky:

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

rovnic), Definice y + p(x)y = q(x), Je-li q(x) = 0 na M, nazývá se y + p(x)y =

I. D i s k r é t n í r o z d ě l e n í

Pojmy z kombinatoriky, pravděpodobnosti, znalosti z kapitoly náhodná veličina, znalost parciálních derivací, dvojného integrálu.

13. cvičení z PSI ledna 2017

Kombinatorická minimalizace

Dnešní látka Opakování: normy vektorů a matic, podmíněnost matic Jacobiova iterační metoda Gaussova-Seidelova iterační metoda

Radiometrie, radiační metody

3.2. ANALYTICKÁ GEOMETRIE ROVINY

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.

Otázku, kterými body prochází větev implicitní funkce řeší následující věta.

11. cvičení z Matematické analýzy 2

p(x) = P (X = x), x R,

1 Připomenutí vybraných pojmů

X = x, y = h(x) Y = y. hodnotám x a jedné hodnotě y. Dostaneme tabulku hodnot pravděpodobnostní

terminologie předchozí kapitoly: (ϕ, Ω) - plocha, S - geometrický obraz plochy

Přijímací zkoušky z matematiky pro akademický rok 2018/19 NMgr. studium Učitelství matematiky ZŠ, SŠ

, 1. skupina (16:15-17:45) Jméno: se. Postup je třeba odůvodnit (okomentovat) nebo uvést výpočet. Výsledek bez uvedení jakéhokoliv

7. Funkce jedné reálné proměnné, základní pojmy

7 Gaussova věta 7 GAUSSOVA VĚTA. Použitím Gaussovy věty odvod te velikost vektorů elektrické indukce a elektrické intenzity pro

Těleso racionálních funkcí

Diskrétní náhodná veličina. November 12, 2008

b) Maximální velikost zrychlení automobilu, nemají-li kola prokluzovat, je a = f g. Automobil se bude rozjíždět po dobu t = v 0 fg = mfgv 0

- funkce, které integrujete aproximujte jejich Taylorovými řadami a ty následně zintegrujte. V obou případech vyzkoušejte Taylorovy řady

Počítačová grafika III Photon mapping. Jaroslav Křivánek, MFF UK

Příklady pro předmět Aplikovaná matematika (AMA) část 1

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

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

P íklad 1 (Náhodná veli ina)

Úvodní informace. 17. února 2018

Klasifikace a rozpoznávání. Bayesovská rozhodovací teorie

Přijímací zkouška na navazující magisterské studium 2015

Vzorová písemka č. 1 (rok 2015/2016) - řešení

Vektor náhodných veli in - práce s více prom nnými

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

Seriál II.II Vektory. Výfučtení: Vektory

MATEMATIKA II - vybrané úlohy ze zkoušek v letech

Matematika II, úroveň A ukázkový test č. 1 (2018) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

ŘADY KOMPLEXNÍCH FUNKCÍ

[obrázek γ nepotřebujeme, interval t, zřejmý, integrací polynomu a per partes vyjde: (e2 + e) + 2 ln 2. (e ln t = t) ] + y2

Fyzikální korespondenční seminář UK MFF 22. II. S

y = 1 x (y2 y), dy dx = 1 x (y2 y) dy y 2 = dx dy y 2 y y(y 4) = A y + B 5 = A(y 1) + By, tj. A = 1, B = 1. dy y 1

Parametrická rovnice přímky v rovině

Monotonie a lokální extrémy. Konvexnost, konkávnost a inflexní body. 266 I. Diferenciální počet funkcí jedné proměnné

Odhady Parametrů Lineární Regrese

Přijímací zkouška na navazující magisterské studium 2014

Shodnostní Helmertova transformace

Transkript:

Počítačová grafika III (PGR010) Přednáška: Path tracing II Petr Vévoda 15 listopadu 01 1 Přímé osvětlení v path traceru a minulé přednášce jsme si představili základní verzi algoritmu path tracing: Pro každý pixel výsledného obrázku vrhni paprsek do scény, pokud se v místě dopadu nachází zdroj světla, započti jím emitovanou radianci, a s pravděpodobností odpovídající odrazivosti vrhni paprsek náhodně zpět do scény, kde postup rekurzivně opakuj V této podobě však ještě algoritmus není v praxi použitelný Sledovaná cesta totiž nenulově přispěje k výsledku pouze tehdy, trefíli ve svému průběhu nějaký zdroj světla Jenže pravděpodobnost na zásah klesá se zmenšující se plochou světelného zdroje, a to až k nule pro zdroje bodové Se snižujícím se počtem a rozměry světel ve scéně tak roste počet cest končících s prázdnou, konvergence se zpomaluje a variance vzrůstá Obrázek 1 pak ukazuje, jakého výsledku se dočkáme u scény s jediným malým zdrojem světla Pro odhad tohoto integrálu použijeme MC estimátor: integrand je dán, hustotu pravděpodobnosti volby směrů volíme co nejpodobnější funkci f r(x, ω i, ω o) cos θ i (odtud ono vzorkování BRDF ) Výsledný estimátor má tvar: ˆL r(x, ω o) = 1 L e(r(x, ω i,k ), ω i,k ) f r(x, ω i,k, ω o) cos θ i,k p(ω i,k ) Tzn podle hustoty p vygenerujeme náhodných směrů ω i,1,, ω i,, vrhneme jimi paprsky z x, pokud protnou nějaký zdroj světla, přičteme odpovídající člen L e()f r() cos()p() 1 a nakonec podělíme 11 Vzorkování světla Využíváme plošnou formulaci rovnice odrazu, přičemž nás zajímá pouze přímé osvětlení, pročež integrujeme pouze přes plochu zdroje A Pro odraženou radianci L r ve směru ω o v bodě x tak dostáváme vztah: L r(x, ω o) = A L e(y x) f r(y x ω o) V (y x) G(y x) da y Pro odhad tohoto integrálu použijeme MC estimátor: integrand je dán, hustotu pravděpodobnosti volby bodu na zdroji volíme konstantní A 1 (tj světlo vzorkujeme uniformně) Výsledný estimátor má tvar: Obrázek 1: Ukázka špatné konvergence základního path traceru Vlevo referenční obrázek, vpravo výsledek při použití 150 cest na pixel (Autor: Alexander Wilkie) Vidíme, že náš algoritmus, jež by měl umět počítat nepřímé osvětlení, selhává již při výpočtu osvětlení přímého Zaměřme se proto nyní na něj 11 Přímé osvětlení obecně abízejí se dva přístupy, jak určit odraženou radianci v daném bodě způsobenou přímým osvětlením Bud můžeme uvažovat rovnici odrazu v její úhlové formě, tzn integrovat přes směry na hemisféře, nebo vyjít z plošné formy a integrovat přes plochu scény První způsob vede na vzorkování BRDF, druhý na vzorkování světla 111 Vzorkování BRDF Využíváme úhlovou formulaci rovnice odrazu, přičemž nás zajímá pouze přímé osvětlení, pročež v místech dopadu paprsků připočítáváme pouze emitovanou radianci Pro odraženou radianci L r ve směru ω o v bodě x tak dostáváme vztah: L r(x, ω o) = L e(r(x, ω i), ω i) f r(x, ω i, ω o) cos θ i dω i H(x) ˆL r(x, ω o) = A L e(y k x) f r(y k x ω o) V (y k x) G(y k x) Tzn uniformně vygenerujeme náhodných bodů na zdroji y 1,, y, jsou-li viditelné z x (tj je-li V (y k x) = 1), přičteme odpovídající člen A L e()f r()g() a nakonec podělíme 113 Vlastnosti vzorkování BRDF a vzorkování světla Máme dva různé korektní způsoby, jak vyřešit jeden problém, kterak spočítat odraženou radianci v daném bodě způsobenou přímým osvětlením Kdy je vhodné použít který? Vzorkování BRDF - Výhodnější pro velká světla, nebot se zmenšující se plochou zdroje klesá pravděpodobnost jeho zásahu vygenerovaným paprskem, a tedy i počet nenulových sčítanců v odhadu integrálu, což ústí ve vysoký rozptyl a šum ve výsledném obrázku epoužitelné pro scény osvětlené bodovými zdroji, kde kvůli nulové pravděpodobnosti jejich zásahu produkuje nulový výstup Vzorkování světla - Výhodnější naopak pro světla malá (a jediná možnost pro zdroje bodové), nebot čím větší zdroj je, tím spíše padne směr odpovídající některému jeho vzorku mimo lalok BRDF, neboli jeho příspěvek k odhadu integrálu je umenšen maličkou hodnotou BRDF, důsledkem čehož je opět vysoký rozptyl a šum

Příchozí paprsek Vzorek BRDF Vzorek světla nám pro odhad integrálu funkce f kombinací dvou vzorkovacích technik s hustotami p1 a p, z nichž z každé budeme brát vzorku, nabízí tento kombinovaný estimátor: BRDF F = Obrázek : Srovnání vzorkování BRDF a vzorkování sve tla a obrázcích 3a a 3b je identická scéna zobrazena obe ma metodami Ve scéne se nachází c tyr i ru zne lesklé plochy (nejvzdálene jší je nejvíce lesklá, nejbližší nejvíce difúzní), které jsou osve tlené c tyr mi ru zne velkými zdroji C ím je plocha více difúzní, tím je BRDF více konstantní, tím je vzorkování hemisféry pr i vzorkování BRDF více uniformní a tím spíše paprsek zdroj mine a obrázku 3a vlevo dole proto metoda vzorkování BRDF zcela selhává a výsledkem je náhodný shluk pixelu aproti tomu vzorkování sve tla ve stejné situaci funguje dobr e, jelikož jsou všechny pr íspe vky vygenerovaných sme ru násobeny takr ka stejne velkými hodnotami BRDF Pro lesklé plochy je pak výsledek pr esne opac ný BRDF má jeden úzký dlouhý lalok, jenž sme ry vygenerované pr i vzorkování sve tla snadno minou, a na obrázku 3b vpravo nahor e tak dostaneme ope t jen šum aopak výsledek pr i vzorkování BRDF je dobrý, pone vadž paprsky jsou generovány pr evážne v ose laloku a ten mír í do zdroje práve pro ty úhly pohledu, pro které lesklý odraz zdroje oc ekáváme f (X,k ) f (X1,k ) 1 X + w (X,k ) w1 (X1,k ), p1 (X1,k ) p (X,k ) kde w1 a w jsou váhové funkce spln ující x : w1 (x)+w (x) = 1 Otázkou, jak tyto kombinac ní váhy nejlépe zvolit, jsme se rovne ž zabývali na minulé pr ednášce a dospe li jsme k tzv vyrovnané heuristice, která je takr ka optimálním r ešení co do minimalizace rozptylu estimátoru V našem pr ípade vede její užití na váhy: w1 (x) = p1 (x) p (x), w (x) = p1 (x) + p (x) p1 (x) + p (x) a na estimátor: f (X,k ) f (X1,k ) 1 X + F = p1 (X1,k ) + p (X1,k ) p1 (X,k ) + p (X,k ) Aplikace vyrovnané heuristiky má ješte jeden du sledek, a sice, že v tuto chvíli již pr íspe vky vzorku nezávisí na technice, z jaké pocházejí Po jejich pr eznac ení tak mu žeme estimátor psát jednodušeji jako: F = f (Xk ) 1 X, p1 (Xk ) + p (Xk ) kde vzorky X1,, X pocházejí z rozde lení p1 a vzorky X +1,, X z rozde lení p yní budeme chtít za f dosadit integrand ze vztahu pro Lr a za p1, p hustoty odpovídající našemu vzorkování BRDF a vzorkování sve tla Zde je tr eba zdu raznit, že f, p1 i p musí mít stejnou doménu (už jen ze syntaktického hlediska nemu že Xk na jednom míste rovnice znamenat sme r a na jiném bod na zdroji) Pokud tedy za f zvolíme integrand ze vzorkování BRDF (jehož parametrem je sme r): f (ω) = Le (r(x, ω), ω) fr (x, ω, ωo ) cos θx, (a) Vzorkování BRDF (b) Vzorkování sve tel mu žeme za p1 použít hustotu vzorkování BRDF uvedenou v sekci 111, tedy co nejpodobne jší BRDF, napr pro Lambertovskou BRDF: cos θx p1 (ω) = π Za p však nemu žeme ze sekce 11 stejne snadno vzít konstantní hustotu vzorkování sve tla A 1, protože její doménou jsou body na zdroji Musíme ji nejdr íve z plošné míry da pr evést do míry úhlové dω, a to za pomoci známého vztahu dω = da cos θ r Dostaneme: y (c) MIS Obrázek 3: Ukázka vzorkovacích technik (Autor: Eric Veach) Vidíme, že ani jedna z metod není sama o sobe univerzálne použitelná a druhou stranu se zjevne ideálne dopln ují emohli bychom je tedy ne jak zkombinovat? Obe odhadují stejnou velic inu Lr (x, ωo ), pouhým sec tením bychom dostali její dvojnásobek, musíme tedy na to jít chytr eji 1 kx yk p (ω) =, A cos θy Aplikace MIS na výpoc et pr ímého osve tlení Stac í si uve domit, že jsme v situaci jako ušité na míru metode MIS (Multiple importance sampling) popsané na minulé pr ednášce Ta θy x tj hustotu pravde podobnosti, s jakou by byl sme r ω vygenerován, kdybychom použili vzorkování plochy zdroje Celkove tak z sme ru získaných vzorkováním Lambertovské BRDF a sme ru získaných vzorkováním sve tla odhadneme odraženou radianci jako: L r (x, ωo ) = 1 X Le (r(x, ωk ), ωk ) fr (x, ωk, ωo ) 1 + 1 kx yk 114 θx π A cos θy Analogicky bychom postupovali pro volbu integrandu ze vzorkování sve tla Hustotu p0 bychom vzali rovnou, pro p01 by byl nutný pr evod

a obrázku 3c vidíme výsledek našeho úsilí, kombinací obou vzorkovacích technik pomocí MIS jsme konečně dosáhli správného výsledku Obrázek 4 pak nabízí ještě jednu ukázku ejdříve je scéna opět vyrenderována užitím každé z technik zvlášt Jak bychom očekávali, při vzorkování BRDF roste šum se vzdáleností od zdroje, kdy už se generované paprsky do něj stále hůře trefují Šum v těsném sousedství zdroje při vzorkování světla není ani tak dán tím, že by směry odpovídající generovaným bodům na zdroji míjeli lalok BRDF (povrch celé scény je difúzní), nýbrž velkým rozptylem vzdáleností mezi body na stěně a pro ně vygenerovanými vzorky na zdroji Vzhledem k uniformnímu vzorkování zdroje totiž může být jednou vzat vzorek světla z jednoho konce a hned pro sousední bod na zdi vzorek z konce opačného Úbytek příspěvku vzorku s kvadrátem vzdálenosti (viz geometrický člen v estimátoru při vzorkování světla) pak znamená šum v odhadu a tedy i v obrázku Obě techniky proto zkombinujeme pomocí MIS užitím vhodných vah Jak ukazuje 4b, aritmetický průměr je nevhodný, zachovává špatné vlastnosti obou Oproti tomu na 4c vidíme, že při použití vyrovnané heuristiky váhy jejich slabé stránky potlačují a dobře se doplňují, což potvrzuje i poslední obrázek 4d (a) Vlevo 1 BRDF + 0 SVĚTLO, vpravo 0 BRDF + 1 SVĚTLO Úspěšně jsme vyřešili přímé osvětlení obecně, nyní je načase použít tyto poznatky k vylepšení našeho path traceru 1 Použití MIS v path traceru Základní path tracer v každém vrcholu sledované cesty, pokud se nerozhodl ji ukončit, pro výpočet odražené radiance vrhl podle BRDF paprsek do scény a v místě jeho dopadu mimo jiné započítal emitovanou radianci, jestliže trefil zdroj To je ale přesně princip výpočtu přímého osvětlení metodou vzorkování BRDF O ní víme, že ne vždy podává dobré výsledky, a že existuje metoda vzorkování světla, která se s ní ideálně doplňuje Je tedy nasnadě přidat do path traceru právě vzorkování světla K tomu nám bude stačit jediné: v každém vrcholu x vyšleme navíc jeden stínový paprsek směrem do zdroje (přesněji náhodně zvolíme bod y na zdroji a spojíme) Ten ve zdroji skončí (cesty se tedy exponenciálně nevětví) a příspěvek zdroje se připočte již známým způsobem pomocí MIS a vyrovnané heuristiky Zatímco však tento stínový paprsek přispívá pouze k přímému osvětlení, původní pokračovací paprsek ve směru ω pok přispívá také k osvětlení nepřímému Jen přímé osvětlení je ale počítané pomocí kombinovaného estimátoru, tudíž MIS váhy se použijí pouze na přímé osvětlení a osvětlení nepřímé se připočte celé Při výpočtu MIS vah je pak navíc potřeba vzít v úvahu pravděpodobnost přežití cesty ρ (ruskou ruletu) Tedy: Le(r(x, ωpok), ωpok) fr(x, ωpok, ωo) cos θpok ˆL r(x, ω o) = + (1) ρ (p 1(ω pok) + p (ω pok)) L e(y x) f r(y x ω o) G(y x) p 1 (y) + p (y) + () ˆL r(r(x, ω pok), ω pok) f r(x, ω pok, ω o) cos θ pok ρ p 1(ω pok) (3) kde 1 je příspěvek k přímému osvětlení pokračovacího paprsku ze vzorkování BRDF, je příspěvek k přímému osvětlení stínového paprsku ze vzorkování zdroje (není-li zastíněn) a 3 je příspěvek pokračovacího paprsku k osvětlení nepřímému Pro použitelnost našeho path traceru je důležité zodpovědět ještě jednu otázku: co když bude ve scéně více zdrojů světla? Je zřejmé, že na vzorkování BRDF nemá počet světel vliv, ale v případě vzorkování světla jsme se bavili pouze o jediném zdroji abízí se dvě řešení: Poslat stínový paprsek ke každému zdroji světla Tento způsob může být nepraktický při vyšším počtu světel (100+) (b) 1/ BRDF + 1/ SVĚTLO (c) Vlevo w 1 BRDF+0 SVĚTLO, vpravo 0 BRDF+w SVĚTLO (d) w 1 BRDF + w SVĚTLO Obrázek 4: Ukázka použití různých vah při kombinaci vzorkování BRDF a vzorkování světla v difúzní scéně Vzorkovací techniky jsou značeny jako BRDF a SVĚTLO (Autor: Alexander Wilkie) ejdříve vybrat náhodně jeden zdroj (ideálně s pravděpodobností podle výkonu) a na něm teprve náhodně vybrat bod určující stínový paprsek Pravděpodobnost výběru zdroje však ovlivňuje hustoty (a tedy i váhy) v MIS Druhá metoda bývá často lepší Dobrou heuristikou může být její použití až po prvním nelesklém odrazu, zatímco pro všechny ostatní vrcholy cesty počítat přímé osvětlení od všech zdrojů světla

Generování z distribuce Pro Importance sampling a tedy i pro výše uvedené postupy je klíčový předpoklad, že umíme generovat vzorky z dané distribuce Tu typicky dostáváme jako hustotu pravděpodobnosti a potřebujeme vygenerovat vzorky s odpovídajícím rozdělením Počítač nám však poskytuje pouze generátor náhodných čísel z rovnoměrného rozdělení, jak tedy získat jiná? Rozebereme si jednotlivé případy 1 Diskrétní náhodná veličina (a) Transformační metoda pro diskrétní případ 11 1D echt je dána pravděpodobnostní funkce p, p(i) necht značí pravděpodobnost, s jakou náhodná veličina nabude i-té hodnoty ze své domény Snadno spočítáme distribuční funkci P (platí P (i) = i j=1 p(j)), generování vzorku pak probíhá následovně: 1 Vygeneruj u z R(0, 1) Vyber x i takové, že P (i 1) < u P (i) (dodefinováváme P (0) = 0) Jak můžeme vidět na obrázku 5a, pravděpodobnost, že vybereme x, odpovídá rozdílu výšek sloupečků u x a x 1, což je z definice distribuční funkce P právě pravděpodobnost p() alezení i z kroku se v praxi provádí půlením intervalu 1 D echt je dána sdružená pravděpodobnostní funkce p I,J, I, J značí náhodný vektor dimenze a doménu D diskrétní náhodné veličiny se lze dívat jako na D tabulku, jejímž políčkům funkce p I,J přiřazuje pravděpodobnost Jedním z možných řešení je tuto tabulku zlinearizovat (např diagonální metodou), čímž obdržíme 1D distribuci, kterou již vzorkovat umíme Druhým, zpravidla lepším řešením je vzorkovat po složkách, tzn nejdříve vygenerovat index řádku i sel podle marginálního 1D rozdělení popsaného pravděpodobnostní funkcí p I(i) = n J j=1 p I,J(i, j) a poté vygenerovat sloupec j sel podle podmíněného 1D rozdělení příslušejícího vybranému řádku i sel p J I (j I = i sel) = pi,j(isel, j) p I(i sel) Tento postup je korektní, prvek na pozici (i, j) totiž vygenerujeme s pravděpodobností p I(i) p J I (j I = i) = p I(i) Spojitá náhodná veličina 1 1D pi,j(i, j) p I(i) = p I,J(i, j) Ve spojitém případě máme dvě možnosti První je transformační metoda stavící na tvrzení, že je-li U náhodná veličina s rozdělením R(0, 1), potom náhodná veličina X = P 1 (U) má rozdělení popsané distribuční funkcí P eboli jedná se o analogii řešení diskrétního případu, kdy generujeme z rovnoměrného rozdělení a hledáme vzor v distribuční funkci (srovnejme obrázky 5a a 5b) Problémem je, že pro spojitou náhodnou veličinu je nalezení distri- (b) Transformační metoda pro spojitý případ (vlevo princip, vpravo kombinace se stratifikací) (c) Zamítací metoda pro spojitý případ Obrázek 5: Ilustrační obrázky k metodám generování vzorků z dané distribuce (Autor: Jaroslav Křivánek) buční funkce obecně podstatně těžší (znamená to integrovat hustotu), o její inverzi ani nemluvě Tento postup se tedy hodí pro situace, kdy jsme schopni nalézt P 1 analyticky Jeho předností je pak snadná kombinace se vzorkováním po částech (stratifikací), které se provede už při generování z R(0, 1) a transformace inverzní distribuční funkcí jeho dobré vlastnosti zachová (viz obrázek 5b) Druhou možností je tzv zamítací metoda (rejection sampling) echt je hustota p definována na intervalu [a, b], na kterém nabývá nejvýše hodnotu MAX Generování pak probíhá následovně: 1 Vyber náhodně u 1 z R(a, b) Vyber náhodně u z R(0, MAX) 3 Pokud je u < p(u 1), vzorek u 1 přijmi a obrázku 5c to znamená, že vzorky nad funkcí se zahodí a ze zbylých se vezme první souřadnice Je zřejmé, že čím je v daném bodě hustota větší, tím více vzorků se pod ni trefí a tím více bude tento bod přijímán Přijaté vzorky tedy skutečně mají rozložení dané hustotou p Výhodou této metody je, že nám stačí umět vyhodnotit hustotu v bodě a shora ji omezit, nepotřebujeme ji integrovat ani počítat inverzi distribuční funkce V praxi často analytické vyjádření hustoty nemáme a pak je zamítací metoda jedinou možností a druhou stranu transformační metoda bude vždy efektivnější, nedochází u ní k žádnému plýtvání vygenerovanými náhodnými čísly, zatímco účinnost zamítací metody, tj procento přijatých vzorků, odpovídá poměru plochy pod funkcí ku celkové ploše a pro nekonstantní hustotu bude vždy menší než 1 Skutečnosti, že dopředu nevíme, kolik náhodných čísel bude nutné vygenerovat, než dostaneme vzorek, je poté zapotřebí přizpůsobit i návrh příslušných procedur path traceru

D echt je dána sdružená hustota px,y (x, y) = px (x)py X (y x) Postup je zcela analogický diskrétnímu pr ípadu ejdr íve tedy vygenerujeme xsel podle marginální hustoty Z px (x) = px,y (x, y)dy a poté ysel podle podmíne né hustoty py X (y X = xsel ) = 3 px,y (xsel, y) px (xsel, y) Transformac ní vzorce ejen výše uvedené, ale celou r adu dalších vzorcu a rovnic ne jak souvisejících s globálním osve tlením lze nalézt na jednom míste v Global Illumination Compendium [Dutré 003] 3 Image-based lightning Image-based lightning je oznac ení pro metodou, pr i níž je scéna osve tlena použitím name r eného reálného sve tla, a to pomocí mapy prostr edí Místo bodových a plošných zdroju ve scéne je zdrojem nekonec ne velká koule kolem scény, na kterou je namapován obraz reálného prostr edí Ten mu že být získán jednoduše vyfotografováním, musí se však vzhledem k potenciálne obrovskému dynamickému rozsahu jednat o HDR snímky Jedním z možným postupu je vyfotografovat dva snímky odrazu prostr edí v zrcadlove lesklé kouli vu c i sobe pootoc ené o 90 Po jejich registraci vznikne kruhová mapa prostr edí, používají se ale i jiné, viz obrázek 6 Obrázek 7 pak dokládá významný dopad použití Image-based lightning na ve rohodnost scény oproti osve tlení jedním bodovým zdrojem Lépe lze pr i ne m rozlišit materiály, je pro c love ka pr irozene jší Dnes se již jedná o standard ve sve te filmu, her Samotný výpoc et osve tlení se pr itom zásadne neliší od dosud probraného Mapu prostr edí mu žeme chápat jako funkci sme ru na sfér e L(ω) vracející hodnotu radiance emitovanou prostr edím ve sme ru ω OdraženáR radiance v bode x ve sme ru ωo je stále integrál Lr (x, ωo ) = H(x) Le (r(x, ωi ), ωi ) fr (x, ωi, ωo ) cos θi dωi s tím rozdílem, že pr íspe vky paprsku, které minuly objekty scény, nejsou nulové, nýbrž se použije L(ωi ) Tzn jsme ope t u integrálu pr es hemisféru, který budeme odhadovat metodou MC, což ope t povede na dve vzorkovací techniky a jejich kombinaci pomocí MIS Jednou z technik je známé vzorkování BRDF, kdy generujeme paprsky podle BRDF, pr ic emž pokud nezasáhnou žádný objekt, použije se intenzita definovaná mapou prostr edí Jak vidíme na obrázku 8a, výsledky jsou ope t dobré u lesklého povrchu, zatímco pr i vzorkování konstantní BRDF difúzního povrchu se paprsky špatne trefují do jasných míst mapy a vzniká šum Druhou technikou je analogie k vzorkování sve tla a sice vzorkování mapy prostr edí Místo bodu na zdroji generujeme pixely mapy a to s pravde podobností úme rnou jejich intenzite Pr esne ji intenzita mapy prostr edí definuje hustotu na jednotkové kouli Tu pro úc ely vzorkování aproximujeme jako D diskrétní distribuci nad pixely mapy Pravde podobnost výbe ru pixelu je pak dána souc inem jeho intenzity a jeho velikosti na jednotkové kouli (závisí na mapování) eboli jasne jší místa mapy (oblohu, sve tla, ) vzorkujeme s ve tší pravde podobností (detaily viz [Pharr and Humphreys 010]) Obrázek 8b ukazuje, že stejne jako vzorkování sve tla tato technika dobr e funguje pro difúzní povrchy, ale selhává u lesklých, kde paprsky odpovídající vygenerovaným bodu m c asto míjí úzký lalok BRDF R ešením je MIS, výsledek vidíme na obrázku 8c (a) Vzorkování BRDF, 600 vzorku Obrázek 6: Ukázka ru zných zpu sobu mapování 3D sme ru do D sour adnic mapy prostr edí Vlevo kruhová mapa, jejíž str ed odpovídá sme ru pr ímo vpr ed, obvod odpovídá sme ru pr ímo vzad a vodorovná linie procházející str edem lineárne mapuje azimut na pixely Uprostr ed rozložení koule do roviny (shora dolu polární úhel, vodorovne azimut) Podobne jako kouli lze i krychli chápat jako množinu sme ru z jejího str edu, rozložením jejího plášte do roviny vznikne mapa vpravo (Autor: Paul Debevec) (b) Vzorkování mapy prostr edí, 600 vzorku (c) MIS, 300 vzorku BRDF + 300 vzorku mapy prostr edí Obrázek 7: Srovnání osve tlení identické scény jedním bodovým zdrojem (vlevo) a mapou prostr edí z obrázku 6 (vpravo) (Autor: Paul Debevec) Obrázek 8: Srovnání vzorkovacích technik a levém obrázku vždy ideálne difúzní povrch, na pravém dokonalé zrcadlo (Autor: Paul Debevec)

A Příklad: Importance sampling Phongovy BRDF Připomeňme fyzikálně věrohodnou Phongovu BRDF: kde: fr Phong (ω i ω o) = ρ d π + n + π ρs cosn θ r, cos θ r = ω o ω r ω r = (ω i n)n ω i ρ d + ρ s 1 echt paprsek dopadne na plochu s Phongovou BRDF Jak vygenerovat sekundární paprsek pro vzorkování nepřímého osvětlení? V path traceru je vrhán vždy nejvýše jeden sekundární paprsek, musíme si tedy zvolit, jakou komponentu BRDF budeme vzorkovat, tj zvolit druh interakce (difúzní/lesklý odraz) Kód realizující volbu interakce: pd = max ( rhod r, rhod g, rhod b ) ; ps = max ( rhos r, rhos g, rhos b ) ; pd /= ( pd + ps ) ; / / pravd výběru d i f ú z n í komponenty ps /= ( pd + ps ) ; / / pravd výběru l e s k l é komponenty Vec3 dir, f l o a t pdf, Col brdfval ; i f ( rand ( 0, 1 ) <= pd ) { dir, pdf, brdfval } = samplediffuse ( ) ; r e t u r n { d ir, pdf pd, brdfval } e l s e { dir, pdf, brdfval } = samplespecular ( ) ; r e t u r n { dir, pdf ps, brdfval } Pro vzorkování difúzního odrazu použijeme Importance sampling s hustotou p(θ) = cos(θ)/π, kde θ je úhel mezi normálou a vygenerovaným sekundárním paprskem Pro generování směrů podle této hustoty bychom v [Dutré 003] (odvození viz [Pharr and Humphreys 010]) nalezli následující vztahy využívající čísel r 1, r náhodně vygenerovaných z R(0, 1): Toto vzorkování provádí procedura samplespecular: / / z k o n s t r u u j l o k á l n í s o u ř a d n i c o v ý systém s R j a k o osou z Vec3 R = dot (, wi) wi ; / / směr ideálního odrazu Vec3 U = a r b i t r a r y o r m a l (R ) ; / / U j e kolmé na R Vec3 V = c r o s s P r o d (R, U ) ; / / o r t o n o r m á l n í báze s R a U / / g e n e r u j směr v l o k á l n í m souřadnicovém systému {Vec3 ldir, float pdf } = rndhemicos ( n ) ; / / použití vztahů popsaných výše / / t r a n s f o r m u j do g l o b á l n í h o s o u ř a d n i c o v é h o systému ( [U,V,R] >[X,Y, Z ] ) Vec3 g d i r = l d i r x U + l d i r y V + l d i r z R / / pokud j d e směr pod povrch ( pod t e č n o u r o v i n u ), z a m í t n i ( vrat nulovou barvu ) f l o a t c o s T h e t a I n = dot (, g d i r ) ; i f ( c o s T h e t a I n <= 0) r e t u r n { g d i r, pdf, Col ( 0 ) } ; / / s p o č í t e j l e s k l o u komponentu BRDF Col b r d f V a l = rhos ( n + ) / ( PI ) pow ( l d i r z, n ) ; / / l d i r z= c o s _ t h e t a _ r return { gdir, pdf, brdfval } Předchozí příklad vybíral komponentu podle odrazivosti Alternativní strategií je vybrat nejdříve směr podle každé BRDF komponenty a teprve následně podle pravděpodobnosti dané hodnotou BRDF komponenty ve vygenerovaném směru vybrat komponentu Tento přístup nepotřebuje odrazivost ρ komponenty, na druhou stranu může být pro mnoho BRDF komponent neefektivní Reference DUTRÉ, P, 003 Global illumination compendium http:// peoplecskuleuvenbe/~philipdutre/gi PHARR, M, AD HUMPHREYS, G 010 Physically Based Rendering: From Theory to Implementation, second ed Morgan Kaufmann ϕ = πr 1 u = cos(πr 1) 1 r θ = acos( r ) v = sin(πr 1) 1 r n = r Toto vzorkování provádí procedura samplediffuse: / / z k o n s t r u u j l o k á l n í s o u ř a d n i c o v ý systém s normálou j a k o osou z Vec3 U = a r b i t r a r y o r m a l ( ) ; / / U j e kolmé na Vec3 V = c r o s s P r o d (, U ) ; / / o r t o n o r m á l n í báze s a U / / g e n e r u j směr v l o k á l n í m souřadnicovém systému f l o a t r1 = r and ( 0, 1 ), r = rand ( 0, 1 ) ; f l o a t s i nt h et a = s q r t (1 r ) ; f l o a t costheta = s q r t ( r ) ; f l o a t phi = 0 PI r1 ; f l o a t pdf = cost heta / PI ; / / převed do kartézských souřadnic ( [ phi, theta] >[U,V,] ) Vec3 l d i r ( cos ( phi ) sintheta, sin ( phi ) sintheta, costheta ) ; U θ φ V / / t r a n s f o r m u j do g l o b á l n í h o s o u ř a d n i c o v é h o systému ( [U,V,] >[X,Y, Z ] ) Vec3 g d i r = l d i r x U + l d i r y V + l d i r z / / s p o č í t e j d i f ú z n í komponentu BRDF Col b r d f V a l = rhod / PI ; return { gdir, pdf, brdfval } Pro vzorkování difúzního odrazu použijeme Importance sampling s hustotou p(θ) = (n + 1)/(π) cos n (θ), kde θ je úhel mezi ideálně zrcadlově odraženým ω o a vygenerovaným sekundárním paprskem Pro generování směrů podle této hustoty bychom v [Dutré 003] nalezli následující vztahy využívající čísel r 1, r náhodně vygenerovaných z R(0, 1): ϕ = πr 1 u = cos(πr 1) θ = acos(r 1 ) v = sin(πr 1) r = r 1 1 r 1 r U R φ θ V