Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Raytracing
SCC0250 - Computao Grca
25 de abril de 2013
1 / 91
Raytracing
Introduo
Sumrio
1 Introduo
2 Implementao
Estruturas Bsicas
Lanando Raios
Calculando Intersees
Tonalizao
Ray Casting
Ray Tracing
2 / 91
Raytracing
Introduo
Sumrio
1 Introduo
2 Implementao
Estruturas Bsicas
Lanando Raios
Calculando Intersees
Tonalizao
Ray Casting
Ray Tracing
3 / 91
Raytracing
Introduo
Mtodos de Ray-Tracing
4 / 91
Raytracing
Introduo
Mtodos de Ray-Tracing
5 / 91
Raytracing
Introduo
Mtodos de Ray-Tracing
6 / 91
Raytracing
Introduo
7 / 91
Raytracing
Introduo
8 / 91
Raytracing
Introduo
Mtodo de Ray-Tracing
O processo contrrio aplicado (raios emanando dos pixels) j que
existe um nmero innito de raios emanando das superfcies
9 / 91
Raytracing
Introduo
Calcula-se Interseces
Conforme cada raio gerado, a lista de superfcies processada para
encontrar as interseces
Se intersectar, calcula-se a distncia do pixel ao ponto de interseco
10 / 91
Raytracing
Introduo
11 / 91
Raytracing
Introduo
Critrios de Parada
Um caminho na rvore binria para um pixel terminado se uma
das condies satisfeita
O raio no intersecta nenhuma superfcie
O raio intersecta uma fonte de luz que no uma superfcie de
reexo
A mxima profundidade da rvore (especicada pelo usurio) foi
alcanada
12 / 91
Raytracing
Introduo
Tonalizao
Em cada interseco o modelo de iluminao invocado para
determinar sua intensidade e o valor armazenado na rvore
Um raio que intersecta uma fonte no reexiva de luz pode receber a
intensidade da fonte
Sombra
O caminho ao longo da direo de L conhecido como raio de
sombra
Uma superfcie estar na sombra em relao a uma fonte de luz se
existir algum objeto intersectando o raio de sombra entre a superfcie
e essa fonte
Modelo de Iluminao
O modelo de iluminao o modelo bsico de Phong
Luz ambiente na superfcie calculada como ka Ia
Reexo difusa proporcional a kd (N L)
A reexo especular proporcional a ks (H N)ns
14 / 91
Raytracing
Introduo
Reexo
A direo da reexo especular R para os raios secundrios depende
da normal da superfcie e a direo de incidncia
R = u (2u N)N
Refrao
Para superfcies transparentes, a intensidade transmitida pode ser
calculada traando um raio secundrio ao longo da direo de
transmisso T
i i
T= u cos r cos i N
r r
15 / 91
Raytracing
Introduo
16 / 91
Raytracing
Introduo
17 / 91
Raytracing
Introduo
18 / 91
Raytracing
Introduo
Raio Inicial
A posio inicial P0 pode ser a posio Ppix do pixel no plano de
projeo, ou pode ser o ponto de projeo Pprp
19 / 91
Raytracing
Introduo
20 / 91
Raytracing
Introduo
Interseces Esfera-Raio
21 / 91
Raytracing
Introduo
Interseces Esfera-Raio
Portanto o resultado
p
s = Pu (Pu)2 (|P|2 r2 )
22 / 91
Raytracing
Introduo
Interseces Esfera-Raio
23 / 91
Raytracing
Introduo
Interseces Poliedro-Raio
24 / 91
Raytracing
Introduo
Interseces Poliedro-Raio
25 / 91
Raytracing
Introduo
Interseces Poliedro-Raio
26 / 91
Raytracing
Introduo
Interseces Poliedro-Raio
27 / 91
Raytracing
Introduo
Interseces Poliedro-Raio
28 / 91
Raytracing
Introduo
29 / 91
Raytracing
Introduo
Sumrio
1 Introduo
2 Implementao
Estruturas Bsicas
Lanando Raios
Calculando Intersees
Tonalizao
Ray Casting
Ray Tracing
31 / 91
Raytracing
Implementao
Estruturas Bsicas
Sumrio
1 Introduo
2 Implementao
Estruturas Bsicas
Lanando Raios
Calculando Intersees
Tonalizao
Ray Casting
Ray Tracing
32 / 91
Raytracing
Implementao
Estruturas Bsicas
Estruturas Bsicas
33 / 91
Raytracing
Implementao
Estruturas Bsicas
Estruturas Bsicas
34 / 91
Raytracing
Implementao
Estruturas Bsicas
Estruturas Bsicas
35 / 91
Raytracing
Implementao
Lanando Raios
Sumrio
1 Introduo
2 Implementao
Estruturas Bsicas
Lanando Raios
Calculando Intersees
Tonalizao
Ray Casting
Ray Tracing
36 / 91
Raytracing
Implementao
Lanando Raios
Parmetros da Cmera
37 / 91
Raytracing
Implementao
Lanando Raios
Cmera Implementao
38 / 91
Raytracing
Implementao
Lanando Raios
39 / 91
Raytracing
Implementao
Lanando Raios
40 / 91
Raytracing
Implementao
Lanando Raios
As direes x e y do plano de
projeo so encontradas fazendo
Vz Vup
Vx =
||Vz Vup ||
Vx Vz
Vy =
||Vx Vz ||
41 / 91
Raytracing
Implementao
Lanando Raios
42 / 91
Raytracing
Implementao
Lanando Raios
43 / 91
Raytracing
Implementao
Lanando Raios
44 / 91
Raytracing
Implementao
Lanando Raios
45 / 91
Raytracing
Implementao
Lanando Raios
46 / 91
Raytracing
Implementao
Calculando Intersees
Sumrio
1 Introduo
2 Implementao
Estruturas Bsicas
Lanando Raios
Calculando Intersees
Tonalizao
Ray Casting
Ray Tracing
47 / 91
Raytracing
Implementao
Calculando Intersees
Clculos de Interseco
48 / 91
Raytracing
Implementao
Calculando Intersees
Implementao
49 / 91
Raytracing
Implementao
Calculando Intersees
Implementao
50 / 91
Raytracing
Implementao
Calculando Intersees
Implementao
51 / 91
Raytracing
Implementao
Calculando Intersees
52 / 91
Raytracing
Implementao
Calculando Intersees
Com
A = x2dir + ydir
2 2
+ zdir
B = 2 (xor xdir + yor ydir + zor zdir )
C = x2or + yor
2 2
+ zor r2
53 / 91
Raytracing
Implementao
Calculando Intersees
Considerando que
B =2D
Com
D = xor xdir + yor ydir + zor zdir
Ento, temos
2 D 4 D2 4 c p
s= = D D2 C
2
54 / 91
Raytracing
Implementao
Calculando Intersees
Calculando a Normal
Considerando que Pi o ponto de interseco sobre a esfera, Pc o
centro da esfera, e r o raio, a normal no ponto de interseco ser
N = (Pi Pc )/r
55 / 91
Raytracing
Implementao
Calculando Intersees
56 / 91
Raytracing
Implementao
Calculando Intersees
57 / 91
Raytracing
Implementao
Tonalizao
Sumrio
1 Introduo
2 Implementao
Estruturas Bsicas
Lanando Raios
Calculando Intersees
Tonalizao
Ray Casting
Ray Tracing
58 / 91
Raytracing
Implementao
Tonalizao
Tonalizao
Modelo de Iluminao
O modelo de iluminao o modelo bsico de Phong
Pn
I = Iambdif f + l=1 [Il,dif f + Il,spec ]
Pn
= ka Ia + l=1 Il [kd max(0.0, (N L)) + ks max(0.0, (N H)ns )]
59 / 91
Raytracing
Implementao
Tonalizao
Implementao
60 / 91
Raytracing
Implementao
Tonalizao
Implementao
61 / 91
Raytracing
Implementao
Tonalizao
Implementao
62 / 91
Raytracing
Implementao
Tonalizao
Implementao
63 / 91
Raytracing
Implementao
Tonalizao
Tonalizao
64 / 91
Raytracing
Implementao
Ray Casting
Sumrio
1 Introduo
2 Implementao
Estruturas Bsicas
Lanando Raios
Calculando Intersees
Tonalizao
Ray Casting
Ray Tracing
65 / 91
Raytracing
Implementao
Ray Casting
Ray Casting
66 / 91
Raytracing
Implementao
Ray Casting
Ray Casting
67 / 91
Raytracing
Implementao
Ray Casting
68 / 91
Raytracing
Implementao
Ray Casting
69 / 91
Raytracing
Implementao
Ray Casting
70 / 91
Raytracing
Implementao
Ray Casting
71 / 91
Raytracing
Implementao
Ray Casting
Ray Casting
72 / 91
Raytracing
Implementao
Ray Casting
Ray Casting
Sombras
O efeito de sombras (hard) pode ser facilmente obtido modicando
a rotina de Phong para usar raios de sombra
Um raio entre o ponto de interseco e a(s) fonte(s) de luz criado
Se esse raio intersectar algum objeto, o ponto de interseco est na
sombra desse objeto, somente contribuio ambiente deve ser levada
em considerao
Se no houver interseco, calcular o modelo de Phong normalmente
73 / 91
Raytracing
Implementao
Ray Casting
Ray Casting
74 / 91
Raytracing
Implementao
Ray Casting
75 / 91
Raytracing
Implementao
Ray Casting
Problemas
Por erros numricos, o ponto de interseco pode cair dentro da
esfera, prxima interseco ocorrer dentro da esfera
Soluo: mover o ponto de interseco um pouco na direo da
normal para garantir que que fora
76 / 91
Raytracing
Implementao
Ray Casting
Ray Casting
77 / 91
Raytracing
Implementao
Ray Casting
Ray Casting
78 / 91
Raytracing
Implementao
Ray Tracing
Sumrio
1 Introduo
2 Implementao
Estruturas Bsicas
Lanando Raios
Calculando Intersees
Tonalizao
Ray Casting
Ray Tracing
79 / 91
Raytracing
Implementao
Ray Tracing
Ray Tracing
80 / 91
Raytracing
Implementao
Ray Tracing
Ray Tracing
81 / 91
Raytracing
Implementao
Ray Tracing
Ray Tracing
82 / 91
Raytracing
Implementao
Ray Tracing
Ray Tracing
83 / 91
Raytracing
Implementao
Ray Tracing
Ray Tracing
84 / 91
Raytracing
Implementao
Ray Tracing
Ray Tracing
Anti-Aliasing
Para contornar o problema de aliasing, um pixel pode ser dividido
em sub-pixel, e raios podem ser lanados para esses sub-pixels
A cor nal do pixel ser a mdia da cor desses sub-pixels
O processo ser x vezes mais lento se cada pixel for dividido em x
sub-pixels
85 / 91
Raytracing
Implementao
Ray Tracing
Ray Tracing
86 / 91
Raytracing
Implementao
Ray Tracing
Ray Tracing
87 / 91
Raytracing
Implementao
Ray Tracing
Ray Tracing
89 / 91
Raytracing
Implementao
Ray Tracing
Ray Tracing
90 / 91
Raytracing
Implementao
Ray Tracing
Ray Casting
Passos Futuros
Sombras mais realsticas: soft shadow
Acelerar usando subdiviso espacial (octree)
Transmisso (transparncia)
Adio de textura
Interseco com outros tipos de objetos (malhas poligonais)
Efeitos de foco da lente da cmera
91 / 91