Top Banner
Počítačová grafika III – Path tracing Jaroslav Křivánek, MFF UK [email protected]
36

Počítačová grafika III – Path tracing

Jan 02, 2016

Download

Documents

conan-mcfarland

Počítačová grafika III – Path tracing. Jaroslav Křivánek, MFF UK [email protected]. Monte Carlo integrování. Obecný nástroj k numerickému odhadu určitých integrálů. Integrál :. f ( x ). Monte Carlo odhad I :. p ( x ). 0.  5.  3.  1.  4.  2.  6. 1. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Počítačová grafika III – Path tracing

Počítačová grafika III –Path tracing

Jaroslav Křivánek, MFF [email protected]

Page 2: Počítačová grafika III – Path tracing

Monte Carlo integrování

Obecný nástroj k numerickému odhadu určitých integrálů

1

f(x)

0 1

p(x)

23 45 6

xx d)(fI

)(;)(

)(1

1

xpp

f

NI i

N

i i

i

Integrál:

Monte Carlo odhad I:

„V průměru“ to funguje:

IIE ][PG III (NPGR010) - J. Křivánek 2012 2

Page 3: Počítačová grafika III – Path tracing

Příklady MC estimátorů

Page 4: Počítačová grafika III – Path tracing

Odhad irradiance – uniformní vzork.

Uniformní vzorkování:

Estimátor:

PG III (NPGR010) - J. Křivánek 2012 4

)(

iiii dcos),()(x

xxH

LE

2

1)( p

N

k,kk

N

k k

kN

LN

p

f

NF

1ii,i

1 i,

i,

cos),(2

1

x

Page 5: Počítačová grafika III – Path tracing

Odhad irradiance – cos vzorkování

Importance sampling:

Estimátor:

PG III (NPGR010) - J. Křivánek 2012 5

)(

iiii dcos),()(x

xxH

LE

cos

)( p

N

k,k

N

k ,k

,kN

LN

p

f

NF

1ii

1 i

i

),(

1

x

Page 6: Počítačová grafika III – Path tracing

PG III (NPGR010) - J. Křivánek 2012 6

Page 7: Počítačová grafika III – Path tracing

Odhad irradiance – vzrokování zdroje

PG III (NPGR010) - J. Křivánek 2012 7

Page 8: Počítačová grafika III – Path tracing

Odhad irradiance – vzrokování zdroje

Uniformní vzorkování plochy zdroje:

Estimátor

PG III (NPGR010) - J. Křivánek 2012 8

A

H

AVL

LE

dcoscos

)()(

dcos),()(

2e

)(

iiii

xyxyxy

xx

xy

x

)( xyG

Ap

1)( y

N

kkkkN GVL

N

AF

1e )()()( xyxyxy

Page 9: Počítačová grafika III – Path tracing

PG III (NPGR010) - J. Křivánek 2012 9

Page 10: Počítačová grafika III – Path tracing

PG III (NPGR010) - J. Křivánek 2012 10

Page 11: Počítačová grafika III – Path tracing

Plošné zdroje světla

1 vzorek na pixel 9 vzorků na pixel 36 vzorků na pixel

PG III (NPGR010) - J. Křivánek 2012 11

Page 12: Počítačová grafika III – Path tracing

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

A

r AGVfLL d)()()()(),( oeoo xyxyxyxyx

N

kkkkrkN GVfL

N

AF

1oe )()()()( xyxyxyxy

Page 13: Počítačová grafika III – Path tracing

Nepřímé osvětlení na ploše s obecnou BRDF

Odhadovaný integrál

Estimátor pro vzorkování směrů s obecnou pdf p(w)

PG III (NPGR010) - J. Křivánek 2012 13

)(

iioiiiroindo dcos),()),,(r(),(

x

xxxH

rfLL

N

k ,k

,k,kr,k,k

p

fL

NL

1 i

ioiiiro

indo )(

cos),()),,(r(1),(

xx

x

PDF úměrná nebo velmi podobná BRDF

Page 14: Počítačová grafika III – Path tracing

Distribution Ray TracingPath tracing

Page 15: Počítačová grafika III – 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ý pixelpixelCol += getLi(camPos,wk)

}return Lo / N

}

}

PG III (NPGR010) - J. Křivánek 2012 15

Page 16: Počítačová grafika III – Path tracing

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

2012 16

Page 17: Počítačová grafika III – Path tracing

Distribution Ray Tracing

Ad hoc ukončení rekurze1. maximální povolená hloubka2. 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 2012 17

Page 18: Počítačová grafika III – Path tracing

Sledování cest (Path tracing, Kajiya86)

Pouze jeden sekundární paprsek1. 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 2012 18

Page 19: Počítačová grafika III – Path tracing

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.posw := wi

else // absorb break;

}return accum;

}

PG III (NPGR010) - J. Křivánek 2012 19

Page 20: Počítačová grafika III – Path tracing

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

jinak0

pokud/ qqYZ

][1

10

][][ YE

qq

q

YEZE

Page 21: Počítačová grafika III – Path tracing

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.posw := wi

else // absorb break;

}return accum;

}

PG III (NPGR010) - J. Křivánek 2012 21

Page 22: Počítačová grafika III – Path tracing

Obyčejně vzorkujeme s hustotou „co nejpodobnější“ součinu

fr(wi, wo) cos qi

Ideálně bychom chtěli vzorkovat podle

Li(wi) fr(wi, wo) cos qi,

ale to neumíme, protože neznáme Li

Co když bude hustota přesně úměrná fr(wi, wo) cos qi ?

PG III (NPGR010) - J. Křivánek 2012 22

Výběr náhodného směru – Importance

Sampling

Page 23: Počítačová grafika III – Path tracing

„Ideální“ BRDF Importance Sampling

Normalizace (integrál pdf musí být = 1)

PG III (NPGR010) - J. Křivánek 2012 23

)(

iioi

ioi

dcos)(

cos)(

xH

r

r

f

f

ioii cos)()( rfp

)( ip

odrazivost r

Page 24: Počítačová grafika III – Path tracing

„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 2012 24

irfp cos)()( oii

Page 25: Počítačová grafika III – Path tracing

Pravděpodobnost přežití cestygetLi(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.posw := wi

else // absorb break;

}return accum;

}

PG III (NPGR010) - J. Křivánek 2012 25

Page 26: Počítačová grafika III – Path tracing

Pravděpodobnost přežití cesty

Použití odrazivosti r 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 r ? Alternativa

1. Nejdříve vygeneruj náhodný směr podle p(wi)

2.

Pro „ideální“ BRDF IS stejné jako původní metodaPG III (NPGR010) - J. Křivánek

2012 26

)(

cos)(,1min

i

ioisurvival

p

fq r

Page 27: Počítačová grafika III – Path tracing

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

Page 28: Počítačová grafika III – Path tracing

Multiple Importance Sampling

f(x)

0 1

p1(x) p2(x)

PG III (NPGR010) - J. Křivánek 2012 28

(Veach & Guibas, 95)

Page 29: Počítačová grafika III – Path tracing

Multiple importance sampling

Máme dáno n vzorkovacích „technik“ (hustot pravděpodobnosti) p1(x), .. , pn(x)

Z každé techniky (hustoty) vybereme ni vzorků Xi,1, .. , Xi,ni

Kombinovaný estimátor

PG III (NPGR010) - J. Křivánek 2012 29

vzorkovací techniky

vzorky z jednotlivých technik

kombinační váhy (mohou být různé pro každý vzorek)

Page 30: Počítačová grafika III – Path tracing

Nestrannost kombinovaného odhadu

Podmínka pro váhové funkce

PG III (NPGR010) - J. Křivánek 2012 30

xfxxfxwFEn

ii d

1

n

ii xwx

1

1:

Page 31: Počítačová grafika III – Path tracing

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

n

xwi1

Page 32: Počítačová grafika III – Path tracing

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

Page 33: Počítačová grafika III – Path tracing

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

Page 34: Počítačová grafika III – Path tracing

Jeden člen kombinovaného odhadu

f(x)

0 1

p1(x) p2(x)

PG III (NPGR010) - J. Křivánek 2012 34

Page 35: Počítačová grafika III – Path tracing

Aritmetický průměr

0 1

xpxf

1

5.0

PG III (NPGR010) - J. Křivánek 2012 35

xp

xf

xp

xf

21

5.05.0

Page 36: Počítačová grafika III – Path tracing

Vyrovnaná heuristika

0 1

xpxp

xf

21

PG III (NPGR010) - J. Křivánek 2012 36