http:// iluminação e fotorealismo ray tracing luís paulo peixoto dos santos
Post on 17-Apr-2015
105 Views
Preview:
TRANSCRIPT
http://www.di.uminho.pt/uce-cg/
Iluminação e FotoRealismo
Ray Tracing
Luís Paulo Peixoto dos Santos
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;
Iluminação e Fotorealismo 2007/082
ESPECÍFICAS :
Introdução
• O conceito de ray tracing foi introduzido na Computação Gráfica em 1980 por Whitted
• O termo ray tracing é usado livremente para designar uma infinidade de diferentes abordagens ao problema de rendering, desde que baseados no princípio de intersecção de uma semirecta (raio) com primitivas geométricas
• Esta sessão debruça-se sobre o algoritmo clássico de ray tracing conforme apresentado por Whitted, logo determinístico, e aborda algumas questões essenciais associadas com a sua funcionalidade, implementação e desempenho
Iluminação e Fotorealismo 2007/083
Ray casting: definição
• Ray casting:Determina qual o ponto y visível ao longo de um raio com origem em x e direcção ψ.
sendo A o conjunto de todos os objectos representados na cena.
Iluminação e Fotorealismo 2007/084
}0:min{
}:{),(
onintersecti
onintersecti
Atxttt
txyyxr
),( xry
x
Θ
y=r(x,Θ)
Ray Tracing: Introdução
• Os diferentes algoritmos de rendering usualmente designados por ray tracing diferem uns dos outros essencialmente no número de raios disparados e nas direcções ψ seleccionadas para amostrar
• Estes dois factores têm um efeito fundamental na qualidade da imagem gerada, nos fenómenos de transporte de luz simulados e no tempo de execução
Iluminação e Fotorealismo 2007/085
Plano da imagem
p
Ray Tracing: Princípios
Iluminação e Fotorealismo 2007/086
Observador
x
Cena
Fonte de luz
L(x→Obs)
Raio Primário
Os raios primários determinam quais os objectos visíveis directamente pelo observador.
Ray Tracing: Algoritmo
// ciclo principal
computeImage (viewPoint) {
para cada pixel p {
raio = GerarRaio (viewPoint, p, PRIMARIO)
radiance[p] = rad (raio)
}
}
rad (raio) {
objecto, x = trace (raio)
computeRad (x, raio, objecto)
}
Iluminação e Fotorealismo 2007/087
Ray Tracing: Algoritmo
// intersecção mais próxima da origem do raio
trace (raio) { // p = r (origem, direcção)tmin = Max_distPara todos os objectos da cena {
x = intersect (raio, objecto)dist = distancia (raio.origem, x)
if (dist < tmin) {tmin = distp = x obj = objecto }
}return (obj, p)
}
Iluminação e Fotorealismo 2007/088
Ray Tracing: Raios Primários
• Os raios primários determinam quais os pontos visíveis directamente pelo observador. Diz-se que propagam importância, pois estes pontos passam a ser importantes para a imagem.
• O algoritmo pode parar por aqui atribuindo uma cor aos pontos:– Pseudo-cor – visualização científica– Em função da posição das fontes de luz sem verificar se são visíveis:
iluminação local• Inexistência de sombras• As placas gráficas fazem isto, usando no entanto o algoritmo de profundidade para
determinar a visibilidade (depth buffer ou Z-buffer)
Iluminação e Fotorealismo 2007/089
Ray Tracing: Direcções a considerar
Iluminação e Fotorealismo 2007/0810
• Uma vez encontrado o ponto x, que projecta directamente no pixel p, é necessário proceder à sua iluminação (shading), isto é, ao cálculo de
s
xre NxLxfxLxL ),cos()(),()()(
• Sabendo que não é possível considerar todas as direcções da semi-esfera Ωs, quais deverão ser escolhidas para incluir no cálculo deste radiância?
Ray Tracing: Direcções a considerar
Iluminação e Fotorealismo 2007/0811
• Devem ser escolhidas as direcções que, com maior probabilidade, maiores contribuições dão para o valor final de L(x→)
s
xre NxLxfxLxL ),cos()(),()()(
• Quais são essas direcções?
– Direcções que maximizam a BRDF, isto é, aquelas para as quais é maior a radiância reflectida na direcção
– Direcções que maximizam L(x←), isto é, direcções de maior radiância incidente
– Direcções que maximizam o cosseno
Ray Tracing: Iluminação Directa
Iluminação e Fotorealismo 2007/0812
x
Ponto x determinado por um raio primário. Quais as direcções a considerar para fazer iluminar x, isto é, calcular L(x→)?
Modelo por:Anat GrynbergGreg Ward
Ray Tracing: Iluminação Directa
Iluminação e Fotorealismo 2007/0813
Radiâncias incidentes em x ao longo de toda a hemisfera Ωs.
Parece claro que a radiância incidente é maximizada na direcção das fontes de luz.
Conclusão: as direcções da hemisfera correspondentes a fontes de luz devem ser amostradas, pois a radiância incidente em x ao longo destas direcções é, com grande probabilidade, elevada.
Ray Tracing: Iluminação Directa
Iluminação e Fotorealismo 2007/0814
• A radiância reflectida pode ser dividida em 2 integrais:
– iluminação directa oriunda das fontes de luz
– iluminação indirecta, oriunda de todas as outras direcções
)()()( xLxLxL indirectadirectar
Ray Tracing: Iluminação Directa
• A maioria dos ray tracers clássicos permite aproximar as fontes de luz como fontes ideais: pontos que emitem com igual intensidade em todas as direcções.
– Um raio disparado na direcção de x para Li basta para determinar se a fonte pontual Li é visível a partir do ponto x (chamemos a esta direcção ψi)
• A BRDF para este ponto e este par de direcções, fr(x,Θ ↔ ψi), indica a percentagem de radiância incidente ao longo de ψi que é reflectida na direcção Θ.
– Whitted sugere que o modelo de iluminação local seja o de Lambert, com um coeficiente de reflexão difusa directa para cada um dos canais: kdR, kdG, kdB.
– O modelo de Phong permite adicionar um reflexo especular à iluminação directa.
Iluminação e Fotorealismo 2007/0815
Ray Tracing: Iluminação Directa
Iluminação e Fotorealismo 2007/0816
• Lambert para l fontes de luz:
• Phong para l fontes de luz:
• No caso geral
),cos()(),()( ,,, ixi
iieiddirecta NyLyxVkxL
),cos()(),(),(cos)( ,,, ixi
iiein
sddirecta NyLyxVRkkxL s
),cos()(),(),()( ,, ixi
iieiirdirecta NyLyxVxfxL
Ray Tracing: Iluminação Directa
• V(x,y) é a função de visibilidade:
• V(x,y) é avaliada disparando um raio de x para ySe nenhum objecto for intersectado por este raio a uma distância da origem menor do que a distância da fonte de luz então V(x,y)=1, senão V(x,y)=0
• Estes raios são designados por shadow rays ou shadow feelers
Iluminação e Fotorealismo 2007/0817
x)departir a visívelé nãoy se (i.e.,
x)departir a visíveléy se (i.e.,
),( se 0
),( se 1),(
yxr
yxryxV
Ray Tracing: Iluminação Directa
Iluminação e Fotorealismo 2007/0818
Plano da imagem
p
Observador
x
Cena
Fonte de luz
L(x→Obs)
Raio Primário
Fonte de luz
Ray Tracing: Iluminação Directa
computeRad (x, raio, objecto) { radiance = directIllum (x, raio.dir, objecto) return (radiance)}
directIllum (x, dir, objecto) {rad = 0;
para cada fonte de luz l {raio = GerarRaio (x, l, SHADOW)if (visibilidade (raio, l)) rad += brdf (x, dir, dir_l)* Ll * cos (Nx, dir_l)
}return (rad)
}
Iluminação e Fotorealismo 2007/0819
Ray Tracing: Iluminação Directa
// visibilidade da fonte de luz
visibilidade (raio,l) { // V(x,y)tmin = distancia (raio.origem,l)Para todos os objectos da cena {
p = intersect (raio, objecto)dist = distancia (raio.origem, p)if (dist < tmin)
return (0)}return 1
}
Iluminação e Fotorealismo 2007/0820
Ray Tracing: Iluminação Indirecta
Iluminação e Fotorealismo 2007/0821
),cos()),((),()( xrrindirecta NxrLxfxLs
Quais as direcções da hemisfera a considerar para a iluminação indirecta?Tipicamente aquelas que correspondem aos máximos da BRDF.
Whitted sugere que se amostre as direcções especulares, pois estas correspondem a máximos da BRDF
• reflexão especular : aproximada pela direcção R e quantificada pelo coeficiente Ks
• transmissão especular : aproximada pela direcção T e quantificada pelo coeficiente Kt
Ray Tracing: Iluminação Indirecta
Iluminação e Fotorealismo 2007/0822
• Reflexão especular
• Transmissão especular(lei de Snell)
θi
θt
θrV
N
R
T
VVNNR
)(2
NNVV
T
NV
t
tt
t
i
i
t
))(
(cos
))(1(1sin1cos
sin
sin
222
Ray Tracing: Iluminação Indirecta
Iluminação e Fotorealismo 2007/0823
),cos()),((),()( xrrindirecta NxrLxfxLs
É aproximada apenas pelas direcções R e T.A BRDF é aproximada pelas constantes:
– ksg(λ) – coeficiente de reflexão especular global
– ktg(λ) – coeficiente de transmissão especular global
),cos()),(()(
),cos()),(()()(
,
,,
TNTTxrLk
RNRRxrLkxL
xrtg
xrsgindirecta
Ray Tracing: Iluminação Indirecta
• Para calcular a radiância incidente em x ao longo de cada uma das direcções R e T devem ser enviados raios secundários ao longo de cada uma destas direcções.
• O processamento dos raios secundários é em tudo equivalente aos raios primários, fazendo do ray tracing um algoritmo recursivo que gera uma árvore de raios.
• É necessário um critério de paragem para que a árvore não tenha profundidade infinita:
– Terminar ao atingir uma determinada profundidade– Terminar quando a contribuição de um raio for inferior a um determinado limite– Decidir de forma estocástica (Roleta Russa)
Iluminação e Fotorealismo 2007/0824
Ray Tracing: Iluminação Indirecta
computeRad (x, raio, objecto, depth) { rad = directIllum (x, raio.dir, objecto)
if (depth < MAX_DEPTH) {
if (ksg > 0) { // reflexão especularraioR = GerarRaio (x, Rg, REFLEXAO)objR, p = trace (raioR)rad += ksg*cos(N,raioR)*computeRad (p,raioR,objR, depth++)}
if (ktg > 0) { // transmissão especularraioT = GerarRaio (x, Tg, TRANSMISSAO)objT, p = trace (raioT)rad += ktg*cos(N,raioT)*computeRad (p,raioT,objT, depth++)}
} return (rad) }
Iluminação e Fotorealismo 2007/0825
Ray Tracing: Iluminação Indirecta
Iluminação e Fotorealismo 2007/0826
Ray Tracing: Complexidade
• O algoritmo usado para determinar a visibilidade ao longo de um raio requer que cada raio seja intersectado com TODAS as primitivas geométricas da cena.
• O tempo para cada raio é, portanto, linear com o número de primitivas N:
• No entanto, cada raio não passa na proximidade da maioria das primitivas
Iluminação e Fotorealismo 2007/0827
)(ray NT
Ray Tracing: Estruturas de Aceleração
• O objectivo das estruturas de aceleração é diminuir o número de intersecções por raio.
• Isto é conseguido:1. Permitindo a rejeição rápida e simultânea de grupos de primitivas2. Se possível, ordenando o processo de procura (intersecções), tal que as primitivas
mais próximas da origem do raio sejam processadas primeiro, evitando processar as mais distantes se for encontrada uma intersecção
• Abordagens:– SUBDIVISÃO DO ESPAÇO: grelhas regulares, octrees, kd-tree
Permitem aplicar os critérios 1 e 2
– SUBDIVISÃO DOS OBJECTOS: bounding volume hierarchy (BVH)Permitem aplicar apenas o critério 1
Iluminação e Fotorealismo 2007/0828
Ray Tracing: Grelha Regular
• O espaço 3D é particionado impondo uma grelha regular que o subdivide em voxels (volume elements). Todos os voxels têm a mesma dimensão.
Iluminação e Fotorealismo 2007/0829
• Construção muito rápida•Travessia pouco eficiente devido à má distribuição das primitivas pelos voxels
Ray Tracing: Octree
• O espaço é hierarquicamente e adaptativamente subdividido em 8 voxels
Iluminação e Fotorealismo 2007/0830
• Compromisso entre tempo de construção e eficiência da travessia
Ray Tracing: Kd-tree
• O espaço é subdividido em 2 por um plano. Cada um dos sub-espaços resultantes é depois subdividido da mesma forma, até atingir um determinado critério de paragem
Iluminação e Fotorealismo 2007/0831
• Travessia mais eficiente se o critério de subdivisão for apropriado (e.g., SAH)• Quanto mais sofisticado for o critério de subdivisão maior o tempo necessário para a construir
Ray Tracing: Bounding Volume Hierarchy
• Os objectos são agrupados dentro de Bounding Volumes. Cada um destes grupos é depois hierarquicamente subdividido por outros volumes
Iluminação e Fotorealismo 2007/0832
• Não ordena o espaço• Construção semelhante à kd-tree• Travessia ligeiramente inferior à kd-tree
Ray Tracing: Geometria Dinâmica
• Qual a estrutura mais indicada se a geometria se move?
Iluminação e Fotorealismo 2007/0833
• Reaproveitamento da hierarquia (topologia da árvore), com ajustamento das dimensões dos volumes
• Com grandes deformações da geometria a hierarquia inicial deixa de ser apropriada para a distribuição das primitivas, exigindo uma reconstrução completa da BVH
Ray Tracing: Complexidade
• A complexidade do ray tracing com uma estrura de aceleração apropriada é logarítmica com o número de primitivas geométricas N:
• O tempo de construção depende do critério de subdivisão do espaço / agrupamento das primitivas
• Critérios sofisticados (e.g., SAH) resultam em travessias eficientes,mas exigem tempos de construção muito elevados
• O tempo de reconstrução/reajustamento de uma estrutura de aceleração pode impedir a sua utilização em contextos interactivos.
Iluminação e Fotorealismo 2007/0834
)(logray NT
Ray Tracing: Aliasing
• O resultado de um ray tracer é uma grelha bidimensional discreta com valores de radiância incidente no plano da imagem
• Mas a radiância incidente é na realidade uma função contínua definida sobre este plano
• A estratégia de amostragem (distribuição) e a sua densidade (frequência) afectam a qualidade do resultado
Iluminação e Fotorealismo 2007/0835
Se a distribuição da amostragem é uniforme e a frequência é inadequada são introduzidos artefactos na imagem, fenómeno vulgarmente designado por aliasing
Teoria da amostragem
• Selecção de pontos de amostragem de funções contínuas eutilização das amostras para construir novas funções semelhantes à original
Iluminação e Fotorealismo 2007/0836
)(xf * )(xIIIT
* )( xr
)(~xf
)(xf - função contínua
fDx' - Posição da amostra )'(xf - amostra)(xr - filtro reconstrução )(
~xf - função reconstruída
Limite de Nyquist
Iluminação e Fotorealismo 2007/0837
Limite de NyquistSe a frequência de amostragem, fs, é maior ou igual ao dobro da maior frequência presente no sinal
(função contínua), fmax, então é possível reconstruir perfeitamente o sinal original.
)()(~
então *2 se max xfxfff s
)(xf * )(xIIIT
* )( xr
)(~xf
Ray Tracing: Aliasing
Iluminação e Fotorealismo 2007/0838
• Um ray tracer amostra a radiância incidente no plano da imagem com uma dada frequência de amostragem (frequentemente determinada pela resolução do plano da imagem)
• Para que não surjam fenómenos de aliasing a frequência de amostragem deve ser maior ou igual ao limite de Nyquist
• Qualquer função que tenha descontinuidades não é limitada em banda, isto é, não tem uma frequência máxima
• As imagens têm descontinuidades (p. ex.: limites geométricos, contornos de sombras ou reflexões) logo não são limitadas em banda
• Os fenómenos de aliasing são portanto inevitáveis com distribuições uniformes
pbrt: Teoria da Amostragem
Iluminação e Fotorealismo 2007/0839
x’
Filter
Sampler
Rendererf(x’)
Film)(
~xf
Antialiasing: Sobreamostragem
• A frequência de amostragem pode aumentar disparando mais do que um raio primário por pixel
Iluminação e Fotorealismo 2007/0840
1.6 seg 6.0 seg
Antialiasing: Sobreamostragem adaptativa
• Para evitar o aumento linear do tempo de execução aumenta-se a frequência de amostragem apenas quando a diferença entre 2 amostras vizinhas ultrapassa um determinado limite
Iluminação e Fotorealismo 2007/0841
• Uma vez que uma imagem com descontinuidades não é limitada em banda, o aumento da frequência de amostragem nunca elimina o fenómeno de aliasing, apenas reduz o erro
• Esta redução pode resultar num erro abaixo do limite percepcionável pelo Sistema Visual Humano
Antialiasing: Amostragem não uniforme
• O impacto visual de aliasing pode ser reduzido variando o espaçamento entre amostras
– Por exemplo seleccionando o ponto de amostragem estocasticamente
• O sinal reconstruído continua a ser incorrecto, mas é percepcionado como ruído e não como aliasing
• O ruído é a variância introduzida pelas variáveis aleatórias usadas no processo de selecção das amostras
• O sistema visual humano é mais tolerante a ruído aleatório do que a aliasing estruturado
Iluminação e Fotorealismo 2007/0842
Antialiasing: Amostragem não uniforme
Iluminação e Fotorealismo 2007/0843
Pseudo-aleatório
2
1
y
x
Estratificado
p
p
yy
xx
Jittered
2
1
*5.0
*5.0
p
p
yy
xx
• ξ1 e ξ2 são variáveis aleatórias com distribuição uniforme no domínio [0 .. 1[
Antialiasing: Amostragem não uniforme
Iluminação e Fotorealismo 2007/0844
Uniform (1spp) – 1.6 seg Jittered (1spp) – 1.6 seg
• O aliasing é removido introduzindo jittering e mantendo 1 amostra por pixel (spp: samples per pixel)
• É introduzido ruído no resultado• O tempo de execução mantém-se constante
Antialiasing: Amostragem não uniforme
Iluminação e Fotorealismo 2007/0845
• A utilização de distribuições de amostragem apropriadas permite obter melhores resultados (menor variância) com o mesmo número de raios
Imagens obtidas com o mesmo número de raios e diferentes distribuições[Pharr & Humphreys, 2004]
Fontes de luz
• As fontes de luz constituídas apenas por um ponto que emite potência radiante com igual intensidade em todas as direcções não têm equivalente na realidade
• As imagens resultantes de usar estes fontes de luz têm sombras com contornos muito definidos devido ao determinismo do algoritmo
Iluminação e Fotorealismo 2007/0846
Fontes de luz
• As fontes de luz com área permitem suportar sombras com diferentes gradações, isto é, umbra e penumbra
Iluminação e Fotorealismo 2007/0847
4 spp16 spl228 seg.
Fontes de luz
• Cada fonte de luz é amostrada por mais do que um shadow ray
• Aumento do número de raios implica aumento do tempo de computação
• Critérios para decidir quantos raios enviar em direcção a cada fonte de luz:1. Radiância emitida pela fonte de luz (Li)
2. Área da fonte de luz (Ai)
3. Orientação da fonte de luz relativamente à superfície de interesse (cos θi)
4. Distância da fonte de luz ao ponto de interesse (ri)
• A contribuição de cada fonte de luz para a radiância incidente no ponto p deve ser o produto da radiância emitida pelo ângulo sólido, ωi , que a fonte de luz subentende em p.
Iluminação e Fotorealismo 2007/0848
2
2
cos**)(
cos
i
iiiiii
i
iii
r
ALLpL
r
A
Fontes de luz
Iluminação e Fotorealismo 2007/0849
A fonte de luz é dividida em sub-áreas Aj, tal que ∑Aj=Ai
A cada sub-área corresponde um shadow ray que avalia a visibilidade de Aj a partir de p: V(p, Aj)
A radiância directa incidente em p devido à fonte de luz i é dada por:
jN
j
jr
pj j
jjji r
AApVL
2
cos*),(*
Fontes de luz
• Esta expressão exige que as sub-àreas Aj sejam calculadas, sendo ∑Aj=Ai.• Uma alternativa menos precisa consiste em não calcular as sub-áreas mas
dividir a contribuição de cada amostra pelo número de shadow rays (Ns). Situação equivalente a todas as sub-áreas terem a mesma dimensão.
• Esta alternativa permite escolher estocasticamente Ns pontos pj na superfície da fonte de luz, em alternativa a dividir a fonte de luz de forma determinística, sendo a mesma expressão reescrita:
Iluminação e Fotorealismo 2007/0850
j j
jjji r
AApVL
2
cos*),(*
j j
jj
s
ii
rApV
N
AL2
cos*),(
*
j j
jj
s
ii
rppV
N
AL2
cos*),(
*
Ray Tracing Clássico51
Trajectos de luz
• Sendo o transporte de luz aproximado pela óptica geométrica, podemos conceber que cada fotão percorre um trajecto desde a fonte de luz até ao seu destino final
• Este trajecto é composto por segmentos de recta direccionais, representando os extremos interacções do fotão com um objecto.
• A interacção pode ser difusa (D) ou especular (S)
• O conjunto de interacções é representado por uma string com origem na fonte de luz (L) e a terminar no ponto onde o fotão é absorvido ou no observador (E)
Ray Tracing Clássico52
Trajectos de luz
Material Difuso
Material Especular
a
a
a
a - LSDE
bb
b
b - LDSE
c
c
c
c - LDDE
Ray Tracing Clássico53
Trajectos de luz
• A árvore de raios gerada pelo ray tracing de Whitted começa no observador e termina sempre que encontrar um material difuso.
• Os trajectos simulados são portanto sempre do tipoL[D][S*]E
• Os caminhos ‘a’ e ‘c’ do acetato anterior não são simulados
• O caminho ‘a’ resultaria na projecção pelo espelho do reflexo da fonte de luz no chão difuso. O ray tracing clássico não modela este fenómeno.
Trajectos de luz: Whitted ray tracing
Iluminação e Fotorealismo 2007/0854
E
L
D
S
LDSE
D
LDELDSSE
Trajectos de luz: path tracing
Iluminação e Fotorealismo 2007/0855
E
L
S
S
D
LSSDE
D
D
LDDE
Os trajectos de luz – seguidos a partir do observador – não terminam em materiais difusos.Podem continuar pois é sempre seleccionada uma direcção para amostrar.
top related