Upload
internet
View
102
Download
0
Embed Size (px)
Citation preview
http://www.di.uminho.pt/uce-cg/index.php
Iluminação e FotoRealismo
Integração de Monte Carlo
Luís Paulo Peixoto dos Santos
Competências
GERAIS :• Relacionar os vários métodos de iluminação global com o modelo geral sustentado
pela equação de rendering, inferindo quais os fenómenos de iluminação modelados;• Projectar, implementar e avaliar soluções para novos problemas de iluminação por
recombinação de soluções conhecidas;• Reconhecer as limitações funcionais e/ou de desempenho associadas a cada algoritmo
de iluminação global;
Iluminação e Fotorealismo 2007/082
ESPECÍFICAS :
Motivação
• A equação de rendering não tem solução analítica• Os algoritmos de rendering calculam soluções numéricas aproximadas• O domínio de integração (semiesfera) é discretizado e são seleccionadas amostras
deste domínio discreto• A contribuição de cada amostra é adicionada ao resultado final com um determinado
peso, wi: o integral transforma-se numa soma
• A selecção de quais e quantas as direcções a amostrar e qual o peso w i de cada amostra determinam a qualidade e desempenho dos algoritmos de iluminação global
Iluminação e Fotorealismo 2007/083
s
iipirirrer dNpLpfpLpL ),cos()(),()()(
i
ipiririrer NpLpfwpLpL ),cos()(),()()(
Ray Tracing Clássico
Iluminação e Fotorealismo 2007/084
• O ray tracing clássico selecciona deterministicamente quais as direcções a amostrar com wi=1:– ILUMINAÇÃO DIRECTA: Amostragem das fontes de luz, pois estas
provavelmente correspondem a máximos da radiância incidente– REFLEXÃO ESPECULAR: Amostragem da direcção de reflexão especular
ideal, pois esta corresponde a um máximo da BRDF– TRANSMISSÃO ESPECULAR : Amostragem da direcção de transmissão
especular ideal, pois esta corresponde a um máximo da BRDF
Ray Tracing Clássico
Iluminação e Fotorealismo 2007/085
A selecção determinística de um número limitado de direcções de amostragem resulta em:
• Descontinuidades abruptas, principalmente as resultantes de efeitos de iluminação
• aliasing
• Simulação de um número limitado de efeitos de iluminação
Integração de Monte Carlo: Formulação
Iluminação e Fotorealismo 2007/086
• Objectivo: calcular o integral de no domínio D:
• O valor esperado de uma função aleatória é o valor médio da função, calculado sobre um conjunto de valores x pertencentes ao domínio da função e distribuídos com probabilidade p(x):
• O valor esperado de uma função é aproximado pela média de um número de amostras aleatórias - converge para o valor correcto quando o número de amostras se aproxima de infinito (Lei dos Grandes Números):
)(xf
D
dxxfI )(
D
dxxpxfxfE )()())((
N
iixfN
xfE1
)(1
))((
Integração de Monte Carlo: Formulação
Iluminação e Fotorealismo 2007/087
• Combinando estes dois resultados podemos construir um integrador numérico <I> para estimar o valor do integral:
• O integrador é com
N
i i
i
D
N
i i
i
D
N
iiD
xp
xf
Ndxxf
xp
xf
Nxp
dxxpxf
xfN
dxxpxfxfE
1
1
1
)(
)(1)(
)(
)(1
)(
)()(
)(1
)()())((
Ixp
xf
NI
N
i i
i 1 )(
)(1II
N
lim
O integral pode ser estimado pelo somatório pesado de amostras de f(x) geradas aleatoriamente
Integração de Monte Carlo: Distribuição Uniforme
Iluminação e Fotorealismo 2007/088
N
i i
i
D xp
xf
Ndxxf
1 )(
)(1)(
• Este integrador numérico permite aproximar o valor do integral seleccionando estocasticamente pontos (amostras) no domínio da função!
• Se a distribuição de probabilidade usada para seleccionar os pontos de amostragem é uniforme, então todos os pontos têm a mesma probabilidade
• O integrador passa a ser:
Dxpxp ii ,)(
N
iiDxf
xpNdxxf
1
)()(*
1)(
Integração de Monte Carlo: Distribuição Uniforme
Iluminação e Fotorealismo 2007/089
4
1)2( dxxI
3
1)( ,
3
111 ,)(
4
1
4
1 xpcxcdxccxp
13)( x,)2(3 1
i1
Px
NI
N
Ii
ξ xi f(xi)
0,31 1,92 3,92
0,59 2,76 4,76
0,61 2,82 4,82
0,09 1,26 3,26
0,15 1,45 3,45
Valores para N=5
5,135,216)22
()2(4
1
24
1
x
xdxx
1 2 3 4 5 6 7 8 90
1
2
3
4
5
6
7
8
9
f(x)
Integração de Monte Carlo: Semi-Esfera Uniforme
Iluminação e Fotorealismo 2007/0810
AMOSTRAGEM UNIFORME DA SEMI-ESFERA
s
iipirirrr dNpLpfpL ),cos()(),()(
N
iiirirrr pLpf
NpL
1
)cos()(),(2
)(
O ângulo sólido da semi-esfera é 2π, logo p(ω)=1/ 2π
Seleccionar as direcções aleatoriamente e seguir o raio com direcção
211 2 ,cos, i φ
θΨi
Monte Carlo ray tracing
Iluminação e Fotorealismo 2007/0811
N
iiirirrdrer pLpf
NpLpLpL
1
)cos()(),(2
)()()(
)( rpL Radiância reflectida por p na direcção ωr
)( re pL Radiância auto-emitida por p na direcção ωr
)( rd pL Radiância reflectida por p na direcção ωr devida a iluminação directa
N
iiirir pLpf
N 1
)cos()(),(2
Radiância reflectida por p na direcção ωr devida a iluminação indirecta
Monte Carlo ray tracing
Iluminação e Fotorealismo 2007/0812
Monte Carlo path tracing
Iluminação e Fotorealismo 2007/0813
• Para cada pixel gerar N raios primárioscujas direcções são seleccionadasestocasticamente sobre a área do pixel
• As contribuições destes raios são integradas usando o integrador de Monte Carlo para calcular o valor daquele pixel
• Quando um raio intersecta um objecto:– Calcular iluminação directa
disparando shadow rays– Seleccionar estocasticamente uma única
direcção de amostragem na semi-esfera
Monte Carlo path tracing
Iluminação e Fotorealismo 2007/0814
Monte Carlo path tracing
Iluminação e Fotorealismo 2007/0815
for each pixel p on the image plane {
i=0
for (i=0 ; i<N ; i++)
ray = select_dir_stochastically (p, pdf, &prob)
rad[p] += path_trace (ray, 0) / prob
rad[p] /= N;
}
path_trace (ray, depth) {
point = intersect (ray, scene)
rad = direct_lighting (point) // trace shadow rays
if (depth < MAX_DEPTH)
sec_ray = select_dir_stochastically (p, pdf, &prob)
rad += BRDF * path_trace (sec_ray, depth++) * cos(θ) / prob
return (rad)
}
Integração de Monte Carlo : Variância
Iluminação e Fotorealismo 2007/0816
• O processo estocástico introduz variância, percepcionada como ruído
Cornell boxPath Tracing1spp; 4.3 seg
• A variância varia com 1/N, o desvio padrão com 1/N2
• Para reduzir o ruído a metade, precisamos de 4 vezes mais amostras (N*4)
Integração de Monte Carlo : Variância
Iluminação e Fotorealismo 2007/0817
Cornell boxPath Tracing1spp; 4.3 seg
Cornell boxPath Tracing4spp; 17,5 seg
Cornell boxPath Tracing16spp; 71.7 seg
Cornell boxPath Tracing512spp; 2294.4 seg
Integração de Monte Carlo
• Redução da variância– Aumento do número de amostras– Amostragem Estratificada– Amostragem por Importância
Iluminação e Fotorealismo 2007/0818
Integração de Monte Carlo: estratificação
Iluminação e Fotorealismo 2007/0819
• As amostras podem ser melhor distribuídas no domínio se este for subdividido em subdomínios disjuntos (strata) e o integral calculado separadamente em cada estrato
1 2 3 4 50
1
2
3
4
5
6f(x)
2
0
11
1
4
1)2()2(
m
m
m
m
dxxdxx
m=0 m=1 m=2
2
0 1 ,
,4
1 )(
)(1)2(
m
m
n
i im
im
m
m
xp
xf
ndxx
Integração de Monte Carlo: estratificação
Iluminação e Fotorealismo 2007/0820
4
1)2( dxxI
3
1)( ,
3
111 ,)(
4
1
4
1 xpcxcdxccxp
)(
1
)2(3 mN
iixN
Iξ αj xi f(xi)0,97 1 1,43 3,430,23 1,6 2,18 4,280,85 2,2 2,63 4,630,36 2,8 2,98 4,980,19 3,4 3,66 5,66
Valores para m=N=5 (1 sample per stratum)
Nota: I=13,5 e <I>=12.12 com uniforme1 2 3 4 50
1
2
3
4
5
6f(x)
Integração de Monte Carlo: estratificação
Iluminação e Fotorealismo 2007/0821
AMOSTRAGEM ESTRATIFICADA DA SEMIESFERA
s
iipirirrr dNpLpfpL ),cos()(),()(
O ângulo sólido da semiesfera é 2π, logo p(ω)=1/ 2π
Seleccionar as direcções com M strata em θ e N strata em ψ:
O integrador é:
1
0
1
0
)cos()(),(*
2)(
M
j
N
iiirirrr pLpf
NMpL
N
i
M
j 211 2,cos,
Integração de Monte Carlo: importância
Iluminação e Fotorealismo 2007/0822
• Distribuição de probabilidade uniforme : para seleccionar as amostras não é usada informação acerca do integrando, f(x);
• Algumas partes de f(x) contribuem mais para o valor do integral: aquelas onde o valor de f(x) é maior;
• Se p(x) tem uma forma similar a f(x), então as amostra ficarão localizadas, com maior probabilidade, nas partes mais importantes do domínio.
1 2 3 4 50
1
2
3
4
5
6f(x)
p(x)=1/3
Amostragem Uniforme
1 2 3 4 50
1
2
3
4
5
6f(x)
p(x)=2x/15
Amostragem por Importância
Integração de Monte Carlo: importância
Iluminação e Fotorealismo 2007/0823
4
1)2( dxxI
15
2)( ,
2
151
21 ,)(
4
1
4
1
2 xxpc
xcdxcxcxxp
115 ,
152
)2(1
1
i
N
i i
i xxx
NIValores para N=5
1 2 3 4 50
1
2
3
4
5
6f(x)
ξ xi p(xi) f(xi)
0,82 3,64 0,49 5,64
0,39 2,63 0,35 4,63
0,80 3,60 0,48 5,60
0,48 2,86 0,38 4,86
0,72 3,45 0,46 5,45
Nota: I=13,5 e <I>=12.12 com uniforme
Integração de Monte Carlo: importância
Iluminação e Fotorealismo 2007/0824
s
iipirirrr dNpLpfpL ),cos()(),()(
Integrando é um produto: seleccionar um dos factores.COSINE WEIGTHED IMPORTANCE SAMPLING:
cos
)( p 211 2,sin),(
N
iirirrr
N
i i
iirirrr
pLpfN
pL
pLpf
NpL
1
1
)(),()(
)cos()cos()(),(1
)(
Monte Carlo: bias
Iluminação e Fotorealismo 2007/0825
• Quando parar a emissão de raios secundários (path length)?
– Usar uma profundidade máxima fixa
– Quando a contribuição esperada de um raio é inferior a um dado limite
• Estes são métodos determinísticos que afectam o valor do integral (bias)!
not biased biased
IIN
lim
IINlim
Monte Carlo: roleta russa
Iluminação e Fotorealismo 2007/0826
• Definir a probabilidade α de terminar a travessia (não disparar um raio secundário)
• Antes de disparar um raio gerar um número aleatório, ξ, uniformemente distribuído em [0, 1[
• Se ξ <= α então não disparar o raio
• Se ξ > α então disparar o raio
• Uma vez que há uma probabilidade α de não disparar um raio, a contribuição dos raios disparados deve ser multiplicada por 1/(1- α), para compensar aqueles que não são disparados
))( : 0 ? ()1(
1)( ipLpL
Monte Carlo: roleta russa
Iluminação e Fotorealismo 2007/0827
for each pixel p on the image plane {
i=0
for (i=0 ; i<N ; i++)
ray = select_dir_stochastically (p, pdf, &prob)
rad[p] += path_trace (ray) / prob
rad[p] /= N;
}
path_trace (ray) {
point = intersect (ray, scene)
rad = direct_lighting (point) // trace shadow rays
if (ξ > α)
sec_ray = select_dir_stochastically (p, pdf, &prob)
rad_incident = path_trace (sec_ray) / ( prob * (1 – α))
rad += BRDF * rad_incident * cos(θ)
return (rad)
}
Integração de Monte Carlo
Iluminação e Fotorealismo 2007/0828
)()()()( rindrdrer pLpLpLpL
)( rpL Radiância reflectida por p na direcção ωr
)( re pL Radiância auto-emitida por p na direcção ωr
)( rd pL Radiância reflectida por p na direcção ωr devida a iluminação directa
)( rind pL Radiância reflectida por p na direcção ωr devida a iluminação indirecta
Integração de Monte Carlo: iluminação directa
• Nota: apenas são consideradas contribuições que tenham origem directamente nas fontes de luz
Abordagem 1 – Iterar sobre todas as fontes de luz e tirar NLi amostras de cada:
Iluminação e Fotorealismo 2007/0829
iidirrrd pLpfpL cos)(),,()(
Nlights
l
N
i i
iildirr
Lird
Nlights
liildirrrd
Li
p
pLpf
NpL
pLpfpL
1 1
)(
1)(
)(
cos)(),,(1)(
cos)(),,()(
Integração de Monte Carlo: iluminação directa
Iluminação e Fotorealismo 2007/0830
Nlights
l
N
i i
iildirr
Lird
Li
p
pLpf
NpL
1 1
)(
)(
cos)(),,(1)(
• A selecção das amostras ωi pode ser feita usando distribuição uniforme ou estratificada ou amostragem por importância sobre o ângulo sólido definido pela fonte de luz, ωLi
ωLi
Integração de Monte Carlo: iluminação directa
Abordagem 2 – Seleccionar com probabilidade p=1/NLi uma fonte de luz e amostrar apenas essa.
A sua contribuição é, obviamente, dividida pela sua probabilidade:
Iluminação e Fotorealismo 2007/0831
iidirrrd pLpfpL cos)(),,()(
iildirrLird
Li
iildirrrd
pLpfNpL
N
pLpfpL
cos)(),,()(
1
cos)(),,()(
)(
)(
Em vez de seleccionar a fonte de luz com probabilidade uniforme podem-se usar outras distribuições.
Exemplo: baseada na potência, área e distância da fonte de luz.
Integração de Monte Carlo: iluminação indirecta
• Nota: apenas são consideradas contribuições que não tenham origem directamente nas fontes de luz.
Iluminação e Fotorealismo 2007/0832
iidirrrind pLpfpL cos)(),,()(
N
i i
iiindirrrind p
pLpf
NpL
1 )(
cos)(),,(1)(
• A selecção de quais as direcções da semi-esfera a amostrar é vulgarmente baseada em:• Amostragem estratificada• Amostragem por importância baseada na distribuição do cosseno• Amostragem por importância baseada na forma da BRDF
• Neste caso é necessário derivar uma distribuição da probabilidade que tenha uma forma semelhante à da BRDF
Path Tracing: limitações
• Para algumas condições de iluminação a maioria dos trajectos gerados NUNCA encontram as fontes de luz: a sua contribuição será ZERO
• Os poucos trajectos que encontram a fonte de luz são os únicos que contribuem para o valor do pixel, resultando em grande variância (ruído)
Iluminação e Fotorealismo 2007/0833
BiDirectional Path Tracing
Iluminação e Fotorealismo 2007/0834
p1
p2
p3
q1
q2
q3
1. Gerar caminho a partir do observador
2. Gerar caminho a partir da fonte de luz
3. Unir os 2 caminhos4. e pesar a
contribuição de cada ql para cada pi