O que é Iluminação?
•
Fenômeno físico resultante da interação de fótons
com uma superfície
Motivação
Modelos de iluminação
Conceitos de Raios de Luz
luz
visão
reflexo
Forward Raytracing
Problema do Forward Raytracing
Backward Raytracing
Traçamento de Raios
Traçamento de Raios
Interseção do Raio com um objeto
Interseção Raio com esfera
Raio:
R(t) = R0 + t * Rd , t > 0
Com R0 = [X0, Y0, Z0] e Rd = [Xd, Yd, Zd]
X = X0 + Xd * t
Y = Y0 + Yd * t
Z = Z0 + Zd * t
Esfera:
Sc = [xc, yc, zc]
S: (xs - xc)2 + (ys - yc)2 + (zs - zc)2 = Raio2
Interseção Raio com esfera
Substituindo a equação do raio na equação da esfera:
(X0 + Xd*t - Xc)2 + (Y0 + Yd*t - Yc)2 + (Z0 + Zd*t - Zc)2 = Raio2
Desenvolvendo a equação e juntando as constantes:
Teremos uma equação da forma: At2 + Bt + C
Onde
A = Xd2 + Yd2 + Zd2
B = 2*(Xd * (X0 - Xc) + Yd * (Y0 - Yc) + Zd * (Z0 - Zc))
C = (X0 - Xc)2 + (Y0 - Yc)2 + (Z0 - Zc)2 – Raio2
Para que de fato a equação resulte numa interseção:
At2 + Bt + C = 0
Interseção Raio com esfera
-Se as raizes t0 e t1 forem números complexos: não há raízes reais e
portanto não há interseção
-Se t0 = t1 : houve tangencia da reta e a esfera
-Se t0 e t1 forem distintas e reais: houve interseção. Deve-se calcular
qual o ponto mais próximo do observador.
Exercício: Interseção Raio com plano
Equação do Plano:
Ax + By + Cz = d
Determine a equação para interseção com o raio:
R(t) = R0 + t * Rd , t > 0
Com R0 = [X0, Y0, Z0] e Rd = [Xd, Yd, Zd]
X = X0 + Xd * t
Y = Y0 + Yd * t
Z = Z0 + Zd * t
Iluminação
-Se houver iluminação?
Componentes da Iluminação – Ambiente
16
Componentes da Iluminação – Ambiente
Componentes da Iluminação – Radiosidade
Componentes da Iluminação – Radiosidade
19
Componentes da Iluminação – Ambiente
Cora= materia . Ia
Normal de uma Superfície
N
Modelo Phong - Difuso
q
N
L
q
cos q
Iluminação
Iluminação
cos q = L . N
Componentes da Iluminação – Difuso
Cord = Material . cos q
cos q = N . L
Cord = K . (N . L)
Componentes da Iluminação – Especular
Luz (L)
Observador ( O )
Normal (N)
b
Reflexo (R)
Componentes da Iluminação – Especular
n=2
n=5
Core = Material . (cos b)n
cos b = O . R
Core = K . (N . L)n
n = 30
Modelo Phong
q
N
L
q
Iluminação
cos q
Iluminação
cos q = L . N
Itotal = Iambiente + Idifusa + Iespecular
Iluminação
Reflexo e Refração
Recursividade do Ray Tracing
Recursividade do Ray Tracing
L
N
P
Transmissão
Reflexo
Recursividade do Ray Tracing
Itotal = IPhong( P ) + Raytracing (Reflexo) + Raytracing (Transmissão)
Implementação do Ray Tracing
Ray_Tracing (VETOR)
Para cada Pixel da Imagem
OBJETO_MAIS_PRÓXIMO = NENHUM
DISTANCIA_MINIMA = INFINITO
Crie um raio do observador ao pixel
Para cada Objeto da Cena
Se o raio tem interseção com este objeto
Se DISTANCIA_MINIMA < distancia (camera até este objeto)
OBJETO_MAIS_PRÓXIMO = este objeto
Se OBJETO_MAIS_PRÓXIMO == NENHUM
Pixel = COR_DE_FUNDO
Senão
REFLEXO = Calcula_Reflexo (OBJETO_MAIS_PRÓXIMO, LUZ)
TRANSMISSÃO = Calcula_Transmissão (OBJETO_MAIS_PRÓXIMO, N)
Pixel = Phong(OBJETO) + Ray_Tracing (REFLEXO) + Ray_Tracing (TRANSMISSÃO)
Iluminação por polígonos
N
1 cálculo de iluminação
por polígono
Iluminação por vértice
N3
N2
N4
4 cálculos de
iluminação por polígono
N1
Iluminação por vértice
Iluminação por pixel
n cálculos de
iluminação por polígono
Projeção
Projeção Ortográfica
Assumindo que os vértices
estão em coordenadas de eye
space
A matriz não possui inversa, pois a determinante é nula.
Assim, esta é uma transformação sem “volta”
Projeção
pz
p
Z= -d
q
x
qx
z
qx
px
-d
=
pz
qx = -d px
pz
px
Exercício: Encontre a
matriz de Projeção
Perspectiva
Projeção Perspectiva
Download

Interseção Raio com esfera