Upload
internet
View
104
Download
0
Embed Size (px)
Citation preview
http://www.di.uminho.pt/uce-cg/index.php
Iluminação e FotoRealismo
Iluminação GlobalBiased Monte Carlo Methods
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 :
Conteúdo
• Introdução
– Métodos com e sem Bias
– Partição do integral
• A Cache de Irradiância
• Iluminação Global Interactiva
Iluminação e Fotorealismo 2007/083
Biased vs. Unbiased
• Os métodos de Monte Carlo sem bias:– garantem a convergência para soluções correctas com o aumento do nº de amostras– garantem que a solução obtida é correcta
Mas– Exigem um nº de amostras elevado, logo elevado tempo de computação
Iluminação e Fotorealismo 2007/084
• Os métodos de Monte Carlo com bias:– Convergem mais rapidamente (menos amostras) para uma solução visualmente agradável
Mas– Não há garantias de que esta solução seja correcta– Não há garantias de que a solução melhore aumentando o nº de amostras
IIN
lim
IINlim
Partição do Integral
• O integral de transporte de luz pode ser particionado em vários integrais, cada correspondendo a vários subdomínios disjuntos, sendo cada integral resolvido separadamente, eventualmente recorrendo a abordagens muito diferentes
Iluminação e Fotorealismo 2007/085
i
dpLpfpL iiirrrr cos)(),,()(
cos)(),,(
cos)(),,(
cos)(),,()(
_
_
dindirectai
sindirectai
directai
dpLpf
dpLpf
dpLpfpL
iiidirr
iiisirr
iidirrrr
Exemplo:
// L directa
// L indirecta especular
// L indirecta difusa
• O único requisito é que os subdomínios sejam disjuntos, isto é, que nenhuma direcção ωi seja considerada em 2 ou mais integrais
Partição do Integral
Iluminação e Fotorealismo 2007/086
A composição destes resultados parciais resulta na imagem final.
DIRECTA ESPECULAR INDIRECTA DIFUSA INDIRECTA
Partição do Integral
Iluminação e Fotorealismo 2007/087
Partição do Integral
• Iluminação directa– Eventualmente, calculada por integração de Monte Carlo– Apresenta descontinuidades (altas frequências)
• Iluminação especular indirecta– Calculada deterministicamente (cuidado: glossiness)– Apresenta descontinuidades (altas frequências)
• Iluminação difusa indirecta– Não direccional: Integração de Monte Carlo requer
amostragem de um grande número de direcções– Varia suavemente ao longo das superfícies (baixa frequência)
Iluminação e Fotorealismo 2007/088
CACHE DE IRRADIÂNCIA
Greg Ward, "A Ray Tracing Solution for Diffuse Interreflection", Computer Graphics, 22(4), 1988
Greg Ward and Paul Heckbert, "Irradiance Gradients", 1992
Iluminação e Fotorealismo 2007/089
Cache de Irradiância
P1 – Calcular irradiância amostrando a semi-esfera (Monte Carlo)
P2 – Calcular irradiância amostrando a semi-esfera (Monte Carlo)
P3 – Se dentro da área de interpolação de P1 e/ou P2 então
Interpolar!
Iluminação e Fotorealismo 2007/0810
p1 p2p3
Cache de Irradiância: Cálculo
• Irradiância – fluxo radiante incidente por unidade de área– Calcula-se a partir da radiância incidente como:
Iluminação e Fotorealismo 2007/0811
sN
i i
ii
siii p
pL
NdpLpE
1 )(
cos)(1cos)()(
• Usando amostragem estratificada pesada com o cosseno (importância):
1
0
1
0,
211
)(*
)(
*2,sin),(
cos)(
M
j
N
kkj
ii
pLNM
pE
N
k
M
j
p
Cache de Irradiância: Cálculo
• A irradiância num ponto p da cena pode ser calculada:
– Extensivamente: se não houver nenhum valor de irradiância calculado previamente para outro ponto numa vizinhança válida de p
– Por Interpolação: se forem encontrados valores de irradiância calculados previamente para outros pontos numa vizinhança válida de p
• Aos valores de irradiância calculados extensivamente chamamos amostras
• As amostras têm que ser armazenadas nalguma estrutura de dados para uso posterior
• A esta estrutura de dados chamamos cache de irradiância
Iluminação e Fotorealismo 2007/0812
Cache de Irradiância: Armazenamento
• As amostras têm que ser guardadas no espaço 3D para poderem ser reutilizadas• Não são armazenadas com a geometria (superfície onde foram calculadas) para
permitir reutilização com outras superfícies vizinhas• Devem ser guardadas numa estrutura que ordene o espaço 3D para permitir procuras
rápidas de várias amostras numa vizinhança espacial• Usam-se octrees ou kd-trees
Iluminação e Fotorealismo 2007/0813
Cache de Irradiância: Vizinhança
• Cada amostra de irradiância armazenada na cache corresponde ao valor da irradiância calculada num ponto pi do espaço. A esta amostra chamamos E(pi)
• Para calcular a irradiância E(p) num ponto p procura-se primeiro na cache quais as amostras E(pi) que podem ser usadas
• A decisão de se um ponto pi pode ser usado para estimar a irradiância em p baseia-se na estimativa do erro incorrido por usar E(pi) em vez de calcular E(p)
• Esta estimativa do erro é um limite máximo e é representada por
• O erro máximo aceitável, a, é um parâmetro usualmente fornecido pelo utilizador
• O ponto pi só é usado para estimar E(p) se
Iluminação e Fotorealismo 2007/0814
),( ipp
app i ),(
Cache de Irradiância: Vizinhança
Iluminação e Fotorealismo 2007/0815
ipp
i
ii NN
R
pppp
1),(
• A estimativa de erro depende de:
• - distância euclidiana entre p e pi
• - distância média das superfícies a pi; calculada como média harmónica durante o processo de amostragem da semiesfera.
• - cosseno entre as normais das superfícies em p e pi
ipp
iR
ipp NN
Cache de Irradiância: Interpolação
• O valor de E(p) é dado pela média pesada dos E(pi) determinados como estando dentro de uma vizinhança válida;
• Os pesos a usar nesta média pesada são o inverso da estimativa de erro:
Iluminação e Fotorealismo 2007/0816
),(1),(
),(
)(),()(
ii
i
ii
pppp
pp
pEpppE
Cache de Irradiância: Rendering
• Conhecido o valor da irradiância E(p), o valor da radiância reflectida de forma difusa na direcção do observador é dada por
Iluminação e Fotorealismo 2007/0817
)(*)(_ pEpL rdindirect
• Este método aplica-se apenas a superfícies difusas, pois E(p) não contem qualquer informação sobre a direcção de incidência da radiância.
• Os valores de podem ser partilhados entre frames onde a posição do observador muda, pois respeitam apenas a informação difusaNota: a geometria, materiais e iluminação, no entanto, têm que ser fixas
, sendo ρ o coeficiente de reflexão difusa
Cache de Irradiância: Parâmetros
• O algoritmo da cache de irradiância usualmente aceita os seguintes parâmetros;
– maxdepth – até que profundidade deve continuar a recursividade– maxerror – qual o erro máximo aceitável no processo de interpolação
quanto menor mais amostras serão calculadas– nsamples – quantas amostras usar para amostrar a componente difusa indirecta
da semiesfera (nº de raios a disparar por cálculo extenso da irradIância)quanto maior mais raios serão disparados por amostra
Iluminação e Fotorealismo 2007/0818
Cache de Irradiância: Posicionamento das amostras
Iluminação e Fotorealismo 2007/0819
• As amostras concentram-se nas zonas onde a distância do ponto pi às restantes superfícies é menor: cantos.
Cache de Irradiância: Defeitos visíveis
• O resultado do processo de interpolação é claramente visível
• O processo de interpolação aqui descrito é linear; não tem em consideração variações com translações ou rotações
• Durante o processo de amostragem da semiesfera é possível estimar como varia a irradiância com as translações e rotações:cálculo dos gradientes
• Estes gradientes podem ser usados para fazer interpolação de 2ª ordem obtendo uma diminuição significativa nestes defeitos
Iluminação e Fotorealismo 2007/0820
DIFUSA INDIRECTA
Cache de Irradiância: Defeitos visíveis
• A imagem é percorrida de forma ordenada, linha a linha
• Inicialmente a cache está vazia
• Como resultado as amostras são calculadas de forma ordenada também, resultando em muitas extrapolações: utilização de apenas uma amostra para estimar E(p)
• Uma primeira passagem pelo plano da imagem, processando apenas alguns dos pixeis (subamostragem), permitiria inicializar a cache, reduzindo o número de extrapolações
Iluminação e Fotorealismo 2007/0821
DIFUSA INDIRECTA
ILUMINAÇÃO GLOBAL INTERACTIVA
Iluminação e Fotorealismo 2007/0822
Fundamentos
CÁLCULO DAS INTERREFLEXÕES DIFUSAS
PRÉ-PROCESSAMENTO1. Seguir um número reduzido de trajectos a partir das fontes
de luz2. Construir fontes de luz virtuais (VPL – Virtual Point Light
sources) nos pontos de intersecção// representam a distribuição da radiância indirecta na cena
RENDERING TIME1. Incluir estas fontes de luz (VPL) explicitamente no integral
para cada ponto
Iluminação e Fotorealismo 2007/0823
Keller, A; “Instant Radiosity”; Proc. of SIGGRAPH’97, 1997
Wald, Kollig, Benthin, Keller, Slusallek; “Interactive Global Illumination using fast ray tracing”; 13th Eurographics Workshop on Rendering, 2002
Integração sobre áreas
• Radiância reflectida definida sobre ângulos sólidos:
• Relação entre ângulo sólido e área
• Equação de Rendering definida sobre áreas:
Iluminação e Fotorealismo 2007/0824
iiiirrrr dpLpfpL cos)(),,()(
22
'cos
r
dA
r
dAd i
Ap
iirr dA
rppLpppfppL
2
22101201
'coscos)()()(
p0 p2
p1
ωrωiθi
θi’
Ap
rr
ii
dAppGppLpppfppL
rppG
2
)()()()(
'coscos)(
212101201
221
Pré-Processamento: Contribuição de um trajecto
• Qual a contribuição deste trajecto, P(p6), para a radiância incidente em p0?
1. Seleccionar estocasticamente um ponto na superfície da fonte de luz :
Iluminação e Fotorealismo 2007/0825
p0
p1
p2
p3
p4
p5
p6
...)( 6 pP
)(
)()(
6
66 pp
pLpL
A
e
Pré-Processamento: Contribuição de um trajecto
Iluminação e Fotorealismo 2007/0826
p0
p1 p3p5
p6
1. Seleccionar estocasticamente uma direcção de saída ω6 e determinar p5 disparando um raio de p6 na direcção ω6 (ω6=p5-p6=p6→p5 )
2. A radiância incidente em p5 devido a p6 é
3. A contribuição da VPL em p5 para um ponto p qualquer da cena será a sua radiância incidente vezes a BRDF:)(
cos
)(
)()(
56
5
6
5665 ppppp
ppLppL
A
e
)(
cos)(
)(
)()(
56
556
6
565 ppp
pppf
pp
ppLppL r
A
e
p2 p4
Pré-Processamento: Contribuição de um trajecto
Iluminação e Fotorealismo 2007/0827
p0
p1 p3p5
p6
1. Seleccionar estocasticamente uma direcção de saída ω5 e determinar p4 disparando um raio de p5 na direcção ω5
2. A radiância incidente em p4 devido a p6 é
)(
cos
)(
cos)(
)(
)()(
45
4
56
5456
6
5664 pppppp
pppf
pp
ppLppL r
A
e
p2 p4
Pré-Processamento: Contribuição de um trajecto
Iluminação e Fotorealismo 2007/0828
p0
p1 p3p5
p6
1. Seleccionar estocasticamente uma direcção de saída ω4 e determinar p3 disparando um raio de p4 na direcção ω4
2. A radiância incidente em p3 devido a p6 é
Generalizando a radiância incidente em pi-l devido a um ponto pi na superfície de uma fonte de luz e a um trajecto de comprimento l é dada por:
)(
cos
)(
cos)(
)(
cos)(
)(
)()(
34
3
45
4345
56
5456
6
5663 pppppp
pppf
ppp
pppf
pp
ppLppL rr
A
e
p2 p4
)(
cos
)(
cos)(
)(
)()(
1
1
1 1
111
lili
lil
j jiji
jijijijir
iA
iieili pppppp
pppf
pp
ppLppL
Rendering: Amostragem da VPL
• Determinar ponto p1 de intersecção de raio primário• Somar a contribuição de TODAS as VPL:
onde: é a radiância incidente em pi associado à VPL i (dada pela expressão do acetato anterior)
é a BRDF em pi
corresponde ao termo geométrico entre p1 e a VPLi
corresponde à visibilidade entre p1 e VPLi calculada disparando um shadow ray
Iluminação e Fotorealismo 2007/0829
p0
p1 p3p5
p6
p2 p4
VPL
r
N
iiiiiiir
VPLVPL VPLLpppfppGVPLpVpppf
NppL
111110101 )()()(),()(
1)(
)( iVPLL
),( 1 iVPLpV
)( 1 ippG
)( 11 pppf iir
Amostragem da VPL: exemplo
• Consideremos p2.
• Propagação a partir de p6 resulta em:
• Recolha a partir de p0 resulta em (apenas para VPL2):
Iluminação e Fotorealismo 2007/0830
p0
p1 p3p5
p6
p2 p4
)(
cos
)(
cos)(*
*)(
cos)(*
)(
cos)(*
)(
)()(
23
2
34
3234
45
4345
56
5456
6
562
pppppp
pppf
ppp
pppf
ppp
pppf
pp
ppLVPLL
r
rr
A
e
)()()(),()(1
)( 21232121012012VPLLpppfppGVPLpVpppf
NppL rr
VPLVPL
Termo Geométrico
Iluminação e Fotorealismo 2007/0831
2
1
11
'coscos)(
ppppG
i
ii
• Se a distância de p1 a pi é pequena (≈0) então o termo geométrico toma um valor muito grande
• Para evitar esta situação G toma o valor zero se a distância for menor que um determinado limite:
• A truncagem de G introduz bias no algoritmo
di
di
i
i
i
pp
ppppppG
min se ,0
min se ,'coscos
)(
1
12
1
1
1
Critério de paragem
• A decisão de quando terminar um trajecto construído a partir da fonte de luz é tomada recorrendo a roleta russa
• A probabilidade de continuar o trajecto deve ser igual à atenuação que a energia do fotão sofre naquela intersecção:
• Se então o trajecto termina• Senão o trajecto continua
• A contribuição deste trajecto (energia da próxima VPL) é dividida pela probabilidade de continuar, pcontinue
Iluminação e Fotorealismo 2007/0832
)(
'cos)(
1
11
ii
iiiircontinue ppp
pppfp
continuep
Critério de paragem
• A energia de VPLi-1 relativamente a VPLi é dada por
• Uma vez que usamos roleta russa passa a ser
Iluminação e Fotorealismo 2007/0833
)()(
cos)()(
1
111 i
ii
iiiiri VPLL
ppp
pppfVPLL
continuei
ii
iiiiri p
VPLLppp
pppfVPLL
1)(
)(
cos)()(
1
111
)(
cos)(
1
11
ii
iiiircontinue ppp
pppfp
)(
)()()( 1
source
sourceeii pp
pLVPLLVPLL
Todas as VPL do mesmo trajecto têm a mesma energia
Pré-Processamento: Algoritmo
PreProcess() { Para i=1 até N_Paths { Seleccionar aleatoriamente a fonte de luz L Seleccionar ponto na fonte de luz p com probabilidade pdf contrib = L.Le / pdf
Seleccionar direcção ωo com probabilidade pdf contrib *= cos θ / pdf
p’, Np’ = intersecta (raio(p, ωo), cena) Enquanto intersecção com sucesso {
ωi = ωo
Criar VPL (p’, contrib, ωi, Np’) N_VPLs++
Seleccionar direcção ωo com probabilidade pdf
pcontinue = BRDF (p’, ωi, ωo)* cos θ / pdf if (RandomFloat()>pcontinue) termina trajecto
p’, Np’ = intersecta (raio(p’, ωo), cena) }} }
Iluminação e Fotorealismo 2007/0834
Rendering: Algoritmo
Render() { // ponto p da cena e raio com direcção dir
L = <Calcular iluminação directa>
L += <Novos raios para iluminação especular>
Para i=1 até N_VPLs {
se (distância (p, VPL[i].p) <= min_d) continue;
L_aux = VPL[i] * G(p, VPL[i].p)
L_aux *= BRDF (VPL[i].p, VPL[i].dir, dir(p, VPL[i]))
L_aux *= BRDF (p, dir, dir(p, VPL[i]))
L_aux /= N_VPLs
Visivel = shadow_ray (p, VPL[i].p)
if (Visivel) L+= L_aux
}
}
Iluminação e Fotorealismo 2007/0835
Comparação
Iluminação e Fotorealismo 2007/0836
Path tracing: 10 spp43.4 seg
IGI: 1 spp, 128 VPL41.1 seg
Conjuntos de VPLs
• A utilização do mesmo conjunto de VPLs para todos os pixeis resulta numa elevada intercorrelação entre pixeis vizinhos:
Iluminação e Fotorealismo 2007/0837
SOLUÇÃO:
Gerar vários conjuntos diferentes de VPLs e, para cada raio primário, seleccionar estocasticamente o conjunto a utilizar.
Não acarreta custos extra, excepto a geração dos conjuntos de VPLs
Conjuntos de VPLs
Iluminação e Fotorealismo 2007/0838
IGI: 1 spp, 128 VPL, 4 set41.3 seg
IGI: 1 spp, 128 VPL, 1 set41.1 seg
Sobre Amostragem
• A variância pode ser reduzida disparando vários raios primários por pixel
• O número de diferentes conjuntos de VPLs deve ser igual ao número de amostras por pixel
• Cada conjunto de VPLs pode agora ter o seu número de trajectos dividido pelo número de amostras por pixel
• O tempo associado à iluminação difusa não aumenta
• As distribuições de números aleatórios usadas para gerar os trajectos e seleccionar o conjunto a usar devem ser cuidadosamente escolhidas para garantir que não há correlações entre estes
Iluminação e Fotorealismo 2007/0839
Sobre Amostragem
Iluminação e Fotorealismo 2007/0840
IGI: 1 spp, 128 VPL, 1 set41.1 seg
IGI: 4 spp, 32 VPL, 4 set62.8 seg
Selecção da fonte de luz
• A amostragem das fontes de luz, na fase de pré-processamento, pode ser feita baseada na sua importância, por exemplo, usando uma distribuição de probabilidade baseada na potência relativa das fontes de luz
• Neste caso, algumas fontes de luz terão, em média, mais VPLs do que outras
• Para compensar a potência das VPLs deve ser atenuada pela probabilidade de selecção da fonte de luz
Iluminação e Fotorealismo 2007/0841
Pré-Processamento: Algoritmo (importância das fontes de luz)
PreProcess() { Criar distribuição para fontes de luz baseada em alguma característica Para i=1 até N_Paths { Seleccionar aleatoriamente a fonte de luz L com probabilidade
Lightpdf Seleccionar ponto na fonte de luz p com probabilidade pdf contrib = L.Le / pdf * Lightpdf
Seleccionar direcção ωo com probabilidade pdf contrib *= cos θ / pdf Enquanto intersecção com p’ {
ωi = ωo
Criar VPL (p’, contrib, ωi, Np’) N_VPLs++
Seleccionar direcção ωo com probabilidade pdf
pcontinue = BRDF (p’, ωi, ωo)* cos θ / pdf if (RandomFloat()>pcontinue) termina trajecto }} }
Iluminação e Fotorealismo 2007/0842
Selecção da fonte de luz: oclusão
• Numa cena com um elevado grau de oclusão muitas fontes de luz não contribuem para a iluminação das superfícies visíveis.
• VPLs propagadas a partir destas fontes de luz não contribuem para a região visível da imagem, mas a sua visibilidade é ainda assim avaliada pelos shadow rays para iluminar cada ponto
• Muito tempo de computação é desperdiçado numa operação que não contribui para melhorar o resultado final
EXEMPLO:Um prédio com muitas divisões e muitas fontes de luz terá VPLs distribuídas por
todas (maioria) as suas divisõesUm observador localizado numa divisão não beneficia da maioria destas VPLs
Iluminação e Fotorealismo 2007/0843
Selecção da fonte de luz: oclusão
Iluminação e Fotorealismo 2007/0844
Múltiplas (9) cópias da Cornell BoxCom iluminação indirecta
Selecção da fonte de luz: oclusão
Iluminação e Fotorealismo 2007/0845
1 única Cornell BoxIGI: 8 spp, 16 VPL, 8 set
112 seg
9 Cornell BoxIGI: 8 spp, 16 VPL, 8 set
172 seg
Selecção da fonte de luz: oclusão
• Determinar a importância das fontes de luz para o ponto de vista actual• Propagar VPLs a partir das fontes de luz usando esta distribuição de importância
HIPÓTESE:
Fazer uma primeira passagem com baixa resolução a partir do observador apenas para calcular a importância relativa das fontes de luz, construindo uma pdf
Usar path tracing para esta passagem. Construir a distribuição de importância das fontes de luz baseada no número de shadow rays que as amostram com sucesso
Para que a integração seja unbiased relativamente às fontes de luz, nenhuma fonte de luz que contribua para a iluminação deve ter probabilidade 0.
[Wald, Benthin, Slusallek; “Interactive Global Illumination in Complex and Highly Occluded Environments”; EG Symposium on Rendering, 2003]
Iluminação e Fotorealismo 2007/0846