Prévia do material em texto
Visibilidade
Ray-Tracing
Instituto Superior Técnico
Apontamentos CG + Edward Angel, Sec. 7.11 e Cap.13
Instituto Superior Técnico
Computação Gráfica
2009/2010
1
Na últimas aulas
� Terminado Pipeline de Visualização 3D
� Introdução ao Ray-Tracing
©2010, CG&M/IST e Figuras Addison Wesley
Sumário
� Ray-Tracing
� Algoritmo
� Cálculo de Intersecções
Interacção da Luz com Superfícies
©2010, CG&M/IST e Figuras Addison Wesley
� Interacção da Luz com Superfícies
� Estratégias de Optimização
Computação Gráfica
Ray-TracingRay-Tracing
Ray-Tracing
� Opera ao nível da precisão da imagem
� Tem em conta efeitos ópticos
� Refracção
� Reflexão
� Síntese de cenas com elevado realismo
©2010, CG&M/IST e Figuras Addison Wesley
� Síntese de cenas com elevado realismo
� Objectivo
� Combinar num só modelo
� Remoção de superfícies ocultas
� Sombreamento devido a iluminação directa
� Sombreamento devido a iluminação global
� Cálculo de sombras
Centro de
Cena
Ray Tracing: Filosofia
©2010, CG&M/IST e Figuras Addison Wesley
Centro de
Projecção
Janela de
Visualização
Sombreamento com Ray Casting
Para(cada pixel)
Criar raio do ponto de vista
Para (cada objecto na cena)
Encontrar Intersecção com o raio
Manter se mais próximo
Sombrear de acordo com luz e normal
©2010, CG&M/IST e Figuras Addison Wesley
Ray-Casting
Informação para Sombreamento
� Características da Superfície e da Cena
� Normal à superfície
� Direcção da luz
� Ponto de vista “viewpoint”
©2010, CG&M/IST e Figuras Addison Wesley
� Propriedades do Material
� Componente Difusa (matte)
� Componente Especular (brilho)
� ...
Esfera Matte
Esferas
Brilhantes
Sombreamento com Ray-Tracing
Para(cada pixel)
Criar raio do ponto de vista
Para (cada objecto na cena)
Encontrar Intersecção com o Raio Primário
Criar Raios Secundários
Sombrear de acordo com contribuições
©2010, CG&M/IST e Figuras Addison Wesley
Ray-Tracing
Tipos de Raios
� Raios Primários
� raios que unem o centro de projecção com os objectos
� Raios Secundários
� raios reflectidos
� raios refractados
©2010, CG&M/IST e Figuras Addison Wesley
� raios refractados
� raios de iluminação ou sombra (shadow feelers)
Ray-Tracing
Tipos de Raios
� Raios secundários
� Sombras
� Reflexão
� Refracção
©2010, CG&M/IST e Figuras Addison Wesley
11
Ray-Tracing
Raios Primários
©2010, CG&M/IST e Figuras Addison Wesley
Normalmente, um raio primário não intersecta
qualquer objecto ...
Ray-Tracing
Raios Primários
©2010, CG&M/IST e Figuras Addison Wesley
… mas, às vezes, intersecta um objecto.
Ray-Tracing
Raios Primários
� Neste caso são criados raios secundários
� Raios de Iluminação (Shadow Feelers)
� Raios Reflectidos
� Raois Refractados
©2010, CG&M/IST e Figuras Addison Wesley
14
Ray-Tracing
Raios Primários
� Neste caso são criados raios secundários
� Raios de Iluminação (Shadow Feelers)
� Raios Reflectidos
� Raois Refractados
©2010, CG&M/IST e Figuras Addison Wesley
15
Ray-Tracing
Raios de Iluminação (shadow feelers)
©2010, CG&M/IST e Figuras Addison Wesley
Raio de iluminação une o ponto intersectado à
fonte de luz ...
Ray-Tracing
Raios de Iluminação (shadow feelers)
©2010, CG&M/IST e Figuras Addison Wesley
… mas, às vezes, intersecta um objecto antes de
atingir a fonte de luz ...
Ray-Tracing
Raios de Iluminação (shadow feelers)
©2010, CG&M/IST e Figuras Addison Wesley
… e o ponto de intersecção pode estar na sombra, só sendo iluminado
pela luz ambiente ou na penumbra se o objecto for translúcido.
Ray-Tracing
Raios Reflectidos
©2010, CG&M/IST e Figuras Addison Wesley
Um raio reflectido: que ponto da cena atinge?
Ray-Tracing
Raios Reflectidos
©2010, CG&M/IST e Figuras Addison Wesley
A cor local do ponto de intersecção do raio reflectido à
adicionada à cor local do ponto original.
Ray-Tracing
Raios Reflectidos
Sem reflexão
©2010, CG&M/IST e Figuras Addison Wesley
1 nível de reflexão 2 níveis de reflexão
Ray-Tracing
Raios Reflectidos
S
e
m
r
e
f
l
e
x
ã
o
1
n
í
v
e
l
d
e
r
e
f
l
e
x
ã
o
©2010, CG&M/IST e Figuras Addison Wesley
1
n
í
v
e
l
d
e
r
e
f
l
e
x
ã
o
2
n
í
v
e
i
s
d
e
r
e
f
l
e
x
ã
o
3
n
í
v
e
i
s
d
e
r
e
f
l
e
x
ã
o
Ray-Tracing
Raios Refractados
©2010, CG&M/IST e Figuras Addison Wesley
Se o objecto intersectado é transparente ou translúcido...
Ray-Tracing
Raios Refractados
©2010, CG&M/IST e Figuras Addison Wesley
… a cor do ponto de origem da transmissão é
adicionada à cor do ponto original.
Ray Tracing
Algoritmo
� Todos os cálculos processam-se no espaço-objecto
� Para cada ponto (ou pixel) do plano de imagem:
� traça-se um raio com origem no ponto de observação
em direcção à cena a representar
©2010, CG&M/IST e Figuras Addison Wesley
� em direcção à cena a representar
� Se o raio intersecta um objecto
� efectuam-se cálculos locais de iluminação
� para determinar o sombreamento (ou cor) desse ponto como resultado da
iluminação directa sobre ele aplicada (iluminação ambiente e fontes de luz)
Ray Tracing
O Algoritmo
� Se o objecto é parcialmente reflector e/ou transparente
� cálculo de sombreamento no ponto inclui:
� contribuições luminosas de raios reflectidos e transmitidos
� O cálculo dessas contribuições implica:
traçado dos respectivos raios em sentido inverso,
©2010, CG&M/IST e Figuras Addison Wesley
� traçado dos respectivos raios em sentido inverso,
� determinação das intersecções com a cena
� eventual traçado de novos raios a partir desses pontos de intersecção
� O processo termina quando:
� se atinge o fundo da cena (sai da cena) ou
� se atinge um número máximo de superfícies intersectadas ou
� a contribuição é menor que um valor arbitrado
Ray Tracing
Recursividade
Plano de
Visualização
1
3
4
7
10 11
12
13
14
15
©2010, CG&M/IST e Figuras Addison Wesley
Cena constituída por
esferas semi-transparentes
1
2
4
5
6
8
9
Ray Tracing
Algoritmo Completo
Procedure TraceRay( pontoOrigem, direccao, nivel, cor){
var pontoInterseccao, direccaoReflexao;
var direccaoTransmissao, corLocal, corReflexao;
var corTransmitida;
if ( nivel > nivelMaximo ) {
cor = negro;
} else {
pontoInterseccao = (intersecção mais próxima de pontoOrigem);
©2010, CG&M/IST e Figuras Addison Wesley
pontoInterseccao = (intersecção mais próxima de pontoOrigem);
if ( !intersecção ) {
cor = corFundo;
} else {
corLocal=(contribuição da iluminação directa);
(calcular direccaoReflexao);
TraceRay(pontoInterseccao, direccaoReflexao, nivel+1, corReflexao);
(calcular direccaoTransmissao);
TraceRay( pontoInterseccao, direccaoTransmissao, nivel+1, corTransmitida);
(combinar(cor, corLocal, corReflexao, pesoRefl, corTransmitida, pesoTrans));
}
}
}
Ray Tracing
Recursividade
Raios traçados a partir
do ponto de observação
A
1
Plano de
Visualização
3
7
10 11
12
13
14
15
©2010, CG&M/IST e Figuras Addison Wesley
Profundidade = 4 (após 4 intersecções, as contribuições luminosas globais são desprezadas).
6 7 8 9 12 13 14 15
4 5 10 11
2 3
Fundo A
A
A
B
B
B
C C
C C
Fundo Fundo Fundo
1
2
3
4
5
6
8
9
Computação Gráfica
Cálculo de IntersecçõesCálculo de Intersecções
em Ray Tracing
Ray Tracing
Cálculo de intersecções
� Estimativa de Whitted
� 90 a 95% do tempo de processamentoé gasto no cálculo das
intersecções em cenas de média complexidade
� Tipo de intersecção: raio (recta) com um objecto
©2010, CG&M/IST e Figuras Addison Wesley
� esfera
� polígono
� Necessita calcular normal para calcular sombreamento
� Não necessita determinar intersecções entre objectos
31
Ray Tracing
Cálculo de intersecções
� Sugerida utilização de “volume envolvente”
� para cada objecto
� Se raio não intersecta o volume envolvente
não há necessidade de efectuar cálculos de intersecção
©2010, CG&M/IST e Figuras Addison Wesley
� não há necessidade de efectuar cálculos de intersecção
com os vários polígonos do objecto
� Esferas são volumes envolventes mais utilizados
� pelas suas características isotrópicas
� pela facilidade de cálculo da intersecção com um raio
32
Equação Paramétrica dos Raios
tRRtR d
rrr
+= 0)(
©2010, CG&M/IST e Figuras Addison Wesley
33
t<0 – para trás do centro de projecção (não interessa!)
t=0 – Centro de projecção
t=1 – Plano de projecção
t>1 – Para lá do plano de projecção
Intersecção Raio-Esfera – 1
� Raio
� Esfera
(x0,y0,z0)
(x1,y1,z1)(xc,yc,zc)( )
( )
( ) tzztzzzz
tyytyyyy
txxtxxxx
d
d
d
+=−+=
+=−+=
+=−+=
0010
0010
0010
©2010, CG&M/IST e Figuras Addison Wesley
Esfera
� substituindo x, y, z do raio na equação da esfera, vem
022 =+− CtBtA
( ) ( ) ( ) 02222 =−−+−+− rzzyyxx ccc
( ) ( ) ( )
( ) ( ) ( ) 2202020
000
222
rzzyyxxC
zzzyyyxxxB
zyxA
ccc
cdcdcd
ddd
−−+−+−=
−+−+−=
++=
Intersecção Raio-Esfera – 2
Normalizando o vector do raio
Podemos simplificar resolução da equação com:
11222 =⇒=++ Azyx ddd
CBBt −±= 2
©2010, CG&M/IST e Figuras Addison Wesley
B2- C Conclusão
<0 O raio não intersecta a esfera
=0 O raio é tangente à esfera
>0 O raio intersecta a esfera
na raiz correspondente ao ponto
mais próximo (mas atenção…)
CBBt −±=
Em princípio queremos o mais próximo (menor):
Mas...
(a) t<0, não intersecta
(b) origem dentro da esfera (C>0): há duas soluções,
Intersecção Raio-Esfera – 3
CBBt −−= 2
©2010, CG&M/IST e Figuras Addison Wesley
(b) origem dentro da esfera (C>0): há duas soluções,
queremos a maior, e não a menor!
(c) caso “normal”
(a) (b) (c)
Intersecção Raio-Esfera – 4
Não queremos calcular tudo antes de saber se há intersecção ou não...
Solução: calcular
Se <0, não há intersecção possível
(outra forma: se e B<0, não intersecta)
OCRt Dd •=min
2d ≥
©2010, CG&M/IST e Figuras Addison Wesley
Rd Rd
0
C
0C
tdmin
0
C
0C
tdmin
(outra forma: se e B<0, não intersecta)
22
rd oc ≥
Intersecção Raio-Plano
� Equação do plano
� substituindo na equação paramétrica da recta e
resolvendo em ordem a t, vem
0DzCyBxA =+++
©2010, CG&M/IST e Figuras Addison Wesley
resolvendo em ordem a t, vem
� Raio paralelo ao plano se
( )
ddd
i
zCyBxA
DzCyBxA
t
++
+++−
=
000
d
i
RN
DRN
t
•
+•
−=
0
0=• dRN
Intersecção Raio-Polígono – 1
� Soluções
� simples com pouca precisão
� mais complicada
� Simples: o polígono
©2010, CG&M/IST e Figuras Addison Wesley
� Simples: o polígono
contém o ponto de
intersecção ?
� sim, se a soma dos ângulos
entre linhas traçadas dos
vértices para o ponto for
igual a 360 graus)
Intersecção Raio-Polígono – 2
� Determinação geométrica
se o raio e o plano se intersectam,
todas as projecções em (x,y),
(x,z) e (y,z) contêm o ponto de
intersecção
©2010, CG&M/IST e Figuras Addison Wesley
se uma das projecções do polígono
não intersecta o raio, não há
intersecção
projecção por eliminação da
coordenada de maior valor
absoluto da normal ao plano
Intersecção Raio-Polígono – 3
� Intersecção:
semi-recta com origem no ponto intersecta polígono um número
ímpar de vezes
V*
V
©2010, CG&M/IST e Figuras Addison Wesley
válido para polígonos côncavos e auto-intersectantes
U*
V*
U
Computação Gráfica
Interacção da Luz com Superfícies Interacção da Luz com Superfícies
em Ray Tracing
Cor de um Ponto – 1
A cor de cada ponto de uma superfície resulta de:
� Cor local
� devido à iluminação da superfície por luz directa e luz ambiente
©2010, CG&M/IST e Figuras Addison Wesley
� Cor do raio luminoso reflectido
� segundo a direcção de reflexão
� Cor do raio luminoso transmitido
� segundo a direcção de refracção
ponto de origem
do raio
Cor de um Ponto – 2
� Contribuições para a Intensidade Luminosa de um Ponto
de uma Superfície
©2010, CG&M/IST e Figuras Addison Wesley
Raio proveniente
da direcção de refracção
Raio proveniente
da direcção de reflexão
ponto da 1ª superfície
Intersectada pelo raio inicial
� Cada vez que um raio
primário intersecta
uma superfície, há
que calcular:
N
I Rθ θ
Cálculo da Reflexão
©2010, CG&M/IST e Figuras Addison Wesley
que calcular:
� um raio reflectido
� um raio transmitido
� Sendo I, N e R
vectores unitários :
Ncos2IR
rrr
Θ+=
I
(incidente) (reflectido)θ θ
Um raio luminoso, ao
transitar de um meio para
outro, refracta-se ou muda
de direcção devido à
diferença de velocidade da
N
I
θ1 n1
Cálculo da Refracção
©2010, CG&M/IST e Figuras Addison Wesley
diferença de velocidade da
luz em cada um dos meios
(Lei de Snell)
NIT
sen
sen )coscos(1 211212
121
2
2
1 θθηη
ηη
η
θ
θ
−+===
T
θ2
n2
Índice de Refracção
Meio Índice de refracção
relativo ao vácuo
Ar (293,15 K, 101,325 kPa) 1,00029
Água 1,33
Vidro crown 1,52
Vidro denso 1,66
©2010, CG&M/IST e Figuras Addison Wesley
Vidro cristal 2
Quartzo 1,46
Safira 1,77
Diamante 2,417
Cristais de iodo 3,34
Poliestireno 1,55
Alcool etílico 1,36
Reflexão Total
©2010, CG&M/IST e Figuras Addison Wesley
=
i
t
i arcsen η
ηθ
Meios Ângulo crítico
Água - Ar 48º 46’
Vidro (crown) - Ar 41º 9’
Vidro (crown) - Água 61º 3’
Diamante – Ar 24º 27’
Safira - Ar 34º 25’
Ângulo crítico
Computação Gráfica
Extensão aoExtensão ao
Modelo de Iluminação de Phong
� Objectos transparentes ou translúcidos
� acrescenta-se um novo termo à expressão de Phong para
calcular a luz que se vê através desses objectos
� Define-se H´
Extensão ao
Modelo de Iluminação de Phong
©2010, CG&M/IST e Figuras Addison Wesley
� Define-se H´
� normal à micro faceta perpendicular à direcção de refracção pura
� Para a direcção de visualização
( )ntatransmitid HNKI '•
Extensão ao
Modelo de Iluminação de Phong
N H’
V
©2010, CG&M/IST e Figuras Addison Wesley
L
P
F
Computação Gráfica
Determinação de SombrasDeterminação de Sombras
em Ray-Tracing
Sombras
� Sombra
� ocorre quando algum objecto se interpõe entre a(s) fonte(s) de
luz e o ponto
� Procedimento
traçar raios de iluminação (“shadow feelers”)
©2010, CG&M/IST e Figuras Addison Wesley
� traçar raios de iluminação (“shadow feelers”)
� entre o ponto e cada uma das fonte de luz
� raio intersecta um objecto opaco:
� a correspondente fonte de luz não contribui para a iluminação do ponto
� raio intersecta um objecto translúcido (penumbra):
� atenuar a intensidade luminosa da fonte de luz
(não se fazem cálculos de refracção)
Determinação de Sombras
fonte de luz
objecto translúcido
objecto opaco
©2010, CG&M/IST e Figuras Addison Wesley
A B C
objecto translúcido
Computação Gráfica
Estratégias de OptimizaçãoEstratégias de Optimização
em Ray-Tracing
Esforço de Cálculo
� Exemplo:
� imagem 1024 x 1024
� 100 objectos
⇒⇒⇒⇒ calcular 104.857.600 intersecções
©2010, CG&M/IST e Figuras Addison Wesley
� Solução: optimizaro cálculo através de
� transformação segundo o raio
� volumes envolventes
� hierarquização
� partição do espaço
� combinar hierarquia e partição
Transformação Segundo o Raio
� Transforma cada raio para que coincida com a direcção
dos ZZ
� Aplica a mesma transformação aos objectos
©2010, CG&M/IST e Figuras Addison Wesley
� Intersecções ocorrem em x=0 e y=0
� Aplica-se transformada inversa ao ponto determinado
� Facilitada se objectos estiverem ordenados segundo Z
Volumes Envolventes – 1
� Cálculo da intersecção do raio com volumes
envolventes dos objectos
� esfera
� elipsóide
©2010, CG&M/IST e Figuras Addison Wesley
� elipsóide
� paralelepípedo
� poliedro convexo
(empregando 2 planos paralelos)
Volumes Envolventes – 2
� Se um raio intersectar um volume envolvente
� devem ser feitos cálculos finos de intersecção entre o
raio e o objecto em causa
� Os cálculos a efectuar dependem do esquema de
©2010, CG&M/IST e Figuras Addison Wesley
� Os cálculos a efectuar dependem do esquema de
modelação geométrica utilizado na definição do objecto
� No caso mais usual utiliza-se um modelo de representação
pela fronteira (“boundary representation”) - objecto descrito por
uma malha poligonal
Volumes Envolventes - 3
©2010, CG&M/IST e Figuras Addison Wesley
Hierarquização
� Organizar o espaço em árvore de volumes
envolventes
©2010, CG&M/IST e Figuras Addison Wesley
� Um subespaço filho não pode ser
intersectado se o pai o não for
Partição do Espaço - 1
� O espaço é dividido em sub espaços limitados por volumes
envolventes
� Cada sub espaço contém objectos
� não é necessário que um objecto esteja totalmente contido num
©2010, CG&M/IST e Figuras Addison Wesley
não é necessário que um objecto esteja totalmente contido num
subespaço
� Se um raio intersecta um sub espaço
� e no sub espaço intersecta um objecto
� processo pára, a não ser que o objecto esteja parcialmente contido no
sub espaço
� A divisão pode ser adaptativa
Partição do Espaço - 2
Partição equitativa do
espaço
©2010, CG&M/IST e Figuras Addison Wesley
Só é necessário testar a
intersecção com os
subespaços contendo os
objectos A, B e C
Partição do Espaço - 3
Intersecção de objectos contidos em mais
do que um sub espaço
Sub espaço 2 é testado antes de 3
©2010, CG&M/IST e Figuras Addison Wesley
Encontra-se intersecção com B
Mas é necessário testar sub espaço 3
porque afinal é a intersecção com A que
interessa
A
B
3 2
1
Computação Gráfica
Anti-AliasingAnti-Aliasing
em Ray-Tracing
Ray-Tracing e Antialiasing - 1
©2010, CG&M/IST e Figuras Addison Wesley
Ray-Tracing e Antialiasing - 2
� Sobreamostragem simples
� muitos raios por pixel (9) ⇒ carga computacional elevada
� há raios onde são mais necessários?
� Sobreamostragem adaptativa
©2010, CG&M/IST e Figuras Addison Wesley
� Sobreamostragem adaptativa
� mais raios onde necessário, menos onde não
� mas … grelha regular ⇒ perda de detalhe possível, ruído
� Ray Tracing distribuído (estocástico)
� raios aleatoriamente localizados cobrindo área uniformemente
� ruído aleatório é “perdoado” pela visão
� adaptativo se estatisticamente necessário
Computação Gráfica
RadiosidadeRadiosidade
Motivação
� Ray-Tracing permite bons resultados
� Mas necessita da componente “luz ambiente”
� Não reproduz fielmente a realidade
� Problema:
©2010, CG&M/IST e Figuras Addison Wesley
� Problema:
� Reproduzir uma cena
� Sem recorrer a uma “falsa” luz ambiente
� Solução:
� Recorrer a modelos físicos
� Conservação da energia
Fundamentos
� Princípio da Conservação da Energia
� Balanço Energético Radiativo
� Distribuição de luz num ambiente depende de
©2010, CG&M/IST e Figuras Addison Wesley
� Distribuição de luz num ambiente depende de
� reflexões
� absorções
� transmissões
� Que dependem
� do comprimento de onda
� do tempo
Características
� Radiosidade depende unicamente da geometria
� Calculada no espaço objecto
©2010, CG&M/IST e Figuras Addison Wesley
Computação Gráfica 71
� Não depende do ponto de vista
� uma vez calculada uma cena
� não é necessário recalculá-la quando o ponto de vista muda
� Emissão e reflexão difusas
� impossível calcular superfícies reflectoras perfeitas
� Meio de propagação da luz - vácuo
Radiosidade +/-
� Grande consumo de memória
� Cálculos complexos
� Apenas pode considerar componente difusa
©2010, CG&M/IST e Figuras Addison Wesley
� Apenas pode considerar componente difusa
� Extensão a componente especular
� necessita muita memória
� Normalmente
� usada em conjunto com Ray-Tracing
Computação Gráfica
FotorealismoFotorealismo
usando POV-Ray
Fotorealismo
Exemplo
©2010, CG&M/IST e Figuras Addison Wesley
74
Christmas Baubles
By Jaime Vives Piqueres
Fotorealismo
Exemplo
©2010, CG&M/IST e Figuras Addison Wesley
75
Car Study
By René Bui
Fotorealismo
Exemplo
©2010, CG&M/IST e Figuras Addison Wesley
76
Pebbles
By Jonathan Hunt
4 dias e meio a gerar
Computação Gráfica
Ray-Tracing em tempo realRay-Tracing em tempo real
recorrendo às mais potentes placas gráficas
NVIDEA Real time ray-tracing
©2010, CG&M/IST e Figuras Addison Wesley
78
4 Placas Quadro FX5800 em tandem
16 GB de memória GDDR3
Permite 30 fps
Resolução HD
NVIDEA Real time ray-tracing
©2010, CG&M/IST e Figuras Addison Wesley
79