RAY TRACING
Patrícia Cordeiro Pereira Pampanelli
Disciplina: Fundamentos de Computação Gráfica
Professor: Marcelo Gattass
PUC-Rio
Sumário
• Introdução
• Objetivos
• Fundamentos
• Passos Iniciais
• Traços secundários
• Modelagem dos objetos
• Implementação
• Renderização com GLSL
• Resultados
Introdução
• Algoritmo de renderização e síntese de imagens
• Utiliza o traçado de raios a partir de cada um dos pixels
do plano da imagem
• Alto grau de realismo das imagens
• Alto custo computacional
Objetivos
• Implementar o algoritmo básico de traçado de raios
Fundamentos
• Definição da câmera
• Definição da cena
• Algoritmo básico
• Modelagem dos objetos
Definição da câmera
• Espaço do olho
• xe, ye, ze
• Eixo vertical e eixo horizontal
• Eixo óptico
v
ye
eixo vertical
eixo óptico
ze
eye
xe
u
eixo horizontal
Definição da câmera
• Campo de visão – Abertura da câmera
• fovy
fov1
fov2
a
f
1
f
2
Definição da cena
• Cor de fundo
• Luz ambiente
• Fontes de luz
• Câmera
• Conjunto de objetos
• Esfera
• Caixa
• Triângulo
• ...
Algoritmo Básico - Passos iniciais
• Um raio é lançado para cada um dos pixels da imagem
• Cada raio tem uma origem e uma direção
Algoritmo Básico - Traços secundários
• Região visível
• Sombra
Modelagem dos Objetos
• Tipo de objeto
• Esfera
• Caixa
• Triângulo
• ...
• Material
• Cor luz difusa
• Cor luz especular
• Fator especular
• Fator reflexão
• Fator opacidade
Implementação
• Vertex shader
#version 330
uniform mat4 projectionMatrix;
uniform mat4 modelViewMatrix;
in vec4 vertex;
in vec2 texCoord;
out vec2 fragmentTexCoord;
void main(void)
{
fragmentTexCoord = texCoord;
// Posição do vértice
gl_Position = projectionMatrix*modelViewMatrix*vertex;
}
Implementação
• Fragment shader
#version 330
// Imagem resultante obtida com o Ray Tracing
uniform sampler2D imageResult;
// Coordenadas para o acesso à textura
in vec2 fragmentTexCoord;
layout(location = 0, index = 0) out vec4 fragColor;
void main(void)
{
fragColor = texture2D(imageResult, fragmentTexCoord);
}
Resultados
• Luz difusa – sem sombra
Resultados
• Luz difusa – com sombra
Resultados
• Luz especular
Resultados
• Reflexão
Transparência
Resultados
Resultados
Resultados
Referências
• Notas de aula
Download

Ray Tracing - PUC-Rio