Iluminação e FotoRealismo: Radiosidade Luís Paulo Peixoto dos Santos http://gec.di.uminho.pt/mcgav/ifr Premissas • Todas as interacções da luz com os objectos são difusas L( x ) L( x),s • Expressa em termos de radiosidade (W/m2) B( x) L( x) cos( N x , ) L( x) cos( N x , ) L( x) s s • A BRDF fr(x,↔) é independente das direcções d ( x) f r ( x, ) f r ( x ) onde ρd(x) é o coeficiente de reflexão difuso (dependente de λ) Iluminação e FotoRealismo 2003/04 2 Premissas • A geometria é subdividida em patches Pi (geralmente poligonais) • A qualidade da solução final depende da granularidade da subdivisão em patches • Esta pode ser decidida antes da execução (e.g. radiosidade hierárquica) ou refinada em tempo de execução Iluminação e FotoRealismo 2003/04 3 Premissas • O coeficiente de reflexão difuso é constante para cada patch ( x) i , xP i • A radiosidade é constante para cada patch 1 Bi Ai Ai B( x) Ai Iluminação e FotoRealismo 2003/04 4 Formulação matemática • A equação de rendering cada ponto x de um patch i é : ( x) B( y )V ( x, y )G ( x, y ) A A Bi ( x) Bei ( x) • Integrando para a área de Pi (Ai) e assumindo que B e ρ são constantes para Pi 1 Bi Ai Bei Ai d Ai • y B( y ) Ai A V ( x, y)G( x, y) Ay Ai Convertendo o integral da área de todos os outros patches num somatório das várias áreas dos patches Pj 1 Bi Ai Bei Ai d j Ai V ( x, y)G( x, y) A j Ai Ai Aj B( y) Iluminação e FotoRealismo 2003/04 5 Formulação matemática • Assumindo que a radiosidade é constante ao longo de cada patch Pj 1 Bi Ai Bei Ai d B j Aj Ai j • Ai V ( x, y)G( x, y) Aj A j Ai Dividindo dos 2 lados por Ai Bi Bei d B j j Aj Ai Ai Aj 1 V ( x, y)G( x, y) Aj Ai Ai Obtemos a equação da radiosidade Bi Bei d B j j Aj Ai Fji Iluminação e FotoRealismo 2003/04 6 Formulação matemática Bi Bei d B j j Aj Ai Fji Fji é designado por form-factor e indica a fracção de radiosidade emitida por Pj que incide em Pi. Os form factors exibem a seguinte propriedade: Fji Aj Fij Ai Fij Fji Aj Ai logo: Bi Bei d B j Fij j Iluminação e FotoRealismo 2003/04 7 Form-Factors - complexidade 1 Fij Ai 1 Fij Ai Ai Aj Ai Aj V ( xi , y j )G ( xi , y j ) Aj Ai V ( xi , y j ) cos( i ) cos( j ) r 2 Aj Ai O form factor é um integral duplo de difícil resolução analítica. Indica a quantidade de radiosidade emitida pelo patch j que incide no patch i. O seu valor depende da geometria: visibilidade mútua, distância, orientação e área dos patches. O cálculo dos form-factors tem uma complexidade O(n2), podendo rapidamente tornar-se a componente mais dispendiosa do algoritmo. Iluminação e FotoRealismo 2003/04 8 Sistema de equações Bi Bei d B j Fij j Num ambiente fechado existe uma solução para cada Bi que pode ser obtida resolvendo um sistema de n equações com n2 form-factors 1 1 F11 1 F12 F 1 2 F22 2 21 n Fn1 n Fn 2 1 F1n B1 Be1 2 F2 n B2 Be 2 1 n Fnn Bn Ben Iluminação e FotoRealismo 2003/04 9 Propriedades do sistema de equações • Os valores Bei são diferentes de 0 apenas para os patches correspondentes a fontes de luz • Fii é igual a 0 para patches planares ou convexos. O patch não emite radiosidade sobre si mesmo. • Em ambientes complexos um grande número de Fij serão 0 pois os patches Pi e Pj não são mutuamente visíveis • A matriz de form-factors é uma matriz dispersa que pode ser resolvida numericamente usando o método de Gauss-Seidel • Bi, Bei e ρi são dependentes do comprimento de onda, implicando a resolução de 3 sistemas. • Os form-factors num meio participativo também são dependentes do comprimento de onda. Este aspecto é geralmente ignorado devido à complexidade do cálculo. Iluminação e FotoRealismo 2003/04 10 Rendering • As radiosidades são calculados no espaço dos objectos. • O hardware gráfico pode ser usado para interpolar a radiosidade ao longo de cada patch (Gouraud shading) desde que as radiosidades nos vértices sejam conhecidas. Sintetiza-se assimuma imagem a partir de qualquer ponto de vista. Ba Bb Bc Bd Ba Bb Bc Bd 4 Iluminação e FotoRealismo 2003/04 11 Resolução do sistema - gathering • • O método de Gauss-Seidel computa aproximações Bit a partir da aproximação Bit-1. A resolução é feita linha a linha calculando um Bit em cada iteração. Bi0 = Bei, sendo 0 para todos os patches não auto-emissores. B1t Be1 t Bi Bei i Fi1 B t Ben n • • • i Fi 2 B1t 1 i Fin Bit 1 Bnt 1 Implica o cálculo inicial de todos os n2 form-factors. Cada patch Pi recolhe (gathers) radiosidade de todos os outros patches. Cada avaliação da matriz calcula apenas um Bit Iluminação e FotoRealismo 2003/04 12 Radiosidade Progressiva • A principal desvantagem do método anterior é que cada iteração aproxima a iluminação de apenas um patch • Implica também o cálculo inicial de todos os n2 form-factors • O objectivo da radiosidade progressiva é conseguir rapidamente uma aproximação à radiosidade de todos os patches • Esta solução é depois refinada com mais iterações • O refinamento progressivo é conseguido reordenando a forma como a radiosidade é calculada Iluminação e FotoRealismo 2003/04 13 Radiosidade Progressiva • Em lugar de calcular a aproximação Bit devida a todos os patches Pj com radiosidade Bjt-1 vamos calcular a radiosidade Bjt de todos os patches Pj devida à radiosidade Bit-1 do patch Pi Ai B j devida a Bi j Bi Fji j Bi Fij Aj • Em cada iteração podemos calcular a variação de radiosidade ΔBj para todos os Pj devida ao patch Pi. • Bjt+1 = Bjt + ΔBj • Para cada iteração apenas é necessário calcular n form-factors Fij para o patch i cuja radiosidade Bit está a ser propagada (shooting) Iluminação e FotoRealismo 2003/04 14 Radiosidade progressiva B1t 1 t 1 B2 B t 1 n B t 1 j B1t t B2 t Bi t Bn 1 F1i 21 F2i n Fni Ai B B ( j F ji ) B B ( j Fij ) Aj j j t j t i t j B j t i B j Iluminação e FotoRealismo 2003/04 15 Radiosidade Progressiva • Inicialmente Bi0=Bei0. Qual deve ser a ordem pela qual se seleccionam os patches Pi que vão propagar a sua radiosidade? • Estes devem ser ordenados por Bit. O patch Pi com maior radiosidade Bit deve ser o primeiro a propagar a sua radiosidade para que a solução convirja o mais rapidamente possível. • O processo para quando os ΔBj forem menores que um determinado limite. Iluminação e FotoRealismo 2003/04 16 Radiosidade Progressiva 1 iteração 2 iterações 3 iterações 16 iterações Geometria da cena Iluminação e FotoRealismo 2003/04 17 Radiosidade Progressiva Iluminação e FotoRealismo 2003/04 18 Refinamento da grelha de patches • A qualidade da solução depende da granularidade da grelha de patches • Em zonas de alto gradiente (e.g. limites das sombras) o carácter discreto dos patches pode ser muito visível • A grelha de patches pode ser definida de forma estática, antes da execução do algoritmo (e.g. radiosidade hierárquica [Hanrahan et al.91]) • ou refinada durante a execução do próprio algoritmo, e.g., discontinuity meshing Iluminação e FotoRealismo 2003/04 19 Refinamento da grelha de patches Iluminação e FotoRealismo 2003/04 20 Refinamento da grelha de patches Iluminação e FotoRealismo 2003/04 21 Cálculo dos form-factors 1 Fij Ai Ai Aj V ( xi , y j ) cos( i ) cos( j ) r 2 Aj Ai • Fij representa a fracção da radiosidade emitida por Pj que incide em Pi. • O cálculo analítico dos formfactors é dispendioso, recorrendo-se a soluções geométricas. θj θi r dAj Patch j dAi Patch i Iluminação e FotoRealismo 2003/04 22 Form-Factors: HemiCubo Analogia de Nusselt O polígono, a sua projecção no hemicubo e a sua projecção na hemisfera têm todos o mesmo form-factor. Esta analogia permite usar projecções dos patches num hemicubo para calcular form factors Iluminação e FotoRealismo 2003/04 23 Form-Factors: Hemicubo “pixel” A com área ΔA A área ΔA é igual para todos os elementos do hemicubo. ΔFq para cada elemento é dada por: Fq cos i cos j r 2 A Patch j Patch i Fij Fq q Para todos os Fq onde Pj projecta Iluminação e FotoRealismo 2003/04 24 Form-Factors: Hemicubo • Para cada patch i todos os patches j devem ser projectados no hemicubo. • Vários patches j projectam no mesmo “pixel” do hemicubo • O algoritmo deve armazenar o ID do patch que projecta no “pixel” e a distância entre Pi e Pj (à semelhança de um Z-buffer) • Para cada “pixel” apenas o patch Pj mais próximo interessa, pois todos os outros estarão ocludidos por este. Iluminação e FotoRealismo 2003/04 25 Form-Factors: Ray Tracing • Em vez de usar um hemicubo pode ser usada uma hemisfera de raio 1 centrada em Pi, com a superfície dividida em áreas elementares. • Cada área elementar corresponde aos ângulos (Δφ, Δθ) com 2 / k [0,2 ], l ( ), l 0,1,...,k 1 [0, / 2], m( ), m 0,1,...,k / 4 A sin 2 Flm 2 sin(2 ) k Δθ θ φ Δφ Iluminação e FotoRealismo 2003/04 26 Form-Factors: Ray Tracing • Cada área elementar (l,m) dá origem a um raio que determina qual o patch Pj visível ao longo daquela direcção • O form-factor Fij é dado pela soma dos ΔFlm Fij Flm Δθ q • A opção pelo algoritmo do hemicubo ou pelo ray tracing depende do desempenho dos algoritmos de projecção e ray tracing utilizados. θ φ Δφ Iluminação e FotoRealismo 2003/04 27 Radiosidade: Imagens Iluminação e FotoRealismo 2003/04 28 Radiosidade: Imagens Iluminação e FotoRealismo 2003/04 29 Radiosidade: Imagens ‘color bleeding’ – a parede branca assume um tom avermelhado nas zonas fortemente iluminadas devido às interreflexões difusas. Este efeito é de difícil modelação com ray tracing. Iluminação e FotoRealismo 2003/04 30