Ray Tracing
Autor: Osvaldo Ramos Tsan Hu
Orientador: Prof. Marcio Lobo
Objetivo
O propósito deste trabalho é apresentar a
metodologia de confecção de imagens
utilizando a técnica denominada “Ray
Tracing”.
Ray Tracing
Método de renderização.
Baseado no conceito de iluminação global.
Inversão do sentido dos raios de luz.
Testar os raios de encontro a todos os objetos.
Determinar sombras, reflexões e texturas dos
objetos da cena.
Ray Tracing
É necessário primeiro se construir o modelo
de cenário.
Ray Tracing
Para a construção do modelo de cenário
utiliza-se alguma linguagem que permita a
descrição dos objetos da cena.
#switch ( Quality )
#declare nice = color white;
#declare nice2 = color rgb <.2, .2 ,.8>;
#declare grad_tex =
texture {
pigment { gradient y color_map { [ 0.0 color nice ] [ 0.6 color nice2 ] } }
finish { basic_finish }
scale 200
}
Ray Tracing
A partir do cenário construído, adiciona-se as
fontes de luz e a posição do olho (câmera).
camera {
location <0, 300*cos(clock), -750*sin(clock)>
direction 2*z
up
y
right 9/16*x
look_at <0, 267, 0>
}
#declare basic_finish =
finish { ambient 0.4 diffuse 0.6 brilliance 1 phong 0 phong_size 40
reflection 0 }
light_source { <500, 500, 0> color (white) area_light 50*y, 50*z, 5, 5
adaptive 0 jitter }
Ray Tracing
No Ray Tracing um raio da luz parte do olho
ou da câmera e segue até atingir um pixel
no plano de imagem da cena
Ray Tracing
Alguns raios não atingem nenhum objeto.
Estes são desprezados.
Ray Tracing
Outros atingem.
Caso o raio atinja o objeto, é necessário saber se
esse ponto esta ou não em uma sombra.
Ray Tracing
Quando um raio bate em um objeto, um
segundo raio, chamado “raio de sombra”, é
disparado em direção às fontes de luz.
Ray Tracing
Se o raio de sombra atingir um outro objeto
antes de atinjir uma fonte de luz, então
aquele pixel está na sombra do primeiro
objeto.
Ray Tracing
Temos o primeiro ponto de interseção da
sombra no objeto.
Ray Tracing
Também, quando um raio bate no objeto, é
gerado um raio refletido para testar o
encontro à todos os objetos da cena.
Ray Tracing
Se o raio refletido bater em um objeto então
o resultado é retornado ao primeiro ponto
da interseção (efeito espelho).
Ray Tracing
Caso o objeto cruzado seja transparente, um
raio é gerado e transmitido para testar o
encontro aos outros objetos da cena.
Ray Tracing
Se o raio transmitido bater em um objeto então um
modelo local de iluminação é aplicado no ponto
de interseção e o resultado é retornado ao
primeiro ponto da interseção.
Ray Tracing
Os raios refletidos podem gerar outros raios
refletidos que podem gerar outros raios refletidos,
etc.
A seqüência de três imagens mostra uma cena
simples com nenhuma reflexão, uma dupla
reflexão, e então uma reflexão tripla.
Ray Tracing
A relação entre os raios de luz: Rin = -Rout
A projeção do raio Rin na normal N é N x cos(θ);
Rout = N cos(q) + S
Rin + S = N cos(q)
S = N cos(q) - Rin
Rout = 2 N cos(q) - Rin = 2 N (N · Rin) - Rin
Ray Tracing
Acelerando o Ray Tracer
O Ray Tracer é um enorme consumidor de
máquina por causa da enorme quantidade
de cálculos necessária.
Assim para uma cena com 100 objetos e
computada com uma definição espacial de
512 x 512, supondo 10 operações em
ponto flutuante para o teste do objeto,
teríamos aproximadamente 250.000 x 100
X 10 = 250.000.000 operações.
Ray Tracing
Acelerando o Ray Tracer
1. Usar uma máquina mais rápida
2. Usar máquina que trabalhe com
processadores paralelos.
3. Usar algoritmos mais eficientes
4. Reduzir o número de raios
Ray Tracing
Acelerando o Ray Tracer
Controle adaptativo de profundidade
• Uma das técnicas para diminuir a quantidade
de raios é parar de gerar raios de reflexão e
de transmissão quando a intensidade se
torna menor do que um valor determinado.
• Mas não é necessário atingir o valor máximo
se as superfícies não forem altamente
reflexivas.
Ray Tracing
Acelerando o Ray Tracer
Volumes limitados
• Encapsular e hierarquizar os objetos em
volumes e testa-los usando a ordem
hierárquica definida.
Bibliografia
• SigGraph, HyperGraph, home page:
http://www.siggraph.org/education/materials/HyperGraph/rayt
race/rtrace0.htm
• Raves, A: Lego Library, home page:
http://www.antonraves.com/lego.html
Download

Ray Tracing