Iluminação e FotoRealismo
Transcript of Iluminação e FotoRealismo
Iluminação e FotoRealismo:Radiosidade
Luís Paulo Peixoto dos Santos
http://gec.di.uminho.pt/mcgav/ifr
Iluminação e FotoRealismo 22003/04
Premissas• Todas as interacções da luz com os objectos são difusas
sxLxL Ω∈Θ∀=Θ→ ),()(
• Expressa em termos de radiosidade (W/m2)
)(),cos()(),cos()()( xLNxLNxLxBss
xx πωω =∂Θ=∂Θ= ∫∫ΩΩ
ΘΘ
r
• A BRDF fr(x,Θ↔Ψ) é independente das direcções
πρ )()(),( xxfxf d
rr ==Ψ↔Θ
onde ρd(x) é o coeficiente de reflexão difuso (dependente de λ)
Iluminação e FotoRealismo 32003/04
Premissas• A geometria é subdividida em patches Pi (geralmente poligonais)
• A qualidade da solução final depende da granularidade da subdivisãoem 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 42003/04
Premissas
• O coeficiente de reflexão difuso é constante para cada patch
iPxix ∈∀= ,)( ρρ
• A radiosidade é constante para cada patch
∫ ∂=i
iA Ai
i xBA
B )(1
Iluminação e FotoRealismo 52003/04
Formulação matemática• A equação de rendering cada ponto x de um patch i é :
∫ ∂+=A Aeii y
yxGyxVyBxxBxB ),(),()()()()(πρ
• Integrando para a área de Pi (Ai) e assumindo que B e ρ são constantes para Pi
∫ ∫ ∂∂+=i
iyA AA Ai
dieiiiyxGyxVyB
AABAB
πρ ),(),()(1
• Convertendo o integral da área de todos os outros patches num somatório dasvárias áreas dos patches Pj
∑ ∫ ∫ ∂∂+=j
A AA Ai
dieiiii
ij
j
yxGyxVyBA
ABABπ
ρ ),(),()(1
Iluminação e FotoRealismo 62003/04
Formulação matemática• Assumindo que a radiosidade é constante ao longo de cada patch Pj
∑ ∫ ∫ ∂∂+=j
A AA Ai
jjdieiiii
ij
j
yxGyxVA
ABABABπ
ρ ),(),(1
Obtemos a equação da radiosidade
∑+=j
jii
jjdeii FAA
BBB ρ
• Dividindo dos 2 lados por Ai
∑ ∫ ∫ ∂∂+=j
A AA Aii
jjdeii
ii
jj
yxGyxVAA
ABBB
πρ ),(),(1
Iluminação e FotoRealismo 72003/04
Formulação matemática
∑+=j
jii
jjdeii FAA
BBB ρ
Fji é designado por form-factor e indica a fracção de radiosidade emitida por Pj queincide em Pi. Os form factors exibem a seguinte propriedade:
i
jjiijiijjji A
AFFAFAF =⇔=
logo:
∑+=j
ijjdeii FBBB ρ
Iluminação e FotoRealismo 82003/04
Form-Factors - complexidade
ii j
ii j
AAjA A
jiji
iij
AAjA A
jiji
iij
ryxV
AF
yxGyxVA
F
∂∂=
∂∂=
∫ ∫
∫ ∫
2
)cos()cos(),(1
),(),(1
πθθ
π
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 92003/04
Sistema de equações
∑+=j
ijjdeii FBBB ρ
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
⋅⋅=
⋅⋅
−⋅⋅−−⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
−⋅⋅−−−⋅⋅−−
en
e
e
nnnnnnnn
n
n
B
BB
B
BB
FFF
FFFFFF
2
1
2
1
21
22222212
11121111
1
11
ρρρ
ρρρρρρ
Iluminação e FotoRealismo 102003/04
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 Pie Pj não são mutuamente visíveis
• A matriz de form-factors é uma matriz dispersa que pode ser resolvidanumericamente 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 112003/04
Rendering• As radiosidades são calculados no espaço dos objectos.
• O hardware gráfico pode ser usado para interpolar a radiosidade aolongo de cada patch (Gouraud shading) desde que as radiosidadesnos vértices sejam conhecidas. Sintetiza-se assimuma imagem a partirde qualquer ponto de vista.
Ba Bb
Bc Bd
4dcba BBBB +++
Iluminação e FotoRealismo 122003/04
Resolução do sistema - gathering• O método de Gauss-Seidel computa aproximações Bi
t a partir daaproximação Bi
t-1. A resolução é feita linha a linha calculando um Bit em cada
iteração.• Bi
0 = Bei, sendo 0 para todos os patches não auto-emissores.
⋅
⋅
⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
+
⋅
⋅=
⋅
⋅
−
−
−
1
1
11
21
11
tn
ti
t
iniiiii
en
ei
e
tn
ti
t
B
B
B
FFF
B
B
B
B
B
B
ρρρ
• 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 Bi
t
Iluminação e FotoRealismo 132003/04
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 umaaproximaçã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 142003/04
Radiosidade Progressiva• Em lugar de calcular a aproximação Bi
t devida a todos os patches Pjcom radiosidade Bj
t-1 vamos calcular a radiosidade Bjt de todos os
patches Pj devida à radiosidade Bit-1 do patch Pi
j
iijijjiijij AAFBFBBB ρρ == a devida
• Em cada iteração podemos calcular a variação de radiosidade ∆Bjpara todos os Pj devida ao patch Pi.
• Bjt+1 = Bj
t + ∆Bj
• Para cada iteração apenas é necessário calcular n form-factors Fij para o patch i cuja radiosidade Bi
t está a ser propagada (shooting)
Iluminação e FotoRealismo 152003/04
Radiosidade progressiva
⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
⋅⋅
⋅⋅
+
⋅⋅=
⋅⋅
+
+
+
nin
i
i
ti
tn
t
t
tn
t
t
F
FF
B
B
BB
B
BB
ρ
ρρ
221
11
2
1
1
12
11
44 344 214434421jj B
j j
iijj
ti
tj
B
jjij
ti
tj
tj A
AFBBFBBB
∆∆
+ ∑∑ +=+= )()(1 ρρ
Iluminação e FotoRealismo 162003/04
Radiosidade Progressiva
• Inicialmente Bi0=Bei
0. Qual deve ser a ordem pela qual se seleccionamos 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 172003/04
Radiosidade Progressiva
Geometria da cena
1 iteração 2 iterações
3 iterações 16 iterações
Iluminação e FotoRealismo 182003/04
Radiosidade Progressiva
Iluminação e FotoRealismo 192003/04
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ácterdiscreto dos patches pode ser muito visível
• A grelha de patches pode ser definida de forma estática, antes daexecuçã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 202003/04
Refinamento da grelha de patches
Iluminação e FotoRealismo 212003/04
Refinamento da grelha de patches
Iluminação e FotoRealismo 222003/04
Cálculo dos form-factors
• Fij representa a fracção daradiosidade emitida por Pj queincide em Pi.
• O cálculo analítico dos form-factors é dispendioso, recorrendo-se a soluçõesgeométricas.
ii j
AAjA A
jiji
iij r
yxVA
F ∂∂= ∫ ∫ 2
)cos()cos(),(1
πθθ
θi
θj
dAj
dAi
Patch i
Patch jr
Iluminação e FotoRealismo 232003/04
Form-Factors: HemiCubo
Analogia de Nusselt -O polígono, a suaprojecção no hemicubo e a sua projecção nahemisfera têm todos o mesmo form-factor.
Esta analogia permiteusar projecções dos patches num hemicubopara calcular form factors
Iluminação e FotoRealismo 242003/04
Form-Factors: Hemicubo
∑∆=q
qij FF
“pixel” A com área ∆A
A área ∆A é igual para todos os elementos do hemicubo. ∆Fq para cada elemento é dada por:
Patch j
Patch i
Ar
F jiq ∆=∆ 2
coscosπ
θθ Para todos os Fqonde Pj projecta
Iluminação e FotoRealismo 252003/04
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 todosos outros estarão ocludidos por este.
Iluminação e FotoRealismo 262003/04
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
)2sin(2sin
4/,...,1,0),(],2/,0[1,...,1,0),(],2,0[
/2
2 θπθθϕ
θθπθϕϕπϕ
πθϕ
kF
Akmm
kllk
lm =∆
∆∆=∆=∆=∈
−=∆=∈=∆=∆
∆φφ
∆θ
θ
Iluminação e FotoRealismo 272003/04
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
∆φφ
∆θ
θ
∑∆=q
lmij FF
• A opção pelo algoritmo do hemicubo ou pelo ray tracingdepende do desempenho dos algoritmos de projecção e ray tracing utilizados.
Iluminação e FotoRealismo 282003/04
Radiosidade: Imagens
Iluminação e FotoRealismo 292003/04
Radiosidade: Imagens
Iluminação e FotoRealismo 302003/04
Radiosidade: Imagens
‘color bleeding’ – a parede brancaassume um tom avermelhado naszonas fortementeiluminadas devidoàs interreflexõesdifusas.Este efeito é de difícil modelaçãocom ray tracing.