mgattass algoritmo de rastreamento de raios. mgattass registros da camera obscura (latim) 1.mo-ti (v...
TRANSCRIPT
![Page 1: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/1.jpg)
MGattass
Algoritmo de Rastreamento de Raios
![Page 2: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/2.jpg)
MGattass
Registros da “camera obscura (latim)”
1. Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno orifício2. Aristótes (384-322 AC) – eclipse do sol3. Alhazen de Basra (X DC)4. Leonardo da Vince (XVI DC) ...
![Page 3: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/3.jpg)
Canaletto (Giovanni Antonio Canal) (1697-1768).
Pintores
Ponto de fuga
![Page 4: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/4.jpg)
MGattass
Evolução da Camera obscura para as Câmaras fotográficas
Luis-Jacques-Mandé Daguerre (1839)Câmara escura - Leonardo da Vinci -1545
![Page 5: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/5.jpg)
MGattass
A Câmra Pinhole
![Page 6: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/6.jpg)
MGattass
Princípios da câmera Pin-Hole
caixa
filme
objetopinhole
raios de luz
imagem
Câmera
plano de projeção
centro de projeção
Projeção cônica
![Page 7: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/7.jpg)
MGattass
Síntese de imagens
xo
zo
Objetos
Pixel(RGB)
Luz
Iluminação
yo
Câmara
xe
ye
ze eye
![Page 8: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/8.jpg)
MGattass
Algoritmo básico
Para cada pixel da telaLance uma raio;Para cada objeto da cena
Calcule a interseção do raio com este o objeto;Armazene a interseção mais próxima;
Se o raio interceptou algum objeto Calcule a contribuição das luzes neste ponto;Pinte o pixel com esta cor;
Objetos
Luz
IluminaçãoCâmara
xe
ye
ze
![Page 9: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/9.jpg)
MGattass
Definição de uma câmera
w pixels largura b
h pi
xels
a
ltur
a a
janela
ocentro de projeção janela
eixoóptico
centro óptico
oeye
ah
wb
plano de projeção
centro de projeção
Projeção cônica
![Page 10: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/10.jpg)
MGattass
Abertura de uma câmera
f1f2
fov1
fov2a
2tan
2
fov
f
a
2tan2
fovfa
![Page 11: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/11.jpg)
MGattass
Eixos de uma câmera
eixo óptico
v
u
eye
xe
ye
ze
eixo horizontal
eixo vertical
![Page 12: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/12.jpg)
MGattass
Parâmetros de funções do OpenGL
Void glPerspective(GLdouble fovy,GLdouble aspect,GLdouble near_,GLdouble far_);
aspect = w/h
xe
ye
ze
near
far
w
h
ye
ze
fovy
void glViewport(GLint x0, GLint y0, GLsizei width, GLsizei height );
u
v
width
heig
hto1 x0
y0
![Page 13: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/13.jpg)
MGattass
Parâmetros intrínsecos (do OpenGL)parte 2 – Câmera mais geral
void glFrustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ );
ye
ze
v
near uxe
xe
ze
near
left right
far
![Page 14: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/14.jpg)
MGattass
Parâmetros internos ou intrínsecos
near = plano próximo(distância focal)
fovy= campo de visão
w h pixels
far = plano distante
nearf
2tan2
fovfa
ah
wb
Primários: Derivados:
![Page 15: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/15.jpg)
MGattass
Posicionamento da câmera(parâmetros externos ou extrínsecos)
eye = centro ópticocenter = ponto de visada, up = direção para cima
Coordenadas dosObjetos
eyecenter
fovy
vista lateral
upeye
center
up
x0
z0
y0
near
far
![Page 16: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/16.jpg)
MGattass
Calculo do sistema do olho - xe ye ze
center
zeeye
up
z0
y0
x0
view
up
center
eye
z0
y0
x0
dados:eye, center, up
dados:eye, center, up
view = center - eye centereye
centereyez
1e
![Page 17: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/17.jpg)
MGattass
Calculo do sistema do olho - xe ye ze
center
eye
vup
z0
y0
x0
view
zexe
center
eye
up
z0
y0
x0
view
zexe
ye
ee
e zupzup
x
1
eee xzy eye
up ze
xeye
center
![Page 18: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/18.jpg)
MGattass
Um modelo de câmera
zo
xoeyeo
eyepd xy
yo
xe
ye
ze
u
v
o1
eyep
xy
dop ttraio )(:
d
![Page 19: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/19.jpg)
MGattass
Lançamento de Raios
vuop ˆ)(ˆ)(1 yvxuxy
bw
xxu )(
ah
yyv )(
o1
pxy
10 2 x3
h-1
uw-1
v
1
2
y
w pixels em b
h pi
xels
em
a
eexy h
ya
w
xb yxop ˆˆ1
![Page 20: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/20.jpg)
MGattass
Canto inferior esquerdo da janela no plano near (ou far)
nearf
ef z
)2
tan(2fovy
fa
e
ay
2
ah
wb
e
bx
2
eye
z0
y0
x0
zexe
ye
plano near
canto inferior esquerdo
1o
eee
baf xyzeyeo ˆ
2ˆ
2ˆ1
eeeeexy h
ya
w
xbbaf yxxyzeyep ˆˆˆ
2ˆ
2ˆ
eee w
xb
h
yaf xyzd ˆ
2
1ˆ
2
1ˆ
![Page 21: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/21.jpg)
MGattass
Resultando
zo
xo
eyeo yo
xe
ye
ze
u
v
o1
eyep
xy
dop ttraio )(:
d
eee w
xb
h
yaf xyzd ˆ
2
1ˆ
2
1ˆ
![Page 22: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/22.jpg)
MGattass
Tipo Abstrato de Dados: Camera em C
struct _Camera { /* Definição da câmera */ Vector eye, center, up; float fovy; float nearp,farp; int w,h;
/* Parametros derivados */ float f; float a,b; Vector xe,ye,ze;};
typedef struct _Camera * Camera;
Camera* camCreate( Vector eye, Vector at, Vector up, double fovy, double nearp, double farp, int w, int h );
Ray camGetRay( Camera camera, double x, double y );
![Page 23: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/23.jpg)
MGattass
Objeto câmera
centereyecentereye
z
1
e ee
e zupzup
x
1 eee xzy
Inicialização (pré-processamento):
Lançamento de raios: o + td
eyeo
nearf
2tan2
fovfa a
h
wb
Dados: fov, w, h, near, far, eye, center, up
eee w
xb
h
yaf xyzd ˆ
2
1ˆ
2
1ˆ
![Page 24: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/24.jpg)
MGattass
Modelagem dos Objetos
Implícita: Por fronteira:
r cp
p
dados:
centro c raio r
p1
p2p3
![Page 25: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/25.jpg)
MGattass
Interseção de um raio com uma esfera
02 ctbta ii
o d
ti
dop ttRaio )(:
22)(: rtEsfera i cp
22rti cdo
2rtt ii dcodco
0)(2 22 rtt ii cococoddd
a
acbbt
2
42
![Page 26: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/26.jpg)
MGattass
Objeto esfera: métodos
Interseção:
2rc coco
dda
)(2 cod b
042 acbse
a
bt
a
bt
2
2
2
1
),min( 21 ttti
se ti > 0 :
dopp iii tt )(
cpcp
n
ii
i
1ˆ
c
piin
Normal:
![Page 27: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/27.jpg)
MGattass
Interseção com o plano do triângulo
o
d
01 npondit p1
n
nd
nop
1it
0)(: 1 npp itPlano
dop ttRaio )(:
01 npdo it
dopp iii tt )(
p2
p3
)( itp
2312
2312ˆpppp
ppppn
![Page 28: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/28.jpg)
MGattass
Ponto interno a triângulo
p1
0)( 112 ppvn int
i
p2
p3
2312 vvn
v31
v12
v23 0)( 112 pppn exti
extip
int
ip
![Page 29: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/29.jpg)
MGattass
Coordenadas baricêntricas
p1
v12
v23
v31
2/)(ˆ
2/)(ˆ
2/)(ˆ
1123
3312
2231
ppvn
ppvn
ppvn
i
i
i
A
A
A
pi é interior se L1, L2 e L3 [0..1]
A3
A1A2
321 AAAAT
T
T
T
AAL
AAL
AAL
/
/
/
33
22
11
n
p2
p3
extip
intip
3112ˆ vvn unit
![Page 30: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/30.jpg)
MGattass
Coordenadas baricêntricas como funções interpolantes
p1
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
ip3
p2
![Page 31: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/31.jpg)
MGattass
Interpolação de cor e coordenada de textura através das coordenadas baricêntricas
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:
3
33
2
22
1
11 v
uL
v
uL
v
uL
v
u
i
i
p1
pi
A3
A1A2
p3
p2c1 u1
c2 u2
c3 u3
![Page 32: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/32.jpg)
MGattass
Caixa alinhada com os eixos
x
y
z
(xmin, ymin, zmin)(xmax, ymax, zmax)
o d=(dx, dy, dz)
ti
max
max
min
0
0
0
zzd
yyd
xxd
z
y
x
![Page 33: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/33.jpg)
MGattass
Motivação: Uma cena simples
Camera:eye = (100,40,40), center = (0,0,0), up=(0,1,0), fov=90º, near = 30, far=230,
w=230, h=230.Esfera:
c = (0,20,0), r = 25, cor azul = (0,0,1)
Caixas alinhadas com os eixos:p0 = (-80,-50,-50), p1 = (50,-45,50) e cor amarela = (0.7,0.7,0)
p0 = (-80,-50,-60), p1 = (50,50,-50) e cor amarela = (0.7,0.7,0)
Luz Pontual:Posição=(60,120,40) e intensidade RGB l=(0.8,0.8,0.8)
![Page 34: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/34.jpg)
MGattass
O que conseguiriamos se simplesmente atribuissemos aos pixels a cor dos objetos?
![Page 35: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/35.jpg)
MGattass
Área aparente
energialuminosa
energialuminosa
A
cos' A
A
I (lumens)
I (lumens)
2/ mlumensA
Ii
2/cos' mlumensA
Ii
![Page 36: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/36.jpg)
MGattass
Modelo de reflexão de superfíces Lambertianas
luz incidente luz
incidente
luz incidente
1. Reflete igualmente em todas as direções2. A intensidade é proporcional ao co-seno
![Page 37: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/37.jpg)
MGattass
Componente de reflexão difusa
cos
cos
cos
dbb
dgg
drr
b
g
r
kl
kl
kl
I
I
I
- /2 0 /2
cos
1
n
L
ip
![Page 38: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/38.jpg)
MGattass
Outras maneiras de se escrever:
I, l, k [0 ,1 ]
Eq. 1
LnLn
Ln
Ln
Lnˆˆˆˆ
ˆˆ
ˆˆ
ˆˆ
db
dg
dr
b
g
r
dbb
dgg
drr
dbb
dgg
drr
b
g
r
k
k
k
l
l
l
kl
kl
kl
kl
kl
kl
I
I
I
cos
cos
cos
dbb
dgg
drr
b
g
r
kl
kl
kl
I
I
I
![Page 39: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/39.jpg)
MGattass
Luz difusa mais ambiente:
Ln ˆˆ
db
dg
dr
b
g
r
b
g
r
k
k
k
l
l
l
I
I
I
Ln ˆˆ
db
dg
dr
b
g
r
db
dg
dr
ab
ag
ar
b
g
r
k
k
k
l
l
l
k
k
k
I
I
I
I
I
I
![Page 40: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/40.jpg)
MGattass
Componente de reflexão especular
I, l, k [0 ,1 ]
Eq.2
n
L
r
v Brilho
-1 -0,5 0 0,5 1
n=4n=1
n=8
nvr ˆˆ
nsbb
nsgg
nsrr
especularb
g
r
kl
kl
kl
I
I
I
cos
cos
cos
![Page 41: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/41.jpg)
MGattass
Reflexão especular
n
sb
sg
sr
b
g
r
db
dg
dr
b
g
r
db
dg
dr
ab
ag
ar
b
g
r
k
k
k
l
l
l
k
k
k
l
l
l
k
k
k
I
I
I
I
I
I
vrLn ˆˆˆˆ
![Page 42: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/42.jpg)
MGattass
Reflexão especular
n
L
r v
ip
luzrefletida
![Page 43: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/43.jpg)
MGattass
Cálculo da reflexão de um vetor sobre outros
LnnLr ˆˆˆˆ2ˆ
LLh n
h h
Ln
nnLL ˆ)ˆˆ( n
hLr nˆ
n
L r
![Page 44: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/44.jpg)
MGattass
Distribuição da luz direta sobre um ponto
nsluzdifluzamb kCkCCC vrLn ˆˆˆˆ
nL
rv
ip
Ambient Diffuse Specular
![Page 45: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/45.jpg)
MGattass
Modelo de várias luzes
luzes
n
sb
sg
sr
b
g
r
db
dg
dr
b
g
r
db
dg
dr
ab
ag
ar
b
g
r
k
k
k
l
l
l
k
k
k
l
l
l
k
k
k
I
I
I
I
I
I
vrLn ˆˆˆˆ
vnnvr ˆˆ)ˆˆ(2ˆ r
luzes
n
r
sb
sg
sr
b
g
r
db
dg
dr
b
g
r
db
dg
dr
ab
ag
ar
b
g
r
k
k
k
l
l
l
k
k
k
l
l
l
k
k
k
I
I
I
I
I
I
LrLn ˆˆˆˆ
uma reflexão apenas
LnnLr ˆˆ)ˆˆ(2ˆ para cada fonte de luz
![Page 46: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/46.jpg)
MGattass
Sombra
A luz não chega a superfíce
ip
sr
si ttsombradeRaio rpp ˆ)(:
![Page 47: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/47.jpg)
MGattass
Modelo de várias luzes e sombra
contráriocaso
sombrasef s 1
0
luzes
n
r
sb
sg
sr
b
g
r
db
dg
dr
b
g
r
s
db
dg
dr
ab
ag
ar
b
g
r
k
k
k
l
l
l
k
k
k
l
l
l
f
k
k
k
I
I
I
I
I
I
LrLn ˆˆˆˆ
![Page 48: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/48.jpg)
MGattass
Fontes de luz especiais: Onidirecional
Fonte: Mauricio Hofmam
![Page 49: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/49.jpg)
MGattass
Fontes de luz especiais: Direcional
Fonte: Mauricio Hofmam
![Page 50: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/50.jpg)
MGattass
Fontes de luz especiais: Farolete
Fonte: Mauricio Hofmam
![Page 51: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/51.jpg)
MGattass
Uma revisão
![Page 52: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/52.jpg)
MGattass
Reflexão de outros objetos
Superfície especular
n
v
iprr
ri ttrefletidoRaio rpp ˆ)(:
![Page 53: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/53.jpg)
MGattass
Transparência
Objeto transparente
nv
ip
tr
ti ttrefratadoRaio rpp ˆ)(:
1
2
2
1
sin
sin
lei de Snell
![Page 54: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/54.jpg)
MGattass
n
t
tt
vv
t1ˆ
Cálculo do Raio Refratado
i
n vnnvv ˆˆ)ˆˆ( t
v
ip
tr
nvtv
ti vsin
it
it
sinsin
tt 2sin1cos
)ˆ(cosˆsin ntr ttt
ti ttrefratadoRaio rpp ˆ)(:
t
![Page 55: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/55.jpg)
MGattass
Advertência: Refração não é simples!
![Page 56: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/56.jpg)
MGattass
Iluminação considerando superfícies refletoras e objetos transparentes
redução datransparência
redução da reflexão
)(
)(
)(
)1(
)(
)(
)(ˆˆˆˆ
tb
tg
tr
rb
rg
rr
luzes
n
r
sb
sg
sr
b
g
r
db
dg
dr
b
g
r
s
db
dg
dr
ab
ag
ar
b
g
r
I
I
I
o
I
I
I
k
k
k
k
l
l
l
k
k
k
l
l
l
f
k
k
k
I
I
I
I
I
I
r
r
r
r
r
r
LrLn
![Page 57: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/57.jpg)
MGattass
Natureza recursiva do algoritmo de Rastreamento de Raios
R1
T1
R2
T2
R3
L1
L3
L2
R1
R2
L1
L3L2
T1
T2R3
![Page 58: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/58.jpg)
MGattass
Resultado de curso
Alunos de CGI98
![Page 59: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/59.jpg)
MGattass
Algoritmo de traçado de raios
Color trace (Scene scene, Vector3d eye, Vector3d 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 ( scene, object, ray, point, normal, depth)); } return BACKGROUND;}
Color trace (Scene scene, Vector3d eye, Vector3d 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 ( scene, object, ray, point, normal, depth)); } return BACKGROUND;}
selecione o centro de projeção(eye) 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(eye) 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 60: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/60.jpg)
Color shade (Scene scene, Object object, Vector3D ray, Vector3D point, Vector3D normal, int depth){ color = termo ambiente do material do objeto ;
for (cada luz) { L = vetor unitário na direção de point para a posição da luz; if (L • normal>0) { if (a luz não for bloqueada no ponto) { color += componente difusa (Eq.1) + componente especular (Eq.2) } }
if (depth >= maxDepth) return color;
if (objeto é refletor) { rRay = raio na direção de reflexão; rColor = trace(scene, point, rRay, depth+1); reduza rColor pelo coeficente de reflexão especular e some a color; }
return color;}
Color shade (Scene scene, Object object, Vector3D ray, Vector3D point, Vector3D normal, int depth){ color = termo ambiente do material do objeto ;
for (cada luz) { L = vetor unitário na direção de point para a posição da luz; if (L • normal>0) { if (a luz não for bloqueada no ponto) { color += componente difusa (Eq.1) + componente especular (Eq.2) } }
if (depth >= maxDepth) return color;
if (objeto é refletor) { rRay = raio na direção de reflexão; rColor = trace(scene, point, rRay, depth+1); reduza rColor pelo coeficente de reflexão especular e some a color; }
return color;}
![Page 61: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/61.jpg)
MGattass
Texturas
u
v
1.0
1.0
0 u1.0
1.0
0
v
u1.0
1.0
0
v
Texturas 2D = Imagens onde o domínio é u, v [0,1]×[0,1] R2
![Page 62: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/62.jpg)
MGattass
Sistemas de coordenada de textura na caixa
u
v
u
v
x
y
z
uv
(1,1)(0,0)
(0,0)
(0,0)face x=xmax
minmax
min
yy
yyu
minmax
min
zz
zzv
![Page 63: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/63.jpg)
MGattass
Sistema de coordenada de 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
x
![Page 64: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/64.jpg)
MGattass
Sistema de coordenada de textura no triângulo
u
v
(u1,v1)
(u2,v2)
(u3,v3)
u1= u3 u2
v1= v2
v3
1
2
3
![Page 65: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/65.jpg)
MGattass
Textura no triângulo e coordenadas baricêntricas
p1
v12
v23
v31
2/)(ˆ
2/)(ˆ
2/)(ˆ
1123
3312
2231
ppvn
ppvn
ppvn
i
i
i
A
A
A
A3
A1A2
321 AAAAT
T
T
T
AAL
AAL
AAL
/
/
/
33
22
11
n
p2
p3
intip
3
33
2
22
1
11 v
uL
v
uL
v
uL
v
u
i
i
)(1 213 LLL
![Page 66: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/66.jpg)
MGattass
Textura
![Page 67: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/67.jpg)
MGattass
Texturas de rugosidade (bump textures) eTexturas de deslocamentos (displacement mapping)
Pertubar aleatóriamenteas normais dos objetos
n
),(ˆ'ˆ nn
Pertubar aleatóriamenteas posições dos pontos
![Page 68: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/68.jpg)
MGattass
Textura ambiente (environment maps)
x y
z
u
v
(0,0)
(1,1)face dos raios x>y e x>z
x
xyu
2
x
xzv
2
y=-x
y=x
z=-x
z=x
![Page 69: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/69.jpg)
MGattass
Tratamento anti-alias
•Lance um raio para cada sub-pixel•Faça uma média dos valores obtidos
dx, dy = variáveis randômicas
dxdya sub-pixels
pixel
![Page 70: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/70.jpg)
MGattass
Anti-alias
(a) original (b) uniforme (c) “jittered”
pixel pixel pixel
![Page 71: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/71.jpg)
MGattass
Refinamento Progresivo
subdivisão finalsegunda subdivisão
primeira subdivisãoamostragem inicial
pixels sendo visitados pixels já visitados
![Page 72: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/72.jpg)
![Page 73: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/73.jpg)
![Page 74: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/74.jpg)
![Page 75: MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno](https://reader035.vdocument.in/reader035/viewer/2022081602/552fc10b497959413d8c25ad/html5/thumbnails/75.jpg)
MGattass
Radiosidade e Ray Tracing
Klaus Mueller, Stony Brook University, Computer Science (CSE 564)
global illuminationstandard raytracing