Integrao de Monte Carlo Iluminao e Foto Realismo


































- Slides: 34
Integração de Monte Carlo Iluminação e Foto. Realismo Luís Paulo Peixoto dos Santos http: //www. di. uminho. pt/uce-cg/index. php
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; ESPECÍFICAS : Iluminação e Fotorealismo 2007/08 2
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 3
Ray Tracing Clássico • 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 Iluminação e Fotorealismo 2007/08 4
Ray Tracing Clássico A selecção determinística de um número limitado de direcções de amostragem resulta em: Iluminação e Fotorealismo 2007/08 • Descontinuidades abruptas, principalmente as resultantes de efeitos de iluminação • aliasing • Simulação de um número limitado de efeitos de iluminação 5
Integração de Monte Carlo: Formulação • 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): Iluminação e Fotorealismo 2007/08 6
Integração de Monte Carlo: Formulação • Combinando estes dois resultados podemos construir um integrador numérico <I> para estimar o valor do integral: • O integrador é com O integral pode ser estimado pelo somatório pesado de amostras de f(x) geradas aleatoriamente Iluminação e Fotorealismo 2007/08 7
Integração de Monte Carlo: Distribuição Uniforme • 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: Iluminação e Fotorealismo 2007/08 8
Integração de Monte Carlo: Distribuição Uniforme Valores para N=5 ξ xi f(xi) 0, 31 1, 92 3, 92 0, 59 2, 76 4, 76 9 0, 61 2, 82 4, 82 8 0, 09 1, 26 3, 26 0, 15 1, 45 3, 45 7 f(x) 6 5 4 3 2 1 Iluminação e Fotorealismo 2007/08 0 1 2 3 4 5 6 7 8 9 9
Integração de Monte Carlo: Semi-Esfera Uniforme AMOSTRAGEM UNIFORME DA SEMI-ESFERA 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 10
Monte Carlo ray tracing 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 directa Radiância reflectida por p na direcção ωr devida a iluminação indirecta Iluminação e Fotorealismo 2007/08 11
Monte Carlo ray tracing Iluminação e Fotorealismo 2007/08 12
Monte Carlo path tracing • Para cada pixel gerar N raios primários cujas direcções são seleccionadas estocasticamente 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 Iluminação e Fotorealismo 2007/08 13
Monte Carlo path tracing Iluminação e Fotorealismo 2007/08 14
Monte Carlo path tracing 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) } Iluminação e Fotorealismo 2007/08 15
Integração de Monte Carlo : Variância • O processo estocástico introduz variância, percepcionada como ruído Cornell box Path Tracing 1 spp; 4. 3 seg • A variância varia com 1/N, o desvio padrão com 1/N 2 • Para reduzir o ruído a metade, precisamos de 4 vezes mais amostras (N*4) Iluminação e Fotorealismo 2007/08 16
Integração de Monte Carlo : Variância Cornell box Path Tracing 1 spp; 4. 3 seg Cornell box Path Tracing 16 spp; 71. 7 seg Iluminação e Fotorealismo 2007/08 Cornell box Path Tracing 4 spp; 17, 5 seg Cornell box Path Tracing 512 spp; 2294. 4 seg 17
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 18
Integração de Monte Carlo: estratificação • 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 f(x) 6 5 4 3 2 m=0 m=1 m=2 1 0 1 2 3 4 5 Iluminação e Fotorealismo 2007/08 19
Integração de Monte Carlo: estratificação Valores para m=N=5 ξ 0, 97 0, 23 0, 85 0, 36 0, 19 αj 1 1, 6 2, 2 2, 8 3, 4 (1 sample per stratum) xi 1, 43 2, 18 2, 63 2, 98 3, 66 f(xi) 3, 43 4, 28 4, 63 4, 98 5, 66 f(x) 6 5 4 3 2 1 Nota: I=13, 5 e <I>=12. 12 com uniforme Iluminação e Fotorealismo 2007/08 0 1 2 3 4 5 20
Integração de Monte Carlo: estratificação AMOSTRAGEM ESTRATIFICADA DA SEMIESFERA 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 é: Iluminação e Fotorealismo 2007/08 21
Integração de Monte Carlo: importância • 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. f(x) 6 5 5 4 4 3 3 2 2 p(x)=2 x/15 1 p(x)=1/3 0 1 2 3 4 5 Amostragem Uniforme Iluminação e Fotorealismo 2007/08 1 0 1 2 3 4 5 Amostragem por Importância 22
Integração de Monte Carlo: importância Valores para N=5 ξ 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 f(x) 6 5 4 3 2 1 Nota: I=13, 5 e <I>=12. 12 com uniforme Iluminação e Fotorealismo 2007/08 0 1 2 3 4 5 23
Integração de Monte Carlo: importância Integrando é um produto: seleccionar um dos factores. COSINE WEIGTHED IMPORTANCE SAMPLING: Iluminação e Fotorealismo 2007/08 24
Monte Carlo: bias • 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 Iluminação e Fotorealismo 2007/08 biased 25
Monte Carlo: roleta russa • 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 Iluminação e Fotorealismo 2007/08 26
Monte Carlo: roleta russa 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) } Iluminação e Fotorealismo 2007/08 27
Integração de Monte Carlo 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 directa Radiância reflectida por p na direcção ωr devida a iluminação indirecta Iluminação e Fotorealismo 2007/08 28
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 29
Integração de Monte Carlo: iluminação directa • 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 Iluminação e Fotorealismo 2007/08 ωLi 30
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: 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. Iluminação e Fotorealismo 2007/08 31
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. • 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 Iluminação e Fotorealismo 2007/08 32
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/08 33
Bi. Directional Path Tracing q 1 1. Gerar caminho a partir do observador 2. Gerar caminho a partir da fonte de luz 3. 4. Unir os 2 caminhos e pesar a contribuição de cada ql para cada pi q 3 p 3 q 2 p 1 Iluminação e Fotorealismo 2007/08 34