340 likes | 488 Views
Integração de Monte Carlo Luís Paulo Peixoto dos Santos. Iluminação e FotoRealismo. Competências. Específicas :. 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;
E N D
Integração de Monte Carlo Luís Paulo Peixoto dos Santos Iluminação e FotoRealismo
Competências Específicas : 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/08
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 wi de cada amostra determinam a qualidade e desempenho dos algoritmos de iluminação global Iluminação e Fotorealismo 2007/08
RayTracing Clássico Iluminação e Fotorealismo 2007/08 • O raytracing 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
RayTracing Clássico • Descontinuidades abruptas, principalmente as resultantes de efeitos de iluminação • aliasing • Simulação de um número limitado de efeitos de iluminação Iluminação e Fotorealismo 2007/08 A selecção determinística de um número limitado de direcções de amostragem resulta em:
Integração de Monte Carlo: Formulação • Objectivo: calcular o integral de no domínioD: • O valor esperado de umafunçãoaleatória é o valor médio da função, calculadosobre um conjunto de valoresx pertencentesaodomínio da função e distribuídos com probabilidadep(x): • O valor esperado de umafunção é aproximadopelamédia de um número de amostrasaleatórias - converge para o valor correctoquando o número de amostras se aproxima de infinito (Lei dos GrandesNúmeros): Iluminação e Fotorealismo 2007/08
Integração de Monte Carlo: Formulação O integral pode ser estimado pelo somatório pesado de amostras de f(x) geradas aleatoriamente Iluminação e Fotorealismo 2007/08 Combinando estes dois resultados podemos construir um integrador numérico <I> para estimar o valor do integral: O integrador é com
Integração de Monte Carlo: Distribuição Uniforme • Esteintegradornuméricopermiteaproximar o valor do integral seleccionandoestocasticamentepontos (amostras) no domínio da função! • Se a distribuição de probabilidadeusadaparaseleccionarospontos de amostrageméuniforme, entãotodosospontostêm a mesmaprobabilidade • O integradorpassa a ser: Iluminação e Fotorealismo 2007/08
9 8 7 f(x) 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 Integração de Monte Carlo: Distribuição Uniforme Valores para N=5 Iluminação e Fotorealismo 2007/08
Integração de Monte Carlo: Semi-Esfera Uniforme O ângulo sólido da semi-esfera é 2π, logo p(ω)=1/ 2π Seleccionar as direcções aleatoriamente e seguir o raio com direcção Ψi θ φ Iluminação e Fotorealismo 2007/08 Amostragem Uniforme da Semi-Esfera
Monte Carloraytracing Radiância reflectida por p na direcção ωr devida a iluminação directa Radiância reflectida por p na direcção ωr Radiância auto-emitida por p na direcção ωr Radiância reflectida por p na direcção ωr devida a iluminação indirecta Iluminação e Fotorealismo 2007/08
Monte Carloraytracing Iluminação e Fotorealismo 2007/08
Monte Carlopathtracing Iluminação e Fotorealismo 2007/08 • 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 shadowrays • Seleccionar estocasticamente uma únicadirecção de amostragem na semi-esfera
Monte Carlopathtracing Iluminação e Fotorealismo 2007/08
Monte Carlopathtracing Iluminação e Fotorealismo 2007/08 for each pixel pontheimage 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 shadowrays 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 • O processo estocásticointroduz variância, percepcionada como ruído Cornell box PathTracing 1spp; 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) Iluminação e Fotorealismo 2007/08
Integração de Monte Carlo : Variância Cornell box PathTracing 4spp; 17,5 seg Cornell box PathTracing 1spp; 4.3 seg Cornell box PathTracing 16spp; 71.7 seg Cornell box PathTracing 512spp; 2294.4 seg Iluminação e Fotorealismo 2007/08
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/08
Integração de Monte Carlo: estratificação f(x) 6 m=1 m=0 m=2 5 4 3 2 1 0 1 2 3 4 5 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 Iluminação e Fotorealismo 2007/08
Integração de Monte Carlo: estratificação f(x) Valores para m=N=5 (1 sampleperstratum) 6 5 4 3 2 1 Nota: I=13,5 e <I>=12.12 com uniforme 0 1 2 3 4 5 Iluminação e Fotorealismo 2007/08
Integração de Monte Carlo: estratificação O ângulo sólido da semiesfera é 2π, logo p(ω)=1/ 2π Seleccionar as direcções com M strata em θ e N strataem ψ: O integrador é: Iluminação e Fotorealismo 2007/08 Amostragem Estratificada da SemiEsfera
Integração de Monte Carlo: importância f(x) f(x) 6 6 5 5 p(x)=2x/15 4 4 3 3 p(x)=1/3 2 2 1 1 Amostragem Uniforme Amostragem por Importância 0 0 1 1 2 2 3 3 4 4 5 5 Distribuição de probabilidadeuniforme : paraseleccionar as amostrasnão é usadainformaçãoacerca 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. Iluminação e Fotorealismo 2007/08
Integração de Monte Carlo: importância f(x) Valores para N=5 6 5 4 3 2 1 Nota: I=13,5 e <I>=12.12 com uniforme 0 1 2 3 4 5 Iluminação e Fotorealismo 2007/08
Integração de Monte Carlo: importância Integrando é um produto: seleccionar um dos factores. CosineWeigthedImportanceSampling: Iluminação e Fotorealismo 2007/08
Monte Carlo: bias Iluminação e Fotorealismo 2007/08 • Quando parar a emissão de raios secundários (pathlength)? • 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)!
Monte Carlo: roleta russa Iluminação e Fotorealismo 2007/08 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
Monte Carlo: roleta russa Iluminação e Fotorealismo 2007/08 for each pixel pontheimage 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 shadowrays 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 Radiância reflectida por p na direcção ωr devida a iluminação directa Radiância reflectida por p na direcção ωr devida a iluminação indirecta Radiância reflectida por p na direcção ωr Radiância auto-emitida por p na direcção ωr Iluminação e Fotorealismo 2007/08
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/08
Integração de Monte Carlo: iluminação directa ωLi Iluminação e Fotorealismo 2007/08 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
Integração de Monte Carlo: iluminação directa 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. 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/08
Integração de Monte Carlo: iluminação indirecta • 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 Nota: apenas são consideradas contribuições que não tenham origem directamente nas fontes de luz. Iluminação e Fotorealismo 2007/08
PathTracing: 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/08
BiDirectionalPathTracing q1 Gerar caminho a partir do observador Gerar caminho a partir da fonte de luz Unir os 2 caminhos e pesar a contribuição de cada ql para cada pi q3 p3 q2 p2 p1 Iluminação e Fotorealismo 2007/08