Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio.

Slides:



Advertisements
Apresentações semelhantes
GEOMETRIA DESCRITIVA A
Advertisements

GEOMETRIA DESCRITIVA A
Daniel de Vasconcelos Campos
II Projeto de PG Thiago Augusto Souza do Nascimento.
Distâncias.
Planos.
Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro Conteúdo: - Transformações geométricas no plano.
Real Time Rendering.
GEOMETRIA DESCRITIVA A
Função quadrática: a função geral de 2º grau
Capítulo 35 - Interferência
António Ramires Fernandes & Luís Paulo Santos – Adaptado por Alex F. V. Machado Computação Gráfica Pipeline Gráfico.
Modelos de ILuminação Alex F. V. Machado.
O que é Iluminação? Fenômeno físico resultante da interação de fótons com uma superfícieFenômeno físico resultante da interação de fótons com uma superfície.
Parte 1 – Conceitos de Real Time Rendering. a. Pipeline Gráfico.
Introdução à Computação Gráfica Colorização
24T12 – Sala 3F5 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227
Transformações Geométricas
INF Computação Gráfica
Transformações Geométricas Coordenadas Homogêneas e Rotações.
Ismael Andrade Pimentel
Algoritmo de Rastreamento de Raios
Computação Gráfica Interativa - Gattass
MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno.
Programa Exemplo em C++
04/07/07 RTDistribuído César Palomo 1 Fundamentos de CG Prof Marcelo Gattass 2007-s01 Trabalho 3 – Ray Tracing Distribuído César Palomo.
Transformações Geométricas na Imagem Amostragem e Reconstrução.
MGattass Algoritmo de Rastreamento de Raios. MGattass Registros da camera obscura (latim) 1.Mo-Ti (V século antes de Cristo) – quarto escuro com pequeno.
INF 1366 – Computação Gráfica Interativa Iluminação e Shading
Computação Gráfica: Aula8: Iluminação
Computação Gráfica: Rendering e Rasterização
Computação Gráfica: Aula6: Iluminação
Ray Tracing.
PSI-2652: Processamento, Síntese e Análise de Imagens II Rodrigo Debczynski Fernandes – n°USP Prof. Marcio Lobo.
Visible-Surface Ray Tracing
Iluminação e FotoRealismo: Ray Tracing Distribuído Luís Paulo Peixoto dos Santos
An Improved Illumination Model for Shaded Display
Iluminação e FotoRealismo: Ray Tracing Distribuído Luís Paulo Peixoto dos Santos
Computação Gráfica: Aula6: Iluminação
MECÂNICA - ESTÁTICA Vetores Forças Cap. 2.
Transformações Geométricas
4.6 Sombras de sólidos geométricos
Ray Tracing Patrícia Cordeiro Pereira Pampanelli
Carlos Oliveira Modelos de Reflexão.
Visão Computacional Shape from Shading
FUNDAMENTOS DE COMPUTACION GRAFICA Jessica Palomares
Ray Tracing Felipe Baldino Moreira Fundamentos de Computação Gráfica
Estimação da direção de múltiplas fontes de luz Baseado no artigo Estimation of Illuminant Direction and Intensity of Multiple Light Sources, de W. Zhou.
Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio.
Formulação do Problema Direto
Thiago Aurélio Prof. Dr. Paulo Roberto Gomes Luzzardi
Ray Tracing Anderson Tavares Bacharelado em Ciência da Computação
Computação Gráfica – Visibilidade
Ambient Occlusion Disciplina: Fundamentos de Computação Gráfica Professor : Marcelo Gattass Allan Carlos Avelino Rocha Departamento de Informática.
por Rodrigo Botelho da Silva
Renderização em Tempo Real
1 Iluminação Global Rodrigo de Toledo UFRJ, CG1,
Mapeamento de Textura: Aspectos Gerais
Ray Tracing Estocástico e Distribuido Aruquia Barbosa.
Algoritmo de Rastreamento de Raios
Prof. Marcelo Gattass Gustavo Lopes Mourad.
Modelo e Câmera e Projeção no OpenGL
Apresentação 2 Aumento do realismo : texturas e sombras, evolução dos modelos de reflexões locais.
Ray Tracing Autor: Osvaldo Ramos Tsan Hu Orientador: Prof. Marcio Lobo.
Conceitos Básicos de Óptica Geométrica
Computação Gráfica: Aula6: Iluminação
Introdução à Computação Gráfica Iluminação
Introdução à Computação Gráfica Ray Tracing Claudio Esperança Paulo Roma Cavalcanti.
Algoritmo de Rastreamento de Raios
Algoritmo de Rastreamento de Raios
Transcrição da apresentação:

Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio

Pinturas: produção de imagens Avercamp, Hendrick ( ).

Canaletto (Giovanni Antonio Canal) ( ).

Pin-Hole Camera Câmara escura - Leonardo da Vinci Luis-Jacques-Mandé Daguerre ( )

Modelo de câmera x y z Iluminação Objetos Câmara

Traçado de raios: raios e objetos implícitos x y z x = x 0 + t (x 1 - x 0 ) y = y 0 + t (y 1 - y 0 ) z = z 0 + t (z 1 - z 0 ) (x-x c ) 2 + (y-y c ) 2 + (z-z c ) 2 = R 2 -b ± b 2 - 4ac 2a t =

Interseção com a esfera O D titi

P0P0 P1P1 x = x 0 + t (x 1 - x 0 ) y = y 0 + t (y 1 - y 0 ) z = z 0 + t (z 1 - z 0 ) z x y Ax + By + Cz + D = A0A0 A3A3 A1A1 L 0 = A 0 / A T L 1 = A 1 / A T L 2 = A 2 / A T L i [0,1 ] P é interior se e somente se Raios e objetos descritos pela fronteira

Interseção com o plano do triângulo O D P(t i ) V1V1 N

Ponto no interior de um triângulo V1V1 V2V2 V3V3 PiPi PePe a 12 a 23 a 31 N P é interior se t 1, t 2 e t 3 tem o mesmo sentido, ou seja: ou

Coordenadas baricêntricas V1V1 V2V2 V3V3 PiPi PePe a 12 a 23 a 31 N P é interior se L 1, L 2 e L 3 [0..1] A3A3 A1A1 A2A2 Mais ainda:

Coordenadas baricêntricas como interpolantes V1V1 V2V2 V3V3 PiPi A3A3 A1A1 A2A L1L1 L2L2 L3L3

Interpolação com coordenadas baricêntricas V1V1 V2V2 V3V3 PiPi A3A3 A1A1 A2A2 ou: C1C1 C2C2 C3C3 U1U1 U2U2 U3U3

Exemplo: uma esfera e duas paredes z x y #SURFACE #LIGHT #SPHERE #BOX

Componente de reflexão difusa N L N N L L I, l, k [0,1 ]

Componente de reflexão especular N R V L Brilho -0,500,51 n=4 n=1 n=8 I, l, k [0,1 ]

Cálculo do vetor R N L R 1 L L = L / (L*N) H H = N - L H R R = N + H R = unitário (R)

Luz direta sobre um ponto N R V

Modelo de várias luzes Luz Ambiente

Sombra A luz não chega a superfíce

Uma revisão

Reflexão de outros objetos N V Superfície especular

Transparência N V Superfície transparente = sin Lei de Snell:

Iluminação considerando R e T transparência redução da reflexão

Traçado de Raios Recursivo R1R1 T1T1 R2R2 T2T2 R3R3 L1L1 L3L3 L2L2 R1R1 R2R2 L1L1 L3L3 L2L2 T1T1 T2T2 R3R3

Resultado de curso Alunos de CGI98

Algoritmo de traçado de raios rtColor trace ( rtRay ray, int depth) { determine a interseção mais próxima com um objeto if (intercepta objeto) { calcule a normal no ponto de interseção return ( shade ( object, ray, intersection, normal, depth); } return BACKGOUND; } rtColor trace ( rtRay ray, int depth) { determine a interseção mais próxima com um objeto if (intercepta objeto) { calcule a normal no ponto de interseção return ( shade ( object, ray, intersection, normal, depth); } return BACKGOUND; } selecione o centro de projeção e uma janela no plano de projeção for (cada pixel da tela) { determine o raio ray que vai do centro de projeção ao pixel; pixel = trace ( ray, 1); } selecione o centro de projeção e uma janela no plano de projeção for (cada pixel da tela) { determine o raio ray que vai do centro de projeção ao pixel; pixel = trace ( ray, 1); }

rtColor shade ( rtObject object, rtRay ray, int depth, rtPoint point, rtNormal normal, int depth) { rtColor color, rColor, sColor; rtRay rRay, tRay, sRay; color = termo ambiente; for (cada luz) { sRay = raio para o ponto de luz; if (sRay normal>0) { calcule quanto de luz é bloqueada por superfícies opacas e transparentes e use para computar as componentes difusa e especular } } if (depth >= maxDepth) return color; if (objeto é refletor) { rRay = raio na direção de refleção; rColor = trace( rRay, depth+1); reduza rColor pelo coeficente de refleção especular e some a color; } if (objeto é transparente) { tRay = raio na direção de refração; if (reflexão total não ocorre} { tColor = trace( tRay, depth+1); reduza tColor pelo coeficente de refração especular e some a color; } } return color; } rtColor shade ( rtObject object, rtRay ray, int depth, rtPoint point, rtNormal normal, int depth) { rtColor color, rColor, sColor; rtRay rRay, tRay, sRay; color = termo ambiente; for (cada luz) { sRay = raio para o ponto de luz; if (sRay normal>0) { calcule quanto de luz é bloqueada por superfícies opacas e transparentes e use para computar as componentes difusa e especular } } if (depth >= maxDepth) return color; if (objeto é refletor) { rRay = raio na direção de refleção; rColor = trace( rRay, depth+1); reduza rColor pelo coeficente de refleção especular e some a color; } if (objeto é transparente) { tRay = raio na direção de refração; if (reflexão total não ocorre} { tColor = trace( tRay, depth+1); reduza tColor pelo coeficente de refração especular e some a color; } } return color; }

Tratamento anti-alias Pixel Lance um raio para cada sub-pixel Faça uma média dos valores obtidos Sub-Pixels... dx dy dx, dy = variáveis randômicas

Normal e cor Pertubar aleatóriamente as normais dos objetos N N A cor de um ponto depende de sua posição num mapa de textura

Textura na esfera x y z i j

Refinamento Progresivo subdivisão final segunda subdivisão primeira subdivisão amostragem inicial pixels sendo visitados pixels já visitados

Modelo da câmera Dados: eye, ref, vup (definem o sistema de coordenadas do olho) abertura do campo fixa de 90 0 eye ref vup Coordenadas dos Objetos eye ref 45 o Vista de cima

Calcula o sistema - x e y e z e ref zeze eye vup z0z0 y0y0 x0x0 view z e = – view / ||view|| vup ref eye z0z0 y0y0 x0x0 view dados: eye, ref, vup abertura da câmera dados: eye, ref, vup abertura da câmera view =ref-eye

Calcula o sistema - x e y e z e x e = (vup x z e ) / ||vup x z e || ref eye vup z0z0 y0y0 x0x0 view zeze xexe y e = z e x x e ref eye vup z0z0 y0y0 x0x0 view zeze xexe yeye eye vup zeze xexe yeye view

Canto inferior da janela no plano de projeção eye z0z0 y0y0 x0x0 A zeze xexe yeye B C P ll = eye + A + B + C P ll = eye - z e - y e - x e P ll Se o ângulo de abertura for 90 0, d=1 e w = h: A = - x e B = - y e C = - x e

Lançamento de Raios P ll dx = 2 x e / w dy = 2 y e / h P ll dx = 2 x e / w dy = 2 y e / h P0P0 P P 0 = P u + dx/2 + dy/2; for (i=0; i<=w; i++) { P = P 0 ; for (j=0; j<=h; j++) { P = P + dx; trace o raio (eye, P); } P 0 = P 0 + dy; }

Modelo de Lente e Obturador tela (pixels) lente e obturador cena

Focalização imagem lente focalização Luz de vários objetos chegam no mesmo ponto confusão didi dfdf d d f

Obtenção dos raios plano da imagem lente plano de focalização P A

Radiosidade e Ray Tracing