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

Podobné dokumenty
Počítačová grafika III Monte Carlo integrování II. 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

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 Multiple Importance Sampling. Jaroslav Křivánek, MFF UK

Zobrazování a osvětlování

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

Fotonové mapy. Leonid Buneev

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

Odraz světla, BRDF. Petr Kadleček

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

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

Realistický rendering

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

Distribuované sledování paprsku

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

Počítačová grafika III Úvod

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

Počítačová grafika III Úvod

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

Rekurzivní sledování paprsku

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

Monte Carlo rendering

Radiometrie, radiační metody

Fotorealistická grafika

Principy fotorealistického zobrazování

Fotorealistická syntéza obrazu

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

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

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

Počítačová grafika Radiozita

Moderní fotorealistický rendering

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

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

Pokročilé metody fotorealistického zobrazování

DIPLOMOVÁ PRÁCE. BRDF dílna

Základní raytracing Detaily implementace Distribuovaný raytracing Další globální zobrazovací metody Galerie Literatura. Raytracing

Precomputed radiance transfer

Téma 4: Stratifikované a pokročilé simulační metody

Progressive photon mapping na GPU

Globální osvětlení v real-time 3D grafice. Bc. Jaroslav Meloun

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

CGI. Computer generated imagery Počítačové triky Animované filmy Počítačové hry. Technologické trendy v AV tvorbě, CGI 2

FOTOREALISTICKÉ ZOBRAZOVÁNÍ

B4M39RSO * Úvod do globálního osvětlení * Radiometrie * Světelné zdroje. Vlastimil Havran ČVUT v Praze

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

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

Automatické generování pozic optického skeneru pro digitalizaci plechových dílů.

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

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

STŘEDOŠKOLSKÁ ODBORNÁ ČINNOST

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

2 (3) kde S je plocha zdroje. Protože jas zdroje není závislý na směru, lze vztah (5) přepsat do tvaru:

Počítačová grafika III Světlo, Radiometrie. Jaroslav Křivánek, MFF UK

Počítačová grafika III (NPGR010) 3. přednáška: Odraz světla, BRDF

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

Surfels: Surface Elements as Rendering Primitives

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

Reflections, refractions, interreflections

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Analytický model pro rozptyl světla v mlze. Jan Ondřej

Monte Carlo. Simulační metoda založená na užití stochastických procesů a generace náhodných čísel.

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Zobrazování 3D scény metodou raytracingu Pavel Lokvenc

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Markov Chain Monte Carlo. Jan Kracík.

Přímé zobrazování objemových dat DVR

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

RAYTRACING. Ondra Karlík (Keymaster)

Základní techniky zobrazování Josef Pelikán, MFF UK Praha

ZPRACOVÁNÍ OBRAZU přednáška 3

ZOBRAZOVÁNÍ ZRCADLY. Mgr. Jan Ptáčník - GJVJ - Septima - Optika

Programování shaderů GLSL

Osvětlovací modely v počítačové grafice

Zobrazování barev Josef Pelikán CGG MFF UK Praha.

Josef Pelikán, 1 / 51

Náhodné rozmisťování bodů v rovině

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

Číslicové filtry. Honza Černocký, ÚPGM

Stojaté a částečně stojaté vlny

Animace a geoprostor. První etapa: Animace 3. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně

Vlastnosti a modelování aditivního

7. OSVĚTLENÍ. Cíl Po prostudování této kapitoly budete znát. Výklad. 7. Osvětlení

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Příklady použití tenkých vrstev Jaromír Křepelka

Jiří Cajthaml. ČVUT v Praze, katedra geomatiky. zimní semestr 2014/2015

Reprezentace 3D modelu

Optické měřicí 3D metody

Úvod do mobilní robotiky NAIL028

Martin Růžička. Návrh a vyhodnocení uživatelského rozhraní pro osvětlování filmových scén

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Analýza spolehlivosti tlakové nádoby metodou Monte Carlo

Kombinatorická minimalizace

Anti-aliasing a vzorkovací metody

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Výpočet vržených stínů

Úvod do mobilní robotiky AIL028

Počítačová grafika 2 (POGR2)

Řešení: Nejdříve musíme určit sílu, kterou působí kladka proti směru pohybu padajícího vědra a napíná tak lano. Moment síly otáčení kladky je:

PROLUMIA LED TUNNELLIGHT SERIE. LED Tunnellight 50W, včetně LED driveru

Transkript:

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

Rendering = integrování Antialiasing Integrál přes plochu pixelu Osvětlení plošným zdrojem Integrál přes plochu světla Nepřímé osvětlení na plochách Integrál přes hemisféru příchozích směrů Hloubka ostrosti Integrál přes čočku konečné velikosti Rozostření pohybem Integrál přes čas otevření uzávěrky 2

Rendering = integrování Všechny uvedené problémy lze řešit podobným algoritmem 1. Vrhni mnoho náhodných paprsků 2. Zprůměruj výsledek Paprsky jsou vzorky jde o aplikaci MC integrování Poprvé v grafice: Cook 1984: Distributed ray tracing Česky Trasování (sledování) rozprostřených paprsků Také Stochastic ray tracing Později Path Tracing (1986), jeden paprsek po odrazu 3

Antialiasing = integrování Průměrná radiance přes plochu pixelu tj. integrál radiance přes plochu pixelu dělený plochou pixelu Implementace MC integrováním: for k = 1 to N do vyber náhodně pozici (x k,y k ) uvnitř pixelu vrhni primární paprsek skrz (x k,y k ) a spočti zář L(x k,y k ) C += A * L(x k,y k ) * w(x k,y k ) /* A je zde kvůli normalizaci */ C /= N * A C je výsledná barva pixelu A je plocha pixelu (lze ji vykrátit z algoritmu zmizí) w je pre-filtr Často w=1, tzv. box filtr Lepší výsledky dává např. filtr ve tvaru Gaussiánu Kvalitní filtry jsou větší než 1 pixel vzorek z jednoho pixelu přispívá i k sousedním pixelům složitější algoritmus 4

Antialiasing = integrování Snížení variance aplikace MC techniky výběr na podintervalech (stratified sampling) v kontextu vzorkování roviny obrazu též nazýváno jittering 5

Plošné zdroje světla = integrování Osvětlení plošným zdrojem světla Integrál přes plochu světla Úloha se převádí na MC integrování: Rozmísti body po povrchu světla Spočti viditelnost a vzdálenost k bodu osvětlení Spoči průměr hodnot záře (angl. radiance) Snížení variance výběr na podintervalech (stratified sampling) na povrchu světla Pozor! Pro každý osvětlovaný pixel vyberu na světelném zdroji jiné náhodné vzorky, jinak vzniká systematická a viditelná nízkofrekvenční chyba! 6

Plošné zdroje světla = integrování 7

Plošné zdroje světla = integrování 1 vzorek na pixel 9 vzorků na pixel 36 vzorků na pixel 8

Výpočet form faktorů pro radiozitu = integrování Form faktor kolik procent energie vyzářené z plochy A i dopadne na A j Analytický tvar F 1 cosθxcosθy ij = V( x, y dajdai A r ) 2 π i A A i j Implementace MC integrováním: for k = 1 to N do Vyber náhodný bod x k na A i a bod y k na A j Spočti viditelnost V(x k,,y k ) /* vržení stínového paprsku */ if (V(x k,,y k )==1) F ij += A i A j cos q x cos q y / p r 2 /* násobení A i A j kvůli * F ij /= N * A i /* normalizaci */ 9

Rovnice odrazu = integrování Kolik světla je odraženo do směru ω o, je-li bod x osvětlen ze všech příchozích směrů? Integrál přes všechny příchozí směry: Implementace MC integrováním outgoing_radiance(x, n, wo) { } Color Lo=(0,0,0); for i=1 to N { } L o ( x, ω ) x vygeneruj náhodný směr na hemisféře s p(wi) Lo += trace_ray(x,wi)*brdf(wo,x,wi)*dot(n,wi)/p(wi) return Lo / N; o = Li( x, ωi) fr( ωi,, ωo) cosθid i Ω rekurze ω 10

Rovnice odrazu = integrování Snížení variance Výběr na podintervalech (stratified sampling) rozdělení hemisféry na buňky, v každé buňce jeden paprsek Podstatný výběr (importance sampling) hodně paprsků ve směru laloku BRDF tj. hustota pravděpodobnosti pro vzorkování = normalizovaná BRDF dělení hustotou často vykrátí BRDF ve vnitřním cyklu Bude popsáno detailně pro Phongovu BRDF 11

Path tracing Rekurze obrovské množství paprsků na hlubších úrovních Neefektivní Path tracing česky Trasování cest, anglický název je obvyklejší. vždy vybere pouze jeden sekundární paprsek nejdříve se vybere způsob interakce (ideální lom, ideální odraz, difúzní odraz, ) pak se použije importance sampling podle vybrané interakce přímé osvětlení vyber náhodně jeden vzorek na jednom zdroji světla pro každý odraz. Pokud odražený paprsek zasáhne zdroj světla, příspěvek emitovaný ze světla se nezapočítá. 12

Path tracing světelný zdroj Primární či Sekundární paprsek normála povrchu stínový paprsek Odražený paprsek 13

Path tracing Trasuj tisíce cest přes každý pixel a zprůměruj výsledek Výhoda: žádná exploze počtu paprsků kvůli rekurzi Používá se jako referenční algoritmus pro jiné trvá dlouho, ale je jednoduchý na implementaci a poskytuje korektní výsledek s větším nebo menším šumem. Pro obrázek bez viditelného šumu není neobvyklé, že pro pixely je nutné vrhnout 10 5 až 10 6 cest. GPU implementace existují, například článek: Path Regeneration for Interactive Path Tracing, 2010/2011, Novák, Havran, Dachsbacher. http://dcgi.felk.cvut.cz/home/havran/articles/eg2010_ pt.pdf + implementace diplomové práce pana Nováka. 14

Path Tracing 0,2 sekundy + filtrování (levá strana)

Path Tracing - 1 sekund na GPU.

Path Tracing - 10 sekund na GPU.

Importance sampling Phongovy BRDF 18

Importance sampling Phongovy BRDF Paprsek dopadne na plochu s Phongovou BRDF. Jak vygenerovat sekundární paprsek pro nepřímého osvětlení? Klasický ray tracing 1 paprsek pro ideální zrcadlový odraz 1 paprsek pro ideální zrcadlový lom Path tracing Bere v úvahu nejenom ideální zrcadlový odraz/lom Vrhá pouze 1 sekundární paprsek je třeba zvolit interakci Algoritmus: 1. vyber interakci (absorbce / difůzní odraz / lesklý odraz / lom) 2. pokud nevybrána absorbce, vzorkuj vybranou interakci 19

Fyzikálně věrohodná Phongova BRDF Kde: f r ( ω, x, ω ) = r i cosθ = ω ω ω r o i o ρd n+ 2 + π 2π = 2( ω n)n ω r i ρ cos s n θ r Zachování energie: ρ d + ρ s 1 Funkce důležitosti je BRDF * cos(θ) 20

Výběr interakce pd = max(rho_d.r, rho_d.g, rho_d.b); // probability of d ps = max(rho_s.r, rho_s.g, rho_s.b); // probability of s xi = rand(0,max(1,pd+ps)); // in case pd+ps>1 if (xi < rd) L += 1/pd * SampleDiffuse(); // 1/rd = 1/prob else if (xi < rd+rs) L += 1/ps * SampleSpecular(); // 1/rs = 1/prob // else L += 0; (russian roulette - absorption) 21

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, Physically Based Rendering Toolkit. A taky: Eric Lafortune and Y.D.Willems: Using the Modified Phong BRDF for Physically Based Rendering, report 1994 22

SampleDiffuse() // build the local coordinate frame with N = z-axis Vector3D U = ArbitraryNormal(N);// U is perpendicular to the normal N Vector3D V = CrossProd(N,U); // orthonormal base with N and U // generate direction in the local coordinate frame float r1 = rand(0,1), r2 = rand(0,1); float sin_theta = sqrt(1 r1); float cos_theta = sqrt(r1); float phi = 2.0*M_PI*r2; float prob = cos_theta/m_pi; Vector3D dir (cos(phi)*sin_theta, sin(phi)*sin_theta, cos_theta); // transform to global coord frame Vector3D gdir = dir.x * U + dir.y * V + dir.z * Z // trace ray Color Li = TraceRay(x,gdir); return Li * rho_d / prob; // importance sampling -> division by prob 23

Vzorkování lesklého odrazu Importance sampling s hustotou p(θ) = (n+1)/(2π) cos n (θ) θ úhel mezi ideálně zrcadlově odraženým ω o a vygenerovaným sekundárním paprskem Generování směru: r1, r2 uniformní na <0,1> 24

SampleSpecular() // build the local coordinate frame with R = z-axis Vector3D R = 2*dot(N,wi)*N wi; // ideal reflected dir Vector3D U = ArbitraryNormal(R); // U is perpendicular to R Vector3D V = CrossProd(R,U); // orthonormal base with R and U // generate direction float prob = hemisph_cosn(dir, n); // formulas form prev slide Vector3D gdir = dir.x * U + dir.y * V + dir.z * Z // reject if under the horizon float cos_theta_i = dot(n, gdir); if(cos_theta_i<=0) return Color(0,0,0); // trace ray Color Li = TraceRay(x,gdir); // evaluate the BRDF Color fr = rho_s * (n+2)/(m_pi*2) * pow(dir.z, n); //dir.z=cos_theta_r return Li * fr * cos_theta_i / prob; // see the reflection equation 25

Bidirectional path tracing 2 varianty metody 1) Eric Lafortune and Y.D. Willems: Bidirectional Path Tracing, 1993 2) Eric Veach and L.J. Guibas: Bidirectional Estimators for Light Transport, 1994 26

Bi-directional path tracing Neboli backward ray tracing 27

Bi-directional path tracing 28

Bi-directional path tracing 29

Comparison Bidirectional path tracing Path tracing From Veach and Guibas, 1995 30

Path Pyramid k=3 ( l= 2, e= 1) k=4 k=5 k=6 ( l= 5, e= 1) l From Veach and Guibas e 31