+ All Categories
Home > Documents > Počítačová grafika III – Path tracing

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

Date post: 02-Jan-2016
Category:
Upload: conan-mcfarland
View: 36 times
Download: 0 times
Share this document with a friend
Description:
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
36
Počítačová grafika III – Path tracing Jaroslav Křivánek, MFF UK [email protected]
Transcript

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

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

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

Příklady MC estimátorů

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

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

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

Odhad irradiance – vzrokování zdroje

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

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

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

PG III (NPGR010) - J. Křivánek 2012 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 2012 11

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

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

Distribution Ray TracingPath 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

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

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

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

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

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

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

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

„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

„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

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

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

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

Multiple Importance Sampling

f(x)

0 1

p1(x) p2(x)

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

(Veach & Guibas, 95)

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)

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:

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

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

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

Jeden člen kombinovaného odhadu

f(x)

0 1

p1(x) p2(x)

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

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

Vyrovnaná heuristika

0 1

xpxp

xf

21

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


Recommended