mestrado em computação gráfica e ambientes virtuais universidade do minho BI-DIRECTIONAL PATH TRACING Iluminação e FotoRealismo FILIPE MARREIROS, SÉRGIO VALENTIM 2004 BI-DIRECTIONAL PATH TRACING Bi-Directional Path Tracing - Método com base no pixel - Computa o transporte de fluxos de luz na cena para cada pixel da imagem - Introduzido em simultâneo por - Lafortune, Willems, 1993 - Veach, Guibas, 1994 ILUMINAÇÃO E FOTOREALISMO 2 BI-DIRECTIONAL PATH TRACING Antecedentes - Todos os algoritmos eram construídos à volta da importância de um dos seguintes factores: - viewing point (ex: ray tracing, ray tracing distribuído) - view-dependent - das fontes de luz (ex: radiosidade) - view-independent - Não existia portanto um algoritmo que tomasse em consideração ambos os factores de interesse. ILUMINAÇÃO E FOTOREALISMO 3 BI-DIRECTIONAL PATH TRACING Bi-Directional Path Tracing - Têm em consideração os 2 factores (ponto de vista e as fontes de luz) - a importância atribuída é idêntica. - Ideia Base: - As partículas são disparadas ao mesmo tempo do ponto de vista e de 1 fonte de luz, ± da mesma forma. - Todas os pontos de intersecção com os percursos de partículas são conectados usando shadow rays. - A contribuição apropriada é adicionada ao fluxo do pixel em questão. ILUMINAÇÃO E FOTOREALISMO 4 BI-DIRECTIONAL PATH TRACING Exemplo ILUMINAÇÃO E FOTOREALISMO 5 BI-DIRECTIONAL PATH TRACING Exemplo ILUMINAÇÃO E FOTOREALISMO 6 BI-DIRECTIONAL PATH TRACING Vantagens - Esta abordagem permite que várias contribuições de luz sejam tomadas em consideração. - Ou seja, não apenas da fonte de luz primária mas de uma forma probabilística também de importantes fontes de luz secundárias, terceárias, ... ILUMINAÇÃO E FOTOREALISMO 7 BI-DIRECTIONAL PATH TRACING Pontos e direcções dos percursos - Percurso da luz: -x0, x1, x2, ..., xNl ; -onde xi+1 é o ponto visto pelo ponto xi na direcção Θxi - Percurso do olho: -y0, y1, y2, ..., yNe-1 ; -onde yj+1 é o ponto que vê o ponto yj na direcção Θyj+1 ILUMINAÇÃO E FOTOREALISMO 8 BI-DIRECTIONAL PATH TRACING Atribuição das direcções e pontos iniciais - Direcções e pontos iniciais: - Percurso do olho: Θy0 , y0 - Percurso da luz: Θx0 , x0 - Para definir os pontos e direcções iniciais é necessário recorrer a amostras obtidas pelas pdfs (probability distribution function) - Estas pdf são baseadas no princípio de importance sampling. - Assegura que mais partículas de luz sejam disparadas de emissores brilhantes em vez de uma distribuição uniforme ILUMINAÇÃO E FOTOREALISMO 9 BI-DIRECTIONAL PATH TRACING Importance Sampling - É uma técnica matemática que permite que a convergência do algoritmo de Monte Carlo seja mais rápida (aumento da eficiência). - Existe uma atribuição de pesos diferenciados (importância) às amostras com o objectivo de aumentar a contribuição para o integral - maior amostragem nos valores que contribuem mais - [Smits et al.92], introduziu o conceito de Importance Sampling optimizando o algoritmo de radiosidade (radiosidade progressiva). - No algoritmo proposto é disparada luz das fontes de luz e importância do viewpoint ILUMINAÇÃO E FOTOREALISMO 10 BI-DIRECTIONAL PATH TRACING pdfs das direcções e pontos iniciais -Percurso da luz: pdf ( x, x ) Le ( x, x ) x N x L - Le (x,Θx) – Radiância auto-emitida do ponto x na direcção Θx L A x Le ( x, x ) x N x d x d x - L – factor de normalização da pdf ILUMINAÇÃO E FOTOREALISMO 11 BI-DIRECTIONAL PATH TRACING pdfs das direcções e pontos iniciais - Percurso do olho: pdf ( y, y ) g ( y, y ) y N y G - g(y,Θy)– Função que atribui o valor 1 aos pontos e direcções (y,Θy) que contribuem para o fluxo e 0 caso contrário. G A y g ( y, y ) y N y d y d y - G – factor de normalização da pdf ILUMINAÇÃO E FOTOREALISMO 12 BI-DIRECTIONAL PATH TRACING Atribuição das restantes direcções e pontos - Direcções e pontos restantes: - Percurso do olho: Θyj+1 , yj+2 - Percurso da luz: Θxi+1 , xi+1 - Recorre-se mais uma vez às pdfs - baseadas também no princípio de importance sampling. - São designadas por pdf subcriticas (spdf), porque não integram a 1. - técnica designada por Russian roulette. - evita percursos infinitos garantindo que a recursão termina. ILUMINAÇÃO E FOTOREALISMO 13 BI-DIRECTIONAL PATH TRACING pdfs das restantes direcções e pontos - Percurso da luz: pdf () f r ( xi1 , xi , ) x N x i 1 f r ( x, in , out ) Bi-directional reflection distribution function (BRDF) ILUMINAÇÃO E FOTOREALISMO 14 BI-DIRECTIONAL PATH TRACING pdfs das restantes direcções e pontos - Percurso do olho: pdf () f r ( xi 1 , , y j ) y N y j ILUMINAÇÃO E FOTOREALISMO 15 BI-DIRECTIONAL PATH TRACING Estimativa primária do fluxo - Todos os pontos dos percursos traçados dos raios de luz e do olho são conectados - De acordo com técnica de Importance Sampling: Nl Ne wij Cij i 0 j 0 - Os factores <Cij> são estimativas do fluxo encontrado por i reflecções no percurso da luz e j reflecções no percurso do olho ILUMINAÇÃO E FOTOREALISMO 16 BI-DIRECTIONAL PATH TRACING Estimativa primária do fluxo - Existem 3 casos distintos: - i=0, j=0 fonte de luz vista directamente pelo observador; i=0, j>0 contribuições que chegam ao olho através do percurso do olho; i>0, j>0 contribuições que chegam ao olho através do percurso do olho e do percurso da luz; ILUMINAÇÃO E FOTOREALISMO 17 BI-DIRECTIONAL PATH TRACING Estimativa do fluxo (Caso i=0,j=0) - Estimativa do fluxo recebido por uma fonte de luz directamente vista através do pixel em consideração: C00 G Le ( y0 , y0 ) ILUMINAÇÃO E FOTOREALISMO 18 BI-DIRECTIONAL PATH TRACING Estimativa do fluxo (Caso i=0,j>0) - Estimativa do fluxo que chega ao olho vindo de uma fonte de luz através do percurso do olho C0 j L'G Le ( x0 , x0 y j1 ) f r ( y j 1 , x0 y j1 , y j1 ) x 0 y j1 N x 0 x 0 y j1 N y j 1 ILUMINAÇÃO E FOTOREALISMO x0 y j 1 2 v( x0 , y j 1 ) x y Direcção do ponto x para o ponto y v ( x, y ) Visibilidade 19 BI-DIRECTIONAL PATH TRACING Estimativa do fluxo (Caso i>0,j>0) - Estimativa do fluxo que chega ao olho vindo de uma fonte de luz, com i reflecções no percurso da luz e j reflecções no percurso do olho Cij L G f r ( xi , xi1 , xi y j1 ) f r ( y j 1 , xi y j1 , y j1 ) xi y j1 N xi xi y j1 N y j 1 ILUMINAÇÃO E FOTOREALISMO xi y j 1 2 v( xi , y j 1 ) x y Direcção do ponto x para o ponto y v ( x, y ) Visibilidade 20 BI-DIRECTIONAL PATH TRACING Atribuição de pesos - Como seleccionar os pesos wij das contribuições Cij ? - Condição: o somatório dos pesos para a estimativas dos fluxos que chegam ao olho tem de ser igual a 1 N w , N i 1 i 0 i - Opção que equivale ao algoritmo path tracing clássico wij 1, para i 0 wij 0, para i 0 ILUMINAÇÃO E FOTOREALISMO 21 BI-DIRECTIONAL PATH TRACING Atribuição de pesos - Alternativa: - Para superfícies especulares atribui-se mais peso ao percurso do olho - Para superfícies difusas a contribuições do percurso da luz são mais importantes - O peso W j é proporcional ao grau de especularidade da superfície no ponto y j no percurso do olho ILUMINAÇÃO E FOTOREALISMO 22 BI-DIRECTIONAL PATH TRACING Estimativa secundária do fluxo - Problema com primeira estimativa do fluxo - Grande variância (imagens com turbulência aleatória) -Solução: usar estimativa secundária - Média de várias estimativas primárias para cada pixel ILUMINAÇÃO E FOTOREALISMO 23 BI-DIRECTIONAL PATH TRACING Implementação e resultados - Com recurso a rotinas Rayshade - brdf’s com modelo de Phong - Outro exemplo: RenderPark (linux) ILUMINAÇÃO E FOTOREALISMO 24 BI-DIRECTIONAL PATH TRACING Referências - Lafortune, E., Willems, Y.D.: Bi-directional Path-Tracing, Compugraphics, 1993 - Eric Veach, Leonidas J. Guibas: Bidirectional Estimators for Light Transport, Proceedings of Fifth Eurographics Workshop on Rendering, 1994 ILUMINAÇÃO E FOTOREALISMO 25 BI-DIRECTIONAL PATH TRACING Renderings ILUMINAÇÃO E FOTOREALISMO 26 BI-DIRECTIONAL PATH TRACING Renderings ILUMINAÇÃO E FOTOREALISMO 27