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 , xP
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
Download

ppt