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

Transcript of RAY TRACING Patrícia Cordeiro Pereira Pampanelli Disciplina: Fundamentos de Computação Gráfica...

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