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

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

Počítačová grafika III Monte Carlo integrování II. 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 Monte Carlo rendering 2. Jaroslav Křivánek, MFF UK

Počítačová grafika III Multiple Importance Sampling. 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 Důležitost, BPT. Jaroslav Křivánek, MFF UK

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

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

Monte Carlo rendering

Fotonové mapy. Leonid Buneev

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

Distribuované sledování paprsku

Rekurzivní sledování paprsku

Odraz světla, BRDF. Petr Kadleček

Počítačová grafika III Úvod

Zobrazování a osvětlování

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

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

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

Počítačová grafika III Úvod

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

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

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}.

Pokročilé osvětlovací techniky Josef Pelikán, MFF UK Praha

Realistický rendering

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

Obraz matematický objekt. Spojitý obraz f c : (Ω c R 2 ) R

Počítačová grafika III Všehochuť. Jaroslav Křivánek, MFF UK

Zápočtová písemka z Matematiky III (BA04) skupina A

Fotorealistická syntéza obrazu Josef Pelikán, MFF UK Praha

Radiometrie, radiační metody

Deformace rastrových obrázků

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

Precomputed radiance transfer

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

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

n = 2 Sdružená distribuční funkce (joint d.f.) n. vektoru F (x, y) = P (X x, Y y)

Global illumination with many-light methods. Martin Kahoun (2011)

Fyzikálně založené modely osvětlení

Kombinatorická minimalizace

Počítačová grafika III Globální osvětlení ve filmové produkci. Jaroslav Křivánek, MFF UK

Vícerozměrná rozdělení

Pravděpodobnost, náhoda, kostky

Gymnázium, Brno, Slovanské nám. 7 WORKBOOK. Mathematics. Teacher: Student:

Monte Carlo metody Josef Pelikán CGG MFF UK Praha.

Využití hybridní metody vícekriteriálního rozhodování za nejistoty. Michal Koláček, Markéta Matulová

DIPLOMOVÁ PRÁCE. BRDF dílna

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

Zpracování náhodného vektoru. Ing. Michal Dorda, Ph.D.

Příklady ke čtvrtému testu - Pravděpodobnost

Téma 22. Ondřej Nývlt

1 Rozptyl a kovariance

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

Výpočet průsečíků paprsku se scénou

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

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

AVDAT Náhodný vektor, mnohorozměrné rozdělení

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

HDR obraz (High Dynamic Range)

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

Hough & Radon transform - cvičení

Reprezentace 3D modelu

Stavový model a Kalmanův filtr

Poznámky k předmětu Aplikovaná statistika, 4. téma

STANOVENÍ SPOLEHLIVOSTI GEOTECHNICKÝCH KONSTRUKCÍ. J. Pruška, T. Parák

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

Principy fotorealistického zobrazování

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

Výpočet průsečíků paprsku se scénou

Poznámky k předmětu Aplikovaná statistika, 4. téma

Moderní fotorealistický rendering

Anti-aliasing a vzorkovací metody

1. Přednáška. Ing. Miroslav Šulai, MBA

PB001: Úvod do informačních technologíı

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

Anti Aliasing. Ondřej Burkert. atrey.karlin.mff.cuni.cz/~ondra/ ~ondra/stranka

Náhodná veličina a rozdělení pravděpodobnosti

Střední hodnota a rozptyl náhodné. kvantilu. Ing. Michael Rost, Ph.D.

Transformace obrazu Josef Pelikán KSVI MFF UK Praha

Kapitola 8: Dvojný integrál 1/26

Reflections, refractions, interreflections

Zobrazování vektorových polí

Android OpenGL. Pokročilé shadery

Náhodný vektor a jeho charakteristiky

Josef Pelikán, 1 / 51

NÁHODNÝ VEKTOR. 4. cvičení

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é

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

Textury v real-time grafice Josef Pelikán, MFF UK Praha Josef.Pelikan@mff.cuni.cz

Fotorealistická grafika

Úvod do zpracování signálů

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

metodou Monte Carlo J. Matěna, Gymnázium Českolipská, Praha

ÚVOD DO PROBLEMATIKY PIV

Fyzikální korespondenční seminář MFF UK

Monochromatické zobrazování

Multimediální systémy. 11 3d grafika

Nalezněte hladiny následujících funkcí. Pro které hodnoty C R jsou hladiny neprázdné

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

Transkript:

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

Opakování

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 2012 3

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

Vyrovnaná heuristika (Balance heurist.) 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 2012 5

Výpočet přímého osvětlení pomocí MIS

Images: Alexander Wilkie Problém: Najde path tracer světlo? reference simple path tracer (150 cest na pixel) PG III (NPGR010) - J. Křivánek 2012 7

Přímé osvětlení Zapomeňme na chvíli na path tracing Řešíme jednodušší problém: přímé osvětlení z daného zdroje světla tj. odražená radiance z bodu x způsobená osvětlením ze zdroje světla PG III (NPGR010) - J. Křivánek 2012 8

Přímé osvětlení: Dva možné přístupy 1. Vzorkování BRDF 2. Vzorkování plochy světel PG III (NPGR010) - J. Křivánek 2012 9

Image: Alexander Wilkie Dvě vzorkovací techniky PG III (NPGR010) - J. Křivánek 2012 10

Přímé osvětlení: Vzorkování BRDF Formulace integrálu (integrování přes hemisféru nad x) MC estimátor Generujeme náhodný směr w i,k podle hustoty p Vrhneme paprsek z x ve směru w i,k Pokud protne nějaký zdroj světla, přičteme L e (.) f r (.) cos/pdf PG III (NPGR010) - J. Křivánek 2012 11 ) ( i i o i i i e o r d cos ), ( ) ),, (r( ), ( x x x x H f r L L w w w w w w N k,k,k,k r,k,k p f L N L 1 i i o i i i e o r ) ( cos ), ( ) ),, (r( 1 ), ( ˆ w w w w w w x x x

Přímé osvětlení: Vzorkování povrchu zdrojů světla Formulace integrálu (integrování přes plochu zdroje) MC estimátor Generujeme náhodnou pozici y k na zdroji Testujeme viditelnost mezi x a y Pokud V(x,y)=1, přičteme A L e (y) f r (.) cos/pdf PG III (NPGR010) - J. Křivánek 2012 12 A r A G V f L L y x y x y x y x y x d ) ( ) ( ) ( ) ( ), ( o e o r w w N k k k k r k G V f L N A L 1 o e o r ) ( ) ( ) ( ) ( ), ( ˆ x y x y x y x y x w w

Přímé osvětlení: Dva možné přístupy Vzorkování BRDF Výhodnější pro velké zdroje světla Pro malé zdroje světla je pravděpodobnost zásahu zdroje velmi malá -> vysoký rozptyl, šum Vzorkování světel Výhodnější pro malé zdroje Jediná možná alternativa pro bodové zdroje Pro velké zdroje mnoho vzorků mimo lalok BRDF -> vysoký rozptyl, šum PG III (NPGR010) - J. Křivánek 2012 13

Images: Eric Veach Přímé osvětlení: Dva možné přístupy Vzorkování BRDF Vzorkování světel PG III (NPGR010) - J. Křivánek 2012 14

Přímé osvětlení: Dva možné přístupy Kterou techniku zvolit? OBĚ Problém Obě techniky odhadují stejnou veličinu L r (x, w o ) Pouhým sečtením bychom dostali odhad 2 L r (x, w o ) - špatně Potřebuji vážený průměr příspěvků obou technik Jak zvolit váhy? PG III (NPGR010) - J. Křivánek 2012 15

Image: Eric Veach Jak zvolit váhy? Multiple importance sampling (Veach & Guibas, 95) Váhy závislé na pdf vzorků Minimalizuje rozptyl kombinovaného estimátoru Téměř optimální řešení PG III (NPGR010) - J. Křivánek 2012 16

Image: Alexander Wilkie Výpočet přímého osvětlení pomocí MIS Vzorkovací technika (pdf) p 1 : Vzorkování BRDF Vzorkovací technika (pdf) p 2 : Vzorkování plochy světla PG III (NPGR010) - J. Křivánek 2012 17

Image: Alexander Wilkie Kombinace Aritmetický průměr Zachovává špatné vlastnosti obou technik Vyrovnaná heuristika Bingo!!! PG III (NPGR010) - J. Křivánek 2012 18

Image: Alexander Wilkie Dvě vzorkovací techniky w1 * A1 w2 * A2 PG III (NPGR010) - J. Křivánek 2012 19

Výpočet vah Váha vzorku z BRDF vzorkování w 1 ( w j ) p 1 p 1 w j w p w j 2 j Hustota pravděpodobnosti vzorkování z BRDF Hustota, s jakou by byl směr w j vygenerován, kdybychom byli použili vzorkování plochy zdroje PG III (NPGR010) - J. Křivánek 2012 20

Hustoty pravděpodobnosti Vzorkování BRDF: p 1 (w) Závisí na BRDF, např. pro Lambertovskou BRDF p 1 ( w) cos x Vzorkování plochy zdroje: p 2 (w) p 2 ( w) 1 A x y cos y 2 Převedení hustoty 1/ A z plošné míry (da) do míry prostorového úhlu (dw) PG III (NPGR010) - J. Křivánek 2012 21

Image: Alexander Wilkie Příspěvky vzorkovacích technik w1 * vzorkování BRDF w2 * vzorkování zdroje PG III (NPGR010) - J. Křivánek 2012 22

Výpočet přímého osvětlení pomocí MIS v path traceru

Použití MIS v path traceru Pro každý vrchol cesty generované z kamery: Generování explicitního stínového paprsku pro techniku p 2 (vzorkování plochy zdroje) Sekundární paprsek pro techniku p 1 (vzorkování zdroje) Sdílený pro výpočet přímého i nepřímého osvětlení Pouze na přímé osvětlení se aplikuje MIS váha (nepřímé osvětlení se připočte celé) Při výpočtu MIS vah je potřeba vzít v úvahu pravděpodobnost ukončení cesty (ruská ruleta) PG III (NPGR010) - J. Křivánek 2012 24

Více zdrojů světla Možnost 1: Stínový paprsek pro náhodný bod na každém zdroji světla Možnost 2 (často lepší): Náhodný výběr zdroje (s p-ností podle výkonu) Stínový paprsek k náhodně vybranému bodu na vybraném zdroji Pozor: Pravděpodobnost výběru zdroje ovlivňuje hustoty (a tedy i váhy) v MIS PG III (NPGR010) - J. Křivánek 2012 25

Generování vzorků z distribuce

1D diskrétní náhodná veličina Dána p-nostní fce p(i), distribuční fce P(i) Postup 1. Vygeneruj u z R(0,1) 2. Vyber x i pro které P( i 1) u P( i) (definujeme P(0) = 0) 1 u Distribuční funkce x 1 x x 2 3 x4 Nalezení i se provádí půlením intervalu PG III (NPGR010) - J. Křivánek 2012 27

2D diskrétní náhodná veličina Dána p-nostní fce p I,J (i, j) Možnost 1: Interpretovat jako 1D vektor pravděpodobností Vzorkovat jako 1D distribuci PG III (NPGR010) - J. Křivánek 2012 28

2D diskrétní náhodná veličina Možnost 2 (lepší) 1. Řádek i sel vybrat podle marginálního rozdělení, popsaného 1D p-nostní fcí p I ( i) n j j1 p I, J ( i, j) 2. Sloupec j sel vybrat podle podmíněného rozdělení příslušejícího vybranému řádku i sel p J I ( j I i sel ) p I, J p I ( i ( i sel sel, ) j) PG III (NPGR010) - J. Křivánek 2012 29

Vzorkování 1D spojité náhodné veličiny Transformací rovnoměrné náhodné veličiny Zamítací metoda (rejection sampling) PG III (NPGR010) - J. Křivánek 2012 30

Vzorkování 1D spojité náhodné veličiny transformací Je-li U je náhodná veličina s rozdělením R(0,1), pak náhodná veličina X má rozdělení popsané distribuční funkcí P. X P 1 ( U) Pro generování vzorků podle hustoty p potřebujeme Spočítat cdf P(x) z pdf p(x) Spočítat inverzní funkci P -1 (x) PG III (NPGR010) - J. Křivánek 2012 31

Kombinace vzorkování po částech s transformační metodou PG III (NPGR010) - J. Křivánek 2012 32

Vzorkování 1D spojité náhodné veličiny zamítací metodou Algoritmus Vyber náhodné u 1 z R(a, b) Vyber náhodné a u 2 z R(0, MAX) Přijmi vzorek, pokud p(u 1 ) > u 2 MAX p(x) Přijaté vzorky mají rozložení dané hustotou p(x) Účinnost = % přijatých vzorků 0 a Plocha funkce pod křivkou / plocha obdélníka Transformační metoda vždy efektivnější (ale vyžaduje integrovat hustotu a invertovat distribuční fci) b PG III (NPGR010) - J. Křivánek 2012 33

Vzorkování 2D spojité náhodné veličiny Jako pro 2D diskrétní veličinu Dána sdružená hustota p X,Y (x, y) = p X (x) p Y X (y x) Postup 1. Vyber x sel z marginální hustoty p X ( x) px, 2. Vyber y sel z podmíněné hustoty p Y X ( y X x sel Y ) ( x, p y) X, Y p X dy ( x ( x sel sel, y) ) PG III (NPGR010) - J. Křivánek 2012 34

Transformační vzorce P. Dutré: Global Illumination Compendium, http://people.cs.kuleuven.be/~philip.dutre/gi/ PG III (NPGR010) - J. Křivánek 2012 35

Importance sampling Phongovy BRDF Paprsek dopadne na plochu s Phongovou BRDF. Jak vygenerovat sekundární paprsek pro vzorkování nepřímého osvětlení? Path tracing Pouze 1 sekundární paprsek je třeba zvolit komponentu BRDF (druh interakce) Postup: 1. Vyber komponentu BRDF (difúzní odraz / lesklý odraz / lom) 2. Vzorkuj vybranou komponentu PG III (NPGR010) - J. Křivánek 2012 36

Fyzikálně věrohodná Phongova BRDF Kde: f n 2 2 Phong d n r ( wi wo) s cos r cos w w w r r i o 2( w n) n w r i Zachování energie: d s 1 PG III (NPGR010) - J. Křivánek 2012 37

Výběr interakce pd = max(rhod.r, rhod.g, rhod.b); ps = max(rhos.r, rhos.g, rhos.b); pd /= (pd + ps); // pravd. výběru difúzní komponenty ps /= (pd + ps); // pravd. výběru lesklé komponenty Vec3 dir, float pdf, Col brdfval; if (rand(0,1) <= pd) {dir, pdf, brdfval} = samplediffuse(); return {dir, pdf * pd, brdfval} else {dir, pdf, brdfval} = samplespecular(); return {dir, pdf * ps, brdfval} PG III (NPGR010) - J. Křivánek 2012 38

Vzorkování difúzního odrazu Importance sampling s hustotou p() = cos() / úhel mezi normálou a vygenerovaným sekundárním paprskem Generování směru: r1, r2 uniformní na <0,1> Zdroj: Dutre, Global illumination Compendium (on-line) Odvození: Pharr & Huphreys, PBRT PG III (NPGR010) - J. Křivánek 2012 39

samplediffuse() // build a local coordinate frame with N = z-axis Vec3 U = arbitrarynormal(n); // U is perpendicular to the normal N Vec3 V = crossprod(n, U); // orthonormal basis with N and U // generate direction in the local coordinate frame float r1 = rand(0,1), r2 = rand(0,1); float sintheta = sqrt(1 r2); float costheta = sqrt(r2); float phi = 2.0*PI*r1; float pdf = costheta/pi; // convert [theta, phi] to Cartesian coordinates Vec3 locdir (cos(phi)*sintheta, sin(phi)*sintheta, costheta); // transform ldir to the global coordinate frame Vec3 globdir = locdir.x * U + locdir.y * V + locdir.z * N // evaluate BRDF component Col brdfval = rhod / PI; return {globdir, pdf, brdfval} PG III (NPGR010) - J. Křivánek 2012 40

Vzorkování lesklého odrazu Importance sampling s hustotou p() = (n+1)/(2) cos n () úhel mezi ideálně zrcadlově odraženým w o a vygenerovaným sekundárním paprskem Generování směru: r1, r2 uniformní na <0,1> PG III (NPGR010) - J. Křivánek 2012 41

samplespecular() // build a local coordinate frame with R = z-axis Vec3 R = 2*dot(N,wi)*N wi; // ideal reflected direction Vec3 U = arbitrarynormal(r); // U is perpendicular to R Vec3 V = crossprod(r, U); // orthonormal basis with R and U // generate direction in local coordinate frame {Vec3 locdir, float pdf} = rndhemicosn (n); // formulas form prev. slide // transform locdir to global coordinate frame Vec3 globdir = locdir.x * U + locdir.y * V + locdir.z * R // return zero BRDF value if the generated direction is under the tangent plane float costhetain = dot(n, globdir); if(costhetain <= 0) return {globdir, pdf, Col(0)}; // evaluate the BRDF component Col brdfval = rhos * (n+2)/(pi*2) * pow(locdir.z, n);//ldir.z = costhetar return {globdir, pdf, brdfval} PG III (NPGR010) - J. Křivánek 2012 42

Alternativní strategie pro výběr komponenty BRDF Předchozí příklad vybere komponentu podle odrazivosti Druhá možnost (embree) 1. Vyber směr podle každé BRDF komponenty 2. Vyber komponentu s p-ností danou hodnotou BRDF komponenty ve vygenerovaném směru Nepotřebuje odrazivosti komponenty Může být neefektivní pro mnoho BRDF komponent PG III (NPGR010) - J. Křivánek 2012 43

Image-based lighting

Image-based lighting Introduced by Paul Debevec (Siggraph 98) Routinely used for special effects in films & games 45

Image-based lighting Illuminating CG objects using measurements of real light (=light probes) Paul Debevec 46

Point Light Source Paul Debevec 47

Paul Debevec 48

Paul Debevec 49

Paul Debevec 50

Paul Debevec 51

Mapping 52

Mapping 53

Mapping Mapping from direction in Cartesian coordinates to image UV. float d = sqrt(dir.x*dir.x + dir.y*dir.y); float r = d>0? 0.159154943*acos(dir.z)/d : 0.0; u = 0.5 + dir.x * r; v = 0.5 + dir.y * r; Quote from http://ict.debevec.org/~debevec/probes/ The following light probe images were created by taking two pictures of a mirrored ball at ninety degrees of separation and assembling the two radiance maps into this registered dataset. The coordinate mapping of these images is such that the center of the image is straight forward, the circumference of the image is straight backwards, and the horizontal line through the center linearly maps azimuthal angle to pixel coordinate. Thus, if we consider the images to be normalized to have coordinates u=[-1,1], v=[-1,1], we have theta=atan2(v,u), phi=pi*sqrt(u*u+v*v). The unit vector pointing in the corresponding direction is obtained by rotating (0,0,-1) by phi degrees around the y (up) axis and then theta degrees around the -z (forward) axis. If for a direction vector in the world (Dx, Dy, Dz), the corresponding (u,v) coordinate in the light probe image is (Dx*r,Dy*r) where r=(1/pi)*acos(dz)/sqrt(dx^2 + Dy^2). 54

Sampling strategies Technique (pdf) 1: BRDF importance sampling Generate directions with a pdf proportional to the BRDF Technique (pdf) 2: Environment map importance sampling Generate directions with a pdf proportional to L(w) represented by the EM 55

Sampling strategies 56

Vzorkování směrů podle mapy prostředí Intenzita mapy prostředí definuje hustotu (pdf) na jednotkové kouli Pro účely vzorkování ji aproximujeme jako 2D diskrétní distribuci nad pixely mapy Pravděpodobnost výběru pixelu je dána součinem Intenzity pixelu Velikostí pixelu na jednotkové kouli (závisí na mapování) Detaily viz. Writeup / PBRT PG III (NPGR010) - J. Křivánek 2012 57