Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouBenício Azevedo Alterado mais de 10 anos atrás
1
Ray Tracing Patrícia Cordeiro Pereira Pampanelli
Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio
2
Sumário Introdução Objetivos Fundamentos Implementação Resultados
Passos Iniciais Traços secundários Modelagem dos objetos Implementação Renderização com GLSL Resultados
3
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
4
Objetivos Implementar o algoritmo básico de traçado de raios
5
Fundamentos Definição da câmera Definição da cena Algoritmo básico
Modelagem dos objetos
6
Definição da câmera eixo vertical eixo óptico eixo horizontal
Espaço do olho xe, ye, ze Eixo vertical e eixo horizontal Eixo óptico eixo óptico v u eye xe ye ze eixo horizontal eixo vertical
7
Definição da câmera Campo de visão – Abertura da câmera fov1 fov2 a f1
fovy f1 f2 fov1 fov2 a
8
Definição da cena Cor de fundo Luz ambiente Fontes de luz Câmera
Conjunto de objetos Esfera Caixa Triângulo ...
9
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
10
Algoritmo Básico - Traços secundários
Região visível Sombra
11
Modelagem dos Objetos Tipo de objeto Material Esfera Caixa Triângulo
... Material Cor luz difusa Cor luz especular Fator especular Fator reflexão Fator opacidade
12
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; }
13
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); }
14
Resultados Luz difusa – sem sombra
15
Resultados Luz difusa – com sombra
16
Resultados Luz especular
17
Resultados Reflexão
18
Transparência
19
Resultados
20
Resultados
21
Resultados
22
Referências Notas de aula
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.