Download - Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio
![Page 1: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/1.jpg)
Traçado de Raios e
Modelos de Iluminação
por
Marcelo Gattass
Departamento de Informática
PUC-Rio
![Page 2: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/2.jpg)
Pinturas: produção de imagens
Avercamp, Hendrick (1585-1634).
![Page 3: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/3.jpg)
Canaletto (Giovanni Antonio Canal) (1697-1768).
![Page 4: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/4.jpg)
Pin-Hole Camera
Câmara escura - Leonardo da Vinci -1545Luis-Jacques-Mandé Daguerre (1789-1851)
![Page 5: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/5.jpg)
Modelo de câmera
x
y
z
Iluminação
Objetos
Câmara
![Page 6: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/6.jpg)
Traçado de raios: raios e objetos implícitos
x
y
z
x = x0 + t (x1 - x0 )y = y0 + t (y1 - y0 )z = z0 + t (z1 - z0 )
(x-xc )2 + (y-yc )2 + (z-zc )2 = R2
-b ± b2 - 4ac2a
t =
![Page 7: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/7.jpg)
Interseção com a esfera
0
0)(2
)(:
)(:
2
22
2
22
22
ctbta
rCOCOtCODtDD
rDtCODtCO
rCDtO
rCtPEsfera
tDOtPRaio
ii
ii
ii
i
i
OD
ti
![Page 8: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/8.jpg)
P0
P1
x = x0 + t (x1 - x0 )y = y0 + t (y1 - y0 )z = z0 + t (z1 - z0 )
z
xy
Ax + By + Cz + D = 0
0 1
3
A0
A3
A1
L0 = A0 / AT
L1 = A1 / AT
L2 = A2 / AT
Li [0 ,1 ]
P é interior se e somente se
Raios e objetos descritos pela fronteira
![Page 9: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/9.jpg)
Interseção com o plano do triângulo
OD
P(ti)
0
0
0
1
1
1
NVONDt
NVDtO
NVPP
i
i
V1
N
ND
NOVti
1
DtOP i
![Page 10: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/10.jpg)
Ponto no interior de um triângulo
V1
V2
V3
Pi
Pe
a12
a23
a31
)(
)(
)(
3313
2232
1121
VPat
VPat
VPat
N P é interior se t1, t2 e t3 tem o mesmo sentido,ou seja:
0
0
31
21
tt
tt 0
0
31
21
tt
ttou
![Page 11: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/11.jpg)
Coordenadas baricêntricas
V1
V2
V3
Pi
Pe
a12
a23
a31
2/)(
2/)(
2/)(
3123
2312
1231
VPaA
VPaA
VPaA
NP é interior se L1, L2 e L3 [0..1]
A3
A1A2
321 AAAAT
T
T
T
AAL
AAL
AAL
/
/
/
33
22
11
3
3
3
3
2
2
2
2
1
1
1
1
z
y
x
L
z
y
x
L
z
y
x
L
z
y
x
i
i
i
Mais ainda:
![Page 12: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/12.jpg)
Coordenadas baricêntricas como interpolantes
V1
V2
V3
Pi
A3
A1A2
1
1
1
L1
L2
L3
1321 LLL
3
3
3
3
2
2
2
2
1
1
1
1
z
y
x
L
z
y
x
L
z
y
x
L
z
y
x
i
i
i
![Page 13: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/13.jpg)
Interpolação com coordenadas baricêntricas
V1
V2
V3
Pi
A3
A1A2
3
3
3
3
2
2
2
2
1
1
1
1
b
g
r
L
b
g
r
L
b
g
r
L
b
g
r
i
i
i
ou:
C1
C2
C3
U1
U2
U3
3
33
2
22
1
11 v
uL
v
uL
v
uL
v
u
i
i
![Page 14: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/14.jpg)
Exemplo: uma esfera e duas paredes
z
xy
#SURFACE20. 20. 100. 160. 160. 60.#LIGHT40. 120. 0. 255 255 255#SPHERE0 25.0 0.0 20.0 0.0#BOX1 -80. -50. -50. 50. -45. 50.1 -80. -50. -60. 50. 50. -50.
![Page 15: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/15.jpg)
Componente de reflexão difusa
NL
N
N
L
L
LN
kl
kl
kl
LN
k
k
k
l
l
l
I
I
I
dbb
dgg
drr
db
dg
dr
b
g
r
b
g
r
I, l, k [0 ,1 ]
![Page 16: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/16.jpg)
Componente de reflexão especular
NR
V
L
Brilho
n
sbb
sgg
srrn
sb
sg
sr
b
g
r
b
g
r
VR
kl
kl
kl
VR
k
k
k
l
l
l
I
I
I
-1 -0,5 0 0,5 1
n=4n=1
n=8
I, l, k [0 ,1 ]
![Page 17: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/17.jpg)
Cálculo do vetor R
N
L R1
L’
L’ = L / (L*N)
H
H = N - L’
HR’
R’ = N + H
LNL
NR
)(
12
R = unitário (R’)
![Page 18: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/18.jpg)
Luz direta sobre um ponto
N
R
V
nsdifluzamb VRkLNkCCC )(
![Page 19: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/19.jpg)
Modelo de várias luzes
luzes
n
sb
sg
sr
b
g
r
db
dg
dr
b
g
r
ab
ag
ar
b
g
r
VR
k
k
k
l
l
l
LN
k
k
k
l
l
l
I
I
I
I
I
I
ab
ag
ar
I
I
I
Luz Ambiente
![Page 20: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/20.jpg)
Sombra
A luz não chega a superfíce
![Page 21: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/21.jpg)
Uma revisão
![Page 22: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/22.jpg)
Reflexão de outros objetos
N V
Superfície especular
![Page 23: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/23.jpg)
Transparência
NV
Superfície transparente
=sin
sin
Lei de Snell:
![Page 24: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/24.jpg)
Iluminação considerando R e T
)(
)(
)(
)1(
)(
)(
)(
TI
TI
TI
o
RI
RI
RI
cVR
k
k
k
l
l
l
LN
k
k
k
l
l
l
I
I
I
I
I
I
b
g
r
b
g
r
rluzes
n
sb
sg
sr
b
g
r
db
dg
dr
b
g
r
ab
ag
ar
b
g
r
transparênciaredução da reflexão
![Page 25: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/25.jpg)
Traçado de Raios Recursivo
R1
T1
R2
T2
R3
L1
L3
L2
R1
R2
L1
L3L2
T1
T2R3
![Page 26: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/26.jpg)
Resultado de curso
Alunos de CGI98
![Page 27: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/27.jpg)
Algoritmo de traçado de raios
rtColor trace ( rtRay ray, int depth){ determine a interseção mais próxima com um objeto if (intercepta objeto) { calcule a normal no ponto de interseção return ( shade ( object, ray, intersection, normal, depth); } return BACKGOUND;}
rtColor trace ( rtRay ray, int depth){ determine a interseção mais próxima com um objeto if (intercepta objeto) { calcule a normal no ponto de interseção return ( shade ( object, ray, intersection, normal, depth); } return BACKGOUND;}
selecione o centro de projeção e uma janela no plano de projeçãofor (cada pixel da tela) { determine o raio ray que vai do centro de projeção ao pixel; pixel = trace ( ray, 1); }}
selecione o centro de projeção e uma janela no plano de projeçãofor (cada pixel da tela) { determine o raio ray que vai do centro de projeção ao pixel; pixel = trace ( ray, 1); }}
![Page 28: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/28.jpg)
rtColor shade ( rtObject object, rtRay ray, int depth, rtPoint point, rtNormal normal, int depth){ rtColor color, rColor, sColor; rtRay rRay, tRay, sRay; color = termo ambiente;for (cada luz) { sRay = raio para o ponto de luz; if (sRay • normal>0) { calcule quanto de luz é bloqueada por superfícies opacas e transparentes e use para computar as componentes difusa e especular } }
if (depth >= maxDepth) return color;
if (objeto é refletor) { rRay = raio na direção de refleção; rColor = trace( rRay, depth+1); reduza rColor pelo coeficente de refleção especular e some a color; }
if (objeto é transparente) { tRay = raio na direção de refração; if (reflexão total não ocorre} { tColor = trace( tRay, depth+1); reduza tColor pelo coeficente de refração especular e some a color; } }
return color;}
rtColor shade ( rtObject object, rtRay ray, int depth, rtPoint point, rtNormal normal, int depth){ rtColor color, rColor, sColor; rtRay rRay, tRay, sRay; color = termo ambiente;for (cada luz) { sRay = raio para o ponto de luz; if (sRay • normal>0) { calcule quanto de luz é bloqueada por superfícies opacas e transparentes e use para computar as componentes difusa e especular } }
if (depth >= maxDepth) return color;
if (objeto é refletor) { rRay = raio na direção de refleção; rColor = trace( rRay, depth+1); reduza rColor pelo coeficente de refleção especular e some a color; }
if (objeto é transparente) { tRay = raio na direção de refração; if (reflexão total não ocorre} { tColor = trace( tRay, depth+1); reduza tColor pelo coeficente de refração especular e some a color; } }
return color;}
![Page 29: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/29.jpg)
Tratamento anti-alias
Pixel
•Lance um raio para cada sub-pixel•Faça uma média dos valores obtidos
Sub-Pixels
...
dxdy
dx, dy = variáveis randômicas
![Page 30: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/30.jpg)
Normal e cor
Pertubar aleatóriamenteas normais dos objetos
N
N’
A cor de um ponto depende de sua posição
num mapa de textura
![Page 31: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/31.jpg)
Textura na esfera
x
y
z
sinsin
cossin
cos
y
x
z
z
yx
xy
22
tan
/tan
1
1
v
u
)1(
)1(
wuj
hvi
i
j
![Page 32: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/32.jpg)
Refinamento Progresivo
subdivisão finalsegunda subdivisão
primeira subdivisãoamostragem inicial
pixels sendo visitados pixels já visitados
![Page 33: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/33.jpg)
Modelo da câmera
Dados: eye, ref, vup (definem o sistema de coordenadas do olho)abertura do campo fixa de 900
eye
ref
vup
Coordenadas dosObjetos eye
ref
45o45o
Vista de cima
![Page 34: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/34.jpg)
Calcula o sistema - xe ye ze
ref
ze
eye
vup
z0
y0
x0
view
ze = – view / ||view||ze = – view / ||view||
vup
ref
eye
z0
y0
x0
view
dados:eye, ref, vupabertura da câmera
dados:eye, ref, vupabertura da câmera
view =ref-eyeview =ref-eye
![Page 35: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/35.jpg)
Calcula o sistema - xe ye ze
xe = (vup x ze) / ||vup x ze||xe = (vup x ze) / ||vup x ze||
ref
eye
vup
z0
y0
x0
view
zexe
ye = ze x xeye = ze x xe
ref
eye
vup
z0
y0
x0
view
zexe
ye
eye
vup ze
xe
ye
view
![Page 36: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/36.jpg)
Canto inferior da janela no plano de projeção
eye
z0
y0
x0
A
zexe
ye
B
C
Pll = eye + A + B + C
Pll = eye - ze - ye - xe
Pll
Se o ângulo de abertura for 900
, d=1 e w = h:A = - xe
B = - ye
C = - xe
![Page 37: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/37.jpg)
Lançamento de Raios
Pll dx = 2 xe / w
dy = 2 ye / h
Pll dx = 2 xe / w
dy = 2 ye / h P0 P
P0 = Pu + dx/2 + dy/2;for (i=0; i<=w; i++) { P = P0 ; for (j=0; j<=h; j++) { P = P + dx; trace o raio (eye, P); } P0 = P0 + dy;}
![Page 38: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/38.jpg)
Modelo de Lente e Obturador
tela (pixels) lente e obturador cena
![Page 39: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/39.jpg)
Focalização
imagem lente focalização
Luz de vários objetos chegam no mesmo ponto confusão
di df
d df
![Page 40: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/40.jpg)
Obtenção dos raios
plano daimagem lente plano de
focalização
P
A
![Page 41: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/41.jpg)
![Page 42: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/42.jpg)
![Page 43: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/43.jpg)
![Page 44: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio](https://reader035.vdocuments.com.br/reader035/viewer/2022062404/552fc10b497959413d8c259c/html5/thumbnails/44.jpg)
Radiosidade e Ray Tracing