PSI Conceitos Avançados de Síntese de Imagens Marcio Lobo Netto

Slides:



Advertisements
Apresentações semelhantes
Luz É a energia que se propaga por ondas eletromagnéticas.
Advertisements

Óptica e Reflexão da Luz
Modelos de ILuminação Alex F. V. Machado.
Prof.: Raphael Carvalho
COLÉGIO MILITAR de FORTALEZA
COLÉGIO MILITAR de FORTALEZA
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.
Introdução à Computação Gráfica Colorização
Iluminação e Sombreamento
Ismael Andrade Pimentel
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.
Iluminação e FotoRealismo: R adiosidade Luís Paulo Peixoto dos Santos
Iluminação e FotoRealismo: Radiosidade
An Improved Illumination Model for Shaded Display
Iluminação e FotoRealismo: Ray Tracing Distribuído Luís Paulo Peixoto dos Santos
Iluminação e FotoRealismo: BRDF e Equação de Rendering
Introdução à Óptica Geométrica
Prof.: Raphael Carvalho
ÓPTICA GEOMÉTRICA.
Física Experimental II Prof. Ms. Alysson Cristiano Beneti
Óptica Geométrica Samuel Saviski.
Computação Gráfica: Aula6: Iluminação
Professor : DUDU Disciplina : Física Óptica (FO) Introdução
ÓPTICA FÍSICA: Estuda os fenômenos luminosos cuja explicação depende das teorias relativas á natureza da luz (onda ou partícula). GEOMÉTRICA: Estuda os.
Professor: Diones Charles
AS CORES DOS OBJETOS A luz branca é uma mistura de todas as cores.
Física 1203 – aula 1 a 3 (ap. 1 pág. 62) Óptica geométrica: conceitos iniciais 1. Natureza da luz: dualidade onda partícula 2. A velocidade da luz no vácuo:
Ray Tracing Patrícia Cordeiro Pereira Pampanelli
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.
Espelhos, lentes e o olho humano
Óptica e Reflexão da Luz
ÓPTICA GEOMÉTRICA PREGOLINI.
Thiago Aurélio Prof. Dr. Paulo Roberto Gomes Luzzardi
Ray Tracing Anderson Tavares Bacharelado em Ciência da Computação
Fundamentos de Óptica Geométrica
Professor : DUDU Disciplina : Física Óptica (FO) Introdução:
por Rodrigo Botelho da Silva
2.2.2 Fenómenos ondulatórios
Radiosidade Rafael Decker Prof. Dr. Paulo Roberto Gomes Luzzardi.
ÓPTICA.
Princípios Fundamentais da Óptica Geométrica.
Ray Tracing Estocástico e Distribuido Aruquia Barbosa.
Introdução à Multimídia
FENÔMENOS ÓPTICOS E ESPELHO PLANO
Visão Computacional Formação da Imagem Radiometria
Ray Tracing Luís César Ray Tracing Turner Whitted,1979/80
Princípios da Óptica Geométrica
PEE 5789 Conceitos Avançados de Síntese de Imagens AULA 03 Modelos Globais de Iluminação Marcio Lobo.
Apresentação 2 Aumento do realismo : texturas e sombras, evolução dos modelos de reflexões locais.
PEE 5789 Conceitos Avançados de Síntese de Imagens AULA 02 Modelos Locais de Iluminação Marcio.
PSI 5789 Conceitos Avançados de Síntese de Imagens Marcio Lobo Netto LSI - PEE - EPUSP Universidade.
Ray Tracing Autor: Osvaldo Ramos Tsan Hu Orientador: Prof. Marcio Lobo.
PEE 5789 Conceitos Avançados de Síntese de Imagens AULA 11 ??? Marcio Lobo Netto LSI - PEE - EPUSP Universidade.
Comportamento e Natureza da Luz
Conceitos Básicos de Óptica Geométrica
FÍSICA Introdução à Óptica Geométrica Prof: Ademir Amaral.
Computação Gráfica: Aula6: Iluminação
Professor: Diones Charles
PRINCÍPIOS DE ÓPTICA GEOMÉTRICA Sombras câmara escura de orifício
Fenômenos Ópticos.
Rendering Por Adinan Aguiar.
Introdução à Computação Gráfica Iluminação
INTRODUÇÃO À ÓPTICA GEOMÉTRICA
Introdução à Computação Gráfica Ray Tracing Claudio Esperança Paulo Roma Cavalcanti.
Prof.: Raphael Carvalho. ÓPTICA GEOMÉTRICA É a parte da Física que estuda os fenômenos relacionados com a luz e sua interação com meios materiais quando.
Transcrição da apresentação:

PSI5789 - Conceitos Avançados de Síntese de Imagens Marcio Lobo Netto Ray Tracing Técnica e Implementação Alice Shimada Bacic 3o período de 2002

Introdução Computação gráfica: Objetivo da sínteze de imagens: Grande diversidade de aplicações Demanda por imagens realistas Complexidade do mundo real Abstrações do mundo real Modelos limitados Objetivo da sínteze de imagens: produção de imagens que não possam ser distinguidas de uma fotografia

Abordagens Na tentativa de alcançar o realismo desejado utiliza-se conceitos de física e óptica; Iluminação global: Uma vista de uma cena é dada pelo processamento da luz refletida por um ponto considerando toda a iluminação que chega a este ponto; Iluminação direta + indireta

Algoritmos Os algoritmos mais populares para iluminação global são: Radiosity: trabalha com a interação difusa; Ray tracing: trabalha com a interação especular ; Ambos algoritmos simulam parte da interação global da iluminação;

Ray Tracing -Propósito Gerar imagens 3D realistas em uma tela 2D de computado: Simulação do comportamento físico dos raios de luz em um ambiente 3D. Calculo das cores de cada pixel de imagem considerando a interseção dos raios com os objetos da cena; Reflexão dos raios recursivamente.

Ray tracing – Histórico A técnica foi inicialmente desenvolvida por Appel (1968), Goldstain (1968) e Nagel (1971); Appel: usou uma grade (grid) de raios para determinar o preenchimento (shading) dos objetos de uma cena e calcular quando um ponto estaria dentro de uma sobra Nagel e Goldstain: inicialmente criaram um algoritmo em balística para simular a trajetória de projéteis e para calcular a trajetória de partículas nucleares. Mais tarde aplicaram o algoritmo criado em computação gráfica

Ray tracing – Histórico (continuação) Whitted e Kay estenderam a técnica inicial para simular a refração e a reflexão especular. O algoritmo proposto por Whitted é um algoritmo de iluminação global parcial, que combina: a remoção de superfícies escondidas; o preenchimento produzido pela iluminação direta; a reflexão de objetos entre si e a refração da luz através de objetos transparentes; a computação de sombras bem definidas

Ray tracing – Visão geral Considera que uma fonte de luz emite photons que colidem com objetos repetidamente: Parte da energia é absorvida e parte refletida pelo objeto; Ao contrário do mundo real, a abstração do algoritmo considera que os raios de luz partem do observador e são refletidos repetidamente gerando o preenchimento final do objetos processados na cena; O termo ray tracing recursivo é geralmente usado para referenciar o processo do algoritmo que considera a cadeia de reflexões dentro da cena

Ray Tracing - Cenário Observador (eye): ponto no espaço onde o ray tracing observa a cena através da viewplane; Viewplane: janela retangular onde é projetada a cena. Cada ponto da janela corresponde a um pixel da tela do computador; Modelo (model): uma coleção de objetos 3D; Fonte de luz (light source): fonte de iluminação, que irradia luz uniformemente em todas as direções; Cena (scene): o conjunto do modelo mais a fonte de luz formam uma cena

Ray Tracing – Cenário (ilustração)

Ray Tracing – Premissas Os raios de luz viajam em linha reta Raios de luz não causam interferência entre si caso se cruzem. Raios de luz partem da fonte de iluminação para os olhos, porém pelo princípio da reciprocidade (The Principle of Reciprocity), podemos assumir que o inverso produz o mesmo resultado para efeitos de calculo

Ray Tracing – Reflexão e transmissão A reflexão: é o fenômeno físico onde a luz atinge uma superfície e é refletida. A transmissão ocorre quando a luz atinge uma superfície transparente ou translúcida e passa através da superfície. A reflexão ou transmissão da luz podem ser especular o difusas.

Ray Tracing – Reflexão e transmissão Quando a propagação da luz após atingir o objeto é perfeita, isto é, a luz é refletida ou transmitida em apenas uma direção com toda a intensidade inicial temos a reflexão ou transmissão especular. Quando a luz abandona o objeto em todas as direções com intensidade igual, temos a reflexão ou transmissão difusas.

Ray Tracing – Tipos de algoritmo Forward ray tracing: as partículas de luz (photons) são seguidas desde a fonte de luz até o objeto; Desperdício, pois nem todo raio de luz que partiu de uma fonte deverá alcançar o observador; Ineficiente, pois gasta-se processamento com raios de luz não aproveitados.

Ray Tracing – Tipos de algoritmo Backward ray tracing: Foi desenvolvido para melhorar o desempenho da técnica; Neste caso um raio de luz é criado no observador e sua trajetória é traçada passando pelo viewplane até o primeiro objeto da cena alcançado; A trajetória do raio é calculada através de recursivas reflexões;

Ray Tracing – Tipos de algoritmo Backward forward

Ray Tracing – Modelo OO

Ray Tracing – Modelo OO Visualização dos componentes da técnica; Interação entre componentes; Objetivo: Extensibilidade; Opção por tipo de algoritmo; Definir a estrutura de dados e a interação entre os componentes da técnica;

Ray Tracing – Algoritmo de Whitted Fatores trabalhados pelo algoritmo: As superfícies escondidas; O preenchimento devido à iluminação direta; A reflexão e a refração; As sobras desde que bem definidas, isto é, geométricas e com bordas bem definidas

Ray Tracing – Algoritmo de Whitted Raios de luz são traçados através da cena: interseção com os objetos: testar a interseção de cada raio com cada objeto da cena; Cada interseção entre raio e objeto gera dois novos raios, um refletido e outro transmitido; interações especulares;

Ray Tracing – Algoritmo de Whitted Ao traçarmos raios recursivamente, devemos adotar critérios de parada: A recursividade sempre termina quando o raio intercepta uma superfície difusa; Ou quando um número pré-determinado de níveis de recursão é atingido; Ou quando a energia de um raio se torna menor que um determinado valor.

Ray Tracing – Algoritmo de Whitted Componentes da luz: Para cada ponto P de um objeto atingido por um raio: dois novos raios, um refletido e outro transmitido. A intensidade de P: Componente local; Contribuição global do raio refletido; Contribuição global do raio refratado seguido. Sombras: Se um raio refletido atinge um segundo objeto o ponto que gerou o raio está na sombra; Remoção de superfícies escondidas: Lista de raios gerados com a respectivas distâncias entre ponto e observador;

Ray Tracing – Algoritmo de Whitted Equação da iluminação: I(P) = Ilocal(P) + Iglobal(P) = Ilocal(P) + Krg * I(Pr) + Ktg * I(Pt) Onde: P: ponto atingido; Pr: Ponto atingido através do traçado de um raio refletido; Pt: Ponto atingido através do traçado de um raio transmitido; Krg: Coeficiente global de reflexão; Ktg: Coeficiente global de transmissão.

Ray Tracing – Algoritmo de Whitted Corpo básico: Recursão; Um raio é particionado em dois um raio refletido outro transmitido Duas chamadas a si mesmo, uma para cada raio particionado.

Ray Tracing – Algoritmo de Whitted Informação contida em um raio: Origem do raio; Direção; Ponto de interseção; Cor atual no ponto de interseção; Atenuação atual; Distância do ponto de interseção à origem do raio; O índice de refração que o raio possui atualmente; A nível de traçado atual; O número atual de objetos a que o raio é interno;

Ray Tracing – Algoritmo de Whitted // a notação usada considera o uso de uma linguagem orientada a objetos   ShotRay(ray) { object := objectCollection.getCurrentObject(); if (ray.intersepts (object)) { ray.getNormalAtInterseptionPoint(object); iLocal := ray.calculateIntensity(object); ray.decrementTraceDepth(); if (ray.getTraceDepth() > 0) { // Calcula e traça o raio refletido if (ray.isReflected(object)) { rayr := ray.evalReflection(object); rayr.setOrigin(ray.getIntersectionPoint(object); // Multiplica o valor de Krg pelo valor // da chamada anterior rayr.attenuate(Krg); rayCollection.add(rayr); ShotRay(rayr); if (rayr.interseptsAnObject(objectCollection)) { // Considera o Krg I e o Ilocal rayr.combineColours(); }

Ray Tracing – Algoritmo de Whitted // Calcula e traça o raio refratado if (object.isRefracting()) { if (ray.isEntering(object)) { ray.acumulateRefrativeIndex(); // Incrementa o número de objetos em que // o raio se encontra ray.incrementObjectNumber(); rayt := ray.evalRefraction(object); refractedRayCollection.add(rayr); }

Ray Tracing – Algoritmo de Whitted else { ray.deacumulateRefrativeIndex(); // Decrementa o número de objetos em que // o raio se encontra ray.decrementObjectNumber(); rayt := ray.evalRefraction(object); refractedRayCollection.add(rayr); } rayt.setOrigin(ray.getIntersectionPoint(object);   rayr.attenuate(Ktg); if (rayt.interseptsAnObject(objectCollection)) { // Considera o Ktg I e o Ilocal rayt.combineColours();

Ray Tracing – Algoritmo de Whitted Complexidade do Algoritmo e Desempenho: qr = 2 * 2 (n-1), onde qr é a quantidade de raios gerados e n o número de iterações desejado. Simplificando a expressão: qr = 2n qc = 4 * 2(n-1), onde qr é a quantidade de chamadas recursivas geradas e n o número de iterações do raio. Simplificando a expressão: qc = 22 * 2(n-1) = 2(n - 1 + 2) = 2(n+1) O desempenho do algoritmos cai em progressão geométrica Depende do número de iterações que configuradas.

Conclusão O ray tracing é uma boa opção quando se deseja gerar imagens que computem a iluminação global obtendo-se efeitos como reflexão, transparência e sombras bem definidas, porém o algoritmo apresenta um custo computacional alto. Adaptações ao algoritmo, mais a constante evolução do hardware são fatores que atenuam o custo computacional da técnica maior expansão do uso do algoritmo. Ao optarmos pela técnica em questão, devemos considerar o resultado final esperado e o custo para determinar se a solução é adequada.

Bibliografia [1] “Introduction to Computer Graphics”; James D. Foley; Andries van Dan; Steven K. Feiner; John F. Hughes; Richard L. Phillips; Addison-Wesley Publishing Company; May 1997. [2] “3D Computer Graphics”; Alan Watt; Addison-Wesley; 3o edition; 2000. [3] “Design and Implementation of an Interactive Ray Tracer”; Maria E. Jump; University of Maryland; September 1998; http://www.cs.umd.edu/~mount/Indep/MJump/report.html. [4] ”1997 Sophomore College Ray Tracing Site”; Charity Lu; Alex Roetter; Amy Schultz; http://cse.stanford.edu/class/sophomore-college/projects-97/ray-tracing/index.html. [5] “Pratical Ray Tracing in C”; Craig A. Lindley; Wiley; 1992.