Ray Tracing (Traçado de Raios)

Documentos relacionados
Pipeline Gráfico Cluter & Durand, MIT

Modelos Globais de Iluminação

Visualização por Computador: Teoria, Prática e Aplicações

Leandro Paganotti Brazil Rosane Minghim Computação Gráfica ICMC USP

Computação Gráfica e Áreas Correlatas

INF 1366 Computação Gráfica Interativa. Anti-Aliasing; Eliminação de Superfícies Escondidas. Alberto B. Raposo

Iluminação e Sombreamento

Fundamentos da Computação Gráfica Lista de Exercícios Marcelo Gattass TeCGraf/Departamento de Informática/PUC-Rio 19jun2003

Terceiro Trabalho Ray Tracing

O que é? Como funciona?

ILUMINAÇÃO E. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Características Principais. Introdução à Computação Gráfica Ray Tracing. Ray Casting. Contexto Histórico. Claudio Esperança Paulo Roma Cavalcanti

Visibilidade Ray-Tracing

Iluminação e Sombreamento

Iluminação e Sombreamento

Rendering. Processo Físico de Geração de uma Imagem. Rendering

Iluminação. Computação Gráfica LEI / LCC Departamento de Informática Universidade do Minho

Um Algoritmo para a Visualização de um Terreno com Objetos

Reflexões e Sombras em Superfícies Planares Animação e Visualização Tridimensional Prof. João Madeiras Pereira Instituto Superior Técnico 2005/2006

Técnicas de rendering. Realismo

Iluminação e Sombreamento

Computação Gráfica - 09

Realismo. Isabel Harb Manssour. Porto Alegre, maio de Realismo. Modelos de Cor. Modelos de Cor. Modelos de Cor

A terceira dimensão. Modelagem tridimensional Elaboração tridimensional Realidade virtual

5. Técnicas de Iluminação

5 Integrando objetos sintéticos à cena real

O Problema de Visibilidade. Computação Gráfica Recorte. Onde Acontece? O que é Recorte? Renato Ferreira

Computação Gráfica Abel J. P. Gomes. Engenharia Informática (5385) - 2º ano, 2º semestre Matemática (5828) - 2º ano, 2º semestre

Computação Gráfica Transformações Projetivas

Aula 2 Reflexão da luz e espelhos planos e esféricos

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

Cap 23 - Ótica Geométrica

3. Achar a equação da esfera definida pelas seguintes condições: centro C( 4, 2, 3) e tangente ao plano π : x y 2z + 7 = 0.

Recorte. Márcio Bueno Fonte: Material do Prof. Claudio Esperança e do Prof. Paulo Roma Cavalcanti

Cap. 7 Coloração (Shading) e Iluminação Global

Pipeline Gráfico Cluter & Durand, MIT

Computação Gráfica. Computação Gráfica. Visão Geral. Sistema Gráfico. Introdução à Computação Gráfica e areas relacionadas

1. Encontre as equações simétricas e paramétricas da reta que:

Computação Gráfica e Áreas Correlatas

Pipeline de Visualização 3D

Departamento de Matemática

Modelos de Iluminação

A terceira dimensão. A terceira dimensão. Modelagem tridimensional. A terceira dimensão Wilson de Pádua Paula Filho

Fluxo de Trabalho Básico Modelar o ambiente Atribuir materiais aos objetos Adicionar luzes Posicionar câmeras Renderizar a cena Animar

Modelação de Formas Geométricas

3 - Na figura a seguir, está esquematizado um aparato experimental que é utilizado. 1 - Dois raios de luz, um vermelho (v) e outro

Apostila de Física 33 Introdução à Óptica Geométrica

1 Para expressar um ponto intermediário em função dos pontos extremos, precisamos

Iluminação. André Tavares da Silva. Capítulo 14 de Foley Capítulo 7 de Azevedo e Conci

COMPUTAÇÃO GRÁFICA. Ana Paula Mandelli

UNIVERSIDADE DE SÃO PAULO Escola de Engenharia de Lorena EEL

Lista 4 com respostas

Fundamentos de Computação Gráfica. Iluminação

Física IV. Prática IV Clemencia Mora Herrera. Baseado nos slides do Prof. Sandro Fonseca

CONCEITOS FUNDAMENTAIS

Processamento de Imagens Coloridas. Prof. Adilson Gonzaga

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos

Forma de energia radiante capaz de sensibilizar nossos órgãos visuais. Compreende a região do espectro eletromagnético do vermelho até o violeta.

ESPELHOS E LENTES 01/09/16

Lista 3: Geometria Analítica

Modelos de Objetos por Malhas Poligonais. Maria Cristina F. de Oliveira

Lista 17 Revisão de Refração e Reflexão Total

SIMULAÇÃO DE ILUMINAÇÃO NATURAL UTILIZANDO O LIGHTSCAPE: UMA ANÁLISE DO DESEMPENHO FRENTE A DIFERENTES CARACTERÍSTICAS DE SUPERFÍCIES

Mapeamento de Textura

Interbits SuperPro Web

Visualização 3D. Soraia Raupp Musse

Geometria Computacional

CONCEITOS RADIOMÉTRICOS

Mapeamento de Texturas

Unidade 1 SOM E LUZ. Ciências Físico-químicas - 8º ano de escolaridade. Reflexão da Luz e Espelhos. Objetivos. Unidade 1 Som e Luz

1 Reflexão e Refração da luz em superfícies planas

Computação Gráfica Viewing

Capítulo 9: Transferência de calor por radiação térmica

Visualização em 3-D - Projeções Planares

UNIVERSIDADE DE SÃO PAULO Escola de Engenharia de Lorena EEL

1º Exame/2º Teste Computação Gráfica

Espelhos Planos. Reflexões. O objeto iluminado só poderá ser visto se a luz refletida por ele atingir nossos olhos. ESPELHOS PLANOS PROF.

Prof. Fernando V. Paulovich 26 de maio de 2015

Síntese de Imagens e Realismo

Geometria Descritiva 28/08/2012. Elementos Primitivos da Geometria

Planificação 3º Período GR Disciplina Ciências Físico-Químicas 8ºAno

Apresentação e Aplicações de Óptica Geométrica (ENEM/UERJ)

Luiz Cristovão Gomes Coelho 1 Marcelo Gattass 2 Waldemar Celes Filho 1 Depto. Eng. Civil, PUC-Rio, Rio de Janeiro

Unidade IV. Aula 21.2 Conteúdo: Óptica, Ser humano e Saúde. Espelhos esféricos: Estudo analítico das imagens, equação de Gauss e aplicações.

Transformações 3D. Soraia Raupp Musse

4 Impostores com Relevo

Nº Nome: Sala: Responda às questões seguintes justificando adequadamente todas as respostas. Se necessário utilize o verso da respectiva folha.

Definição e elementos. Espelho Esférico É uma calota esférica na qual uma das superfícies é refletora.

UNIVERSIDADE ESTADUAL DE SANTA CRUZ UESC. 1 a Avaliação escrita de Cálculo IV Professor: Afonso Henriques Data: 10/04/2008

Meios transparentes Meios translúcidos Meios opacos

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

G1 de Álgebra Linear I Gabarito

Modelagem de Objetos. Soraia Musse

Outras características dos espelhos planos são:

Apostila de Física 35 Reflexão da Luz Espelhos Esféricos

14 AULA. Vetor Gradiente e as Derivadas Direcionais LIVRO

Ótica. Primeira lista de exercícios

25 Problemas de Óptica

Processo Avaliativo LISTA EXTRA 1-1º Bimestre/2017 Disciplina: Física B 1ª série EM A/B Data: 10/02/2017. Nome do aluno Nº Turma

Transcrição:

INF 1366 Computação Gráfica Interativa Ray Tracing (Traçado de Raios) Alberto B. Raposo abraposo@tecgraf.puc-rio.br http://www.tecgraf.puc-rio.br/~abraposo/inf1366/index.htm

Ray Tracing / Ray Casting Como computar a irradiação de um raio de luz? Angel Figure 6.2 D. Brogan Univ. of Virginia

Ray Casting Forma mais simples de Ray Tracing Raios através do plano de visualização Plano de visualização Posição do observador D. Brogan Univ. of Virginia

Máquina de ray casting de Durer Albrecht Durer, Século XVI Cluter & Durand, MIT

Máquina de ray casting de Durer Cluter & Durand, MIT

Máquina de ray casting de Durer Cluter & Durand, MIT

Ray Casting Para cada amostra (pixel) Construa raio da posição do observador através do plano de visualização feito no sentido contrário: do olho para fonte de luz. Assim, só calculamos os raios que geram alguma coisa visível Encontre a primeira superfície que o raio intercepta Calcule a cor baseada no modelo de iluminação (ex., Phong) D. Brogan Univ. of Virginia

Ray Casting Raios através do plano de visualização Posição do olho Amostras no plano de visualização D. Brogan Univ. of Virginia

Ray Casting Implementação Simples: Image RayCast(Camera camera, Scene scene, int width, int height) { Image image = new Image(width, height); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Ray ray = ConstructRayThroughPixel(camera, i, j); Intersection hit = FindIntersection(ray, scene); image[i][j] = GetColor(hit); } } return image; } D. Brogan Univ. of Virginia

Ray Casting Implementação Simples: Image RayCast(Camera camera, Scene scene, int width, int height) { Image image = new Image(width, height); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Ray ray = ConstructRayThroughPixel(camera, i, j); Intersection hit = FindIntersection(ray, scene); image[i][j] = GetColor(hit); } } return image; } D. Brogan Univ. of Virginia

Construindo Raio Através de um Pixel Up direction Plano de visualização back towards P 0 right V Ray: P = P 0 + tv P D. Brogan Univ. of Virginia

Construindo Raio Através de um Pixel Exemplo 2D Θ = meio ângulo do frustum d = distância ao plano de visualização right = towards x up P1 = P 0 + d*towards d*tan(θ)*right P2 = P 0 + d*towards + d*tan(θ)*right P 0 P = P1 + (i/width + 0.5) * (P2 - P1) = P1 + (i/width + 0.5) * 2*d*tan (Θ)*right V = (P - P 0 ) / P - P 0 right Θ towards d V P1 P P2 Raio: P = P 0 + tv 2*d*tan(Θ) P P 2 2 0 = dist P, P0 ) = ( xp xp ) + ( yp y ) ( 0 P0 D. Brogan Univ. of Virginia

Ray Casting Implementação Simples: Image RayCast(Camera camera, Scene scene, int width, int height) { Image image = new Image(width, height); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Ray ray = ConstructRayThroughPixel(camera, i, j); Intersection hit = FindIntersection(ray, scene); image[i][j] = GetColor(hit); } } return image; } D. Brogan Univ. of Virginia

Interseção do raio com a cena É o que consome a maior parte do algoritmo de ray trace. Interseções com diferentes primitivas geométricas Esfera Triângulo Grupos de primitivas (cena)

Interseção Raio-Esfera Raio: P = P 0 + tv Esfera: P - C 2 -r 2 = 0 P P V r P 0 C D. Brogan Univ. of Virginia

Interseção Raio-Esfera Raio: P = P 0 + tv Esfera: P C 2 = r 2 Substituindo P: P 0 + tv -C 2 = r 2 ( C) + t V ) ( P C) ( ) 2 + t V P = 0 0 r P 0 V P r C P 2 [ V V ] t + [ 2V ( P C) ] t + ( P C) ( P C) 0 i [ ] 2 r = 0 0 0

Interseção Raio-Esfera 2 [ V V ] t + [ 2V ( P C) ] t + ( P C) ( P C) Equação do 2 o grau: a t 2 i 0 + b t + c i = 0 Solução: b ± b 2 4ac t = 2a i [ ] 2 r = 0 0 P 0 0 V P r C P Onde: a = V 2 = 1 b = 2 V (P 0 -C) c = P 0 C 2 -r 2 Se a direção do raio estiver normalizada!

Interseção Raio-Esfera se = b 2 4ac > 0 : t t 1 2 = = b 2a b + 2a t i = min( t 1, t2 ) P 0 V P r C P se t i > 0 : (se t 1 e t 2 < 0, raio não intercepta esfera) P = 0 P( ti ) = P + t V i P ' = 0 P( t j ) = P + t j V t j = max( t 1, t2)

Interseção Raio-Esfera Precisa do vetor normal no ponto de interseção P para cálculo da iluminação N = (P - C) / P - C N P 0 V P r C D. Brogan Univ. of Virginia

Interseção Raio-Esfera Ray Tracing seria muito simples se mundo fosse composto apenas por esferas... Cluter & Durand, MIT

Interseção Raio-Triângulo Primeiro, ache a interseção do raio com o plano do triângulo Depois verifique se o ponto de interseção está dentro do triângulo P V P 0 D. Brogan Univ. of Virginia

Interseção Raio-Plano Raio: P = P 0 + tv Plano: (P A) N = 0 Substituindo P: (P 0 + tv -A) N = 0 Solução: t i = (A - P 0 ) N / (V N) P N A P = P 0 + t i V V Ponto qualquer do plano P 0 D. Brogan Univ. of Virginia

Interseção Raio-Triângulo Verifica se P está dentro do triângulo parametricamente T 3 Computa α, β: P = α (T 2 -T 1 ) + β (T 3 -T 1 ) Checa se ponto está dentro: 0 α 1 e 0 β 1 e α + β 1 T 1 β P V α T 2 P 0 D. Brogan Univ. of Virginia

Outras Interseções Cone, cilindro, elipsóide: Similar à esfera Box Procura interseção com 3 faces (planos) frontais e retorna o mais próximo do observador Polígono convexo Similar ao triângulo (verifica algebricamente se ponto de interseção com plano está dentro do polígono) Polígono côncavo Interseção com plano igual, mas o teste para saber se ponto está dentro do polígono é bem mais complexot

Ray Casting Iluminação Direta Traça raios primários a partir da câmera Iluminação direta apenas de luzes não-bloqueadas + + + = L L L n S D A A E I S R V K L N K I K I I ) ) ( ) ( ( D. Brogan Univ. of Virginia

Sombras Termo de sombra (S i ) diz se fontes de luz estão bloqueadas Trace o raio da interseção com o objeto até cada fonte L i S i = 0 se raio está bloqueado, S i = 1 caso contrário 0 < S i < 1 soft shadows (truque) I = I E + K A I A + L ( K D ( N L) + K S ( V n R) ) S L I L D. Brogan Univ. of Virginia

Traçado de Raios Recursivo M. Gattass, PUC-Rio R 2 L 2 R 1 T1 L 1 L 3 T 2 R 3 L 1 R 1 L 2 T 1 L 3 R 2 R 3 T 2

Ray Tracing recursivo efeitos de segunda ordem Traça raios secundários a partir das superfícies de interecção Iluminação global (reflexão especular e transparência) D. Brogan Univ. of Virginia I = I + K I + ( K ( N L) + K ( V R) ) S I + K I + K I n Alberto ERaposo APUC-Rio A L D S L L R R T T

Reflexões Especulares Traça raio secundário na direção da reflexão Avalia radiância ao longo do raio secundário e a inclui no modelo de iluminação. D. Brogan Univ. of Virginia Radiância para o raio refletido I = I + K I + ( K ( N L) + K ( V R) ) S I + K I R + K I n Alberto ERaposo APUC-Rio A L D S L L R R T T

Reflexões Especulares M. Gattass, PUC-Rio Raio refletido : p( t) = pi + t rˆ rˆ nˆ θ θ vˆ p i Superfície especular

Transparência Traça raio secundário na direção da refração Avalia radiância ao longo do raio secundário e a inclui no modelo de iluminação D. Brogan Univ. of Virginia Radiância do raio refratado I = I + K I + ( K ( N L) + K ( V R) ) S I + K I + K I n Alberto ERaposo APUC-Rio A L D S L L R R T T I T

D. Brogan Univ. of Virginia Transparência Coeficiente de transparência é a fração do raio transmitida K T = 1 para objeto transparente, K T = 0 para opaco 0 < K T < 1 para objeto semi-transparente Coefiente de transparência I = I + K I + ( K ( N L) + K ( V R) ) S I + K I + K T I n Alberto ERaposo APUC-Rio A L D S L L R R T T

Cálculo do raio refratado (transparência) Para superfícies muito finas, podepse ignorar mudança de direção do raio Assume que luz atravessa superfície e segue em linha reta N Θ i D. Brogan Univ. of Virginia η i η r T Θr L T Θ i T L

Cálculo do raio refratado (transparência) Para objetos sólidos, aplique Lei de Snell: η sin r Θ r = η sin i Θ i N η i η r Θ i L T Θr D. Brogan Univ. of Virginia T ηi = ( cos Θi cos Θr ) N η r ηi η r L

Exemplo de refração Enright, D., Marschner, S. and Fedkiw, R.

Resumo Ray casting (iluminação direta) Geralmente usa simplificações analíticas para a emissão das fontes de luz e para a reflectância das superfícies Ray tracing recursivo (iluminação global) Incorpora sombras, reflexões especulares, e refrações Tudo isso é uma aprixmação, para tornar viável computacionalmente a geração das imagens foto-realistas

Resultado de curso Alunos de CGI98 M. Gattass, PUC-Rio

Algoritmo de traçado de raios selecione selecione o o centro centro de de projeção(eye) projeção(eye) e e uma uma janela janela no no plano plano de de projeção projeção for for (cada (cada pixel pixel da da tela) tela) { { determine determine o o raio raio ray ray que que vai vai do do centro centro de de projeção projeção ao ao pixel; pixel; pixel pixel = = trace trace ( ( ray, ray, 1); 1); } } } } M. Gattass, PUC-Rio Color Color trace trace (Scene (Scene scene, scene, Vector3d Vector3d eye, eye, Vector3d Vector3d ray, ray, int int depth) depth) { { determine determine a a interseção interseção mais mais próxima próxima com com um um objeto objeto if if (intercepta (intercepta objeto) objeto) { { calcule calcule a a normal normal no no ponto ponto de de interseção interseção return return ( ( shade shade ( ( scene, scene, object, object, ray, ray, point, point, normal, normal, depth)); depth)); } } return return BACKGROUND; BACKGROUND; } }

Color Color shade shade (Scene (Scene scene, scene, Object Object object, object, Vector3D Vector3D ray, ray, Vector3D Vector3D point, point, Vector3D Vector3D normal, normal, int int depth) depth) {{ color color = termo termoambiente ambientedo do material material do do objeto objeto ;; for for (cada (cadaluz) luz) {{ L = vetor vetorunitário unitáriona nadireção direçãode de point point para paraa a posição posiçãoda daluz; if if (L (L normal>0) normal>0) {{ if if (a (a luz luznão nãofor for bloqueada bloqueadano no ponto) ponto) {{ color color += += componente componentedifusa (Eq.difusa) (Eq.difusa) + componente componenteespecular especular (Eq. (Eq. especular) especular) }} }} if if (depth (depth >= >= maxdepth) maxdepth) return return color; color; if if (objeto (objetoé é refletor) refletor) {{ rray rray = raio raiona nadireção direçãode de reflexão; reflexão; rcolor rcolor = trace(scene, trace(scene, point, point, rray, rray, depth+1); depth+1); reduza reduzarcolor rcolorpelo pelocoeficente coeficentede de reflexão reflexãoespecular especulare e some some a a color; color; }} return return color; color; }} M. Gattass, PUC-Rio

Exemplos: Ray Tracing http://www.irtc.org/

Exemplos: Ray Tracing http://www.irtc.org/

Exemplos: Ray Tracing http://www.povray.org/

Radiosidade fotografia: Escultura de J. Ferren Painéis difusos diagrama: observador Cluter & Durand, MIT

Radiosidade vs. Ray Tracing Escultura original de John Ferren iluminada por trás pela luz do dia. Imagem gerada por ray tracing. Ray tracer padrão não consegue simular a interreflexão da luz entre as superfícies difusas. Imagem gerada por radiosidade. Cluter & Durand, MIT

Radiosidade vs. Ray Tracing Ray tracing é algoritmo no espaço da imagem Se câmera se move, precisa recomeçar cálculo Radiosidade é computada no espaço de objeto View-independent (só não pode mover as fontes de luz) Pode pré-computar iluminação complexa Cluter & Durand, MIT

Radiosidade Assume-se que superfícies são lambertianas ideiais (difusas) refletem luz incidente igualmente em todas as direções Cena é dividida em conjunto depequenas áreas (patches). A radiosidade, B i, do patch i é a taxa total de energia que sai da superfície. A radiosidade sobre um patch é constante. ω' x' Cluter & Durand, MIT

Equação de Radiosidade L(x',ω') = E(x',ω') + ρ x '(ω,ω')l(x,ω)g(x,x')v(x,x') da Superfícies perfeitamente difusas (não direcionais): B x' = E x' + ρ x' B x G(x,x')V(x,x') Cluter & Durand, MIT

Exemplos: Radiosidade Lightscape http://www.lightscape.com

Exemplos: Radiosidade Program of Computer Graphics, Cornell University. Note a iluminação indireta do teto.

Informações Adicionais Peter Shirley. Fundamentals of Computer Graphics, A K Peters, Ltd., Natick, MA, USA, 2002. Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Phlips, L. R., Introduction to Computer Graphics, Addison-Wesley, 1995. Rogers, D. F., Procedural Elements for Computer Graphics. McGraw-Hill, 1985 Marcelo Gattass: notas de aula. http://www.tecgraf.pucrio.br/~mgattass/cg.html Refs. online (ray tracing): http://www.irtc.org/ http://www.acm.org/tog/resources/rtnews/html/ http://www.povray.org/ http://www.siggraph.org/education/materials/hypergraph/raytrace/rtrace0.htm http://www.siggraph.org/education/materials/hypergraph/raytrace/rt_java/raytr ace.html