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