ray tracing patrícia cordeiro pereira pampanelli disciplina: fundamentos de computação gráfica...

22
RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Upload: internet

Post on 18-Apr-2015

115 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

RAY TRACINGPatrícia Cordeiro Pereira PampanelliDisciplina: Fundamentos de Computação Gráfica

Professor: Marcelo Gattass

PUC-Rio

Page 2: 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

Page 3: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

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

Page 4: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Objetivos• Implementar o algoritmo básico de traçado de raios

Page 5: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Fundamentos

• Definição da câmera• Definição da cena• Algoritmo básico• Modelagem dos objetos

Page 6: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

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

Page 7: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Definição da câmera• Campo de visão – Abertura da câmera

• fovy

f1f2

fov1fov2a

Page 8: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Definição da cena• Cor de fundo• Luz ambiente• Fontes de luz• Câmera• Conjunto de objetos

• Esfera• Caixa• Triângulo• ...

Page 9: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

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

Page 10: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Algoritmo Básico - Traços secundários

• Região visível• Sombra

Page 11: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Modelagem dos Objetos• Tipo de objeto

• Esfera• Caixa• Triângulo• ...

• Material• Cor luz difusa• Cor luz especular• Fator especular• Fator reflexão• Fator opacidade

Page 12: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

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;

}

Page 13: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

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);

}

Page 14: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Resultados• Luz difusa – sem sombra

Page 15: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Resultados• Luz difusa – com sombra

Page 16: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Resultados• Luz especular

Page 17: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Resultados• Reflexão

Page 18: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Transparência

Page 19: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Resultados

Page 20: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Resultados

Page 21: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Resultados

Page 22: RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica Professor: Marcelo Gattass PUC-Rio

Referências• Notas de aula