ray tracing patrícia cordeiro pereira pampanelli disciplina: fundamentos de computação gráfica...
Post on 18-Apr-2015
115 Views
Preview:
TRANSCRIPT
RAY TRACINGPatrícia Cordeiro Pereira PampanelliDisciplina: 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
eixo óptico
v
u
eyexe
ye
ze
eixo horizontal
eixo vertical
Definição da câmera• Campo de visão – Abertura da câmera
• fovy
f1f2
fov1fov2a
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érticegl_Position = projectionMatrix*modelViewMatrix*vertex;
}
Implementação• Fragment shader
#version 330
// Imagem resultante obtida com o Ray Tracinguniform sampler2D imageResult; // Coordenadas para o acesso à texturain 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
top related