Assunto última aula. Flat Shading

Documentos relacionados
Iluminação e Sombreamento

Iluminação e Sombreamento

Iluminação Global. André Tavares da Silva.

Iluminação. André Tavares da Silva. baseado nos materiais de aula de Marcelo Walter, Claudio Esperança e Paulo Cavalcanti

Algoritmos de Iluminação Global

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

Resumo. Ray Tracing. Introdução. Ray Casting Básico. Idéia

Computação Gráfica II

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

Introdução ao Processamento e Síntese de imagens Rendering 2016

Coloração (Shading)e Iluminação global

Introdução à Computação Gráfica Ray Tracing. Claudio Esperança Paulo Roma Cavalcanti

Transformações 3D. Soraia Raupp Musse

Introdução ao Processamento e Síntese de imagens -Linhas e superfícies escondidas

Ray Tracing (Traçado de Raios)

aula 21 Tecnicas de Iluminação Global IC/UFF 2017 Aura

Raytracing. 35T56 Sala 3E3 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 DIM102

Representação de Objetos e Cenas. Soraia Musse

Ray Tracing / Ray Casting

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

Ray-Tracing. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 13 Apontamentos CG

O que é? Como funciona?

Ray-Tracing. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 13 Apontamentos CG

PEF 5743 Computação Gráfica Aplicada à Engenharia de Estruturas

Modelos Globais de Iluminação

Iluminação e Sombreamento

Visibilidade Ray-Tracing

Terceiro Trabalho Ray Tracing

Objetos definidos no seu próprio sistema de coordenadas

Iluminação e Sombreamento

INF1339 Computação Gráfica Tridimensional. Waldemar Celes. 10 de Agosto de 2010

Iluminação e Sombreamento

Shading (sombreamento) & Smooth Shading

Prof. Fernando V. Paulovich 3 de agosto de SCC Computação Gráca

Fundamentos da Computação Gráfica

Realismo Visual. Aula 11 UFF

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

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

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

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

Técnicas de rendering. Realismo

Introdução. Rendering: Ray Tracing. Introdução. Introdução. Introdução. Introduction

Radiosidade. Radiosidade. Iluminação Direta e Indireta. Color Bleeding a cor do objeto é transmitida. Parcela Difusa em RT

Processamento Gráfico

Técnicas de Mapeamento

Rendering de Polígonos. Determinação de Superfícies Visíveis. Back Face Culling. Back Face Culling. Back Face Culling. Back Face Culling.

aula 9 IC/UFF

Shading (sombreamento) & Smooth Shading

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

Tópicos Especiais em Engenharia de Software (Jogos II)

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

Instituto Tecnológico de Aeronáutica. Prof. Carlos Henrique Q. Forster Sala 121 IEC. Luiz Felipe Simões Hoffmann

Iluminação (lighting) e Sombreamento (shading)

Ray Tracing e Ray Casting

3 Visualização de TetraQuads

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA

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

Introdução à Computação Gráfica Iluminação. Claudio Esperança Paulo Roma Cavalcanti

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. Terceiro Teste 19 de Maio de 2012

CÁLCULOS DE ILUMINAÇÃO E SOMBREAMENTO

The Graphics Pipeline

Pipeline Gráfico Cluter & Durand, MIT

Modelo gráfico do VTK: fundamentos e aplicações

Modelo gráfico do VTK: fundamentos e aplicações

Resposta - Questão 01: Equação genérica do segundo grau: f(x) = ax² + bx + c. a) f(x) = x² 7x + 10 a = 1 b = 7 c = 10 I Cálculo das raízes:

Rendering. Processo Físico de Geração de uma Imagem. Rendering. Síntese de Imagens 3D. Foto-realismo em CG

Exame de 1ª Época Computação Gráfica

Computação Gráfica. Modelo de sombreamento Determina como o modelo de iluminação será aplicado e quais seus argumentos

2º Exame. Computação Gráfica

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda/Taguspark. 2º Exame 15 de Julho de 2010

Mapeamento de Texturas

UNIVERSIDADE FEDERAL DE ALAGOAS INSTITUTO DE MATEMÁTICA Aluno(a): Professor(a): Curso:

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

Visibilidade. Apontamentos CG + Edward Angel, Sec Instituto Superior Técnico Computação Gráfica 2009/2010

Computação Gráfica - 13

FÍSICA IV ÓPTICA GEOMÉTRICA. Daniel C. Zanotta

Aula Exemplos e aplicações. Exemplo 1. Nesta aula apresentamos uma série de exemplos e aplicações dos conceitos vistos.

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

Rendering. Modelos de Iluminação Rendering de Modelos Poligonais Métodos de Tonalização

Visibilidade. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 7 Apontamentos CG

SCE-201 Computação Gráfica. Representação de Objetos Tridimensionais Modelos Poligonais

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

Síntese de Imagem. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

J. Delgado - K. Frensel - L. Crissaff Geometria Analítica e Cálculo Vetorial

aula 22 Texturas IC/UFF 2017 Aura

Computação Gráfica - 09

5. Técnicas de Iluminação

Realismo Visual. Modelo de Sombreamento ou de Iluminação UFF Aula 17. Capitulo 5- livro texto de computacao grafica

Aula Exemplos e aplicações - continuação. Exemplo 8. Nesta aula continuamos com mais exemplos e aplicações dos conceitos vistos.

Geometria Anaĺıtica. Prof. Dr. Thadeu Alves Senne ICT - UNIFESP

Discretização. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 7 Apontamentos CG

Computação Gráfica - 09

IMPLEMENTAÇÃO E OTIMIZAÇÃO DE UMA BOUNDING INTERVAL HIERARCHY PARA UM RAYTRACER DE TEMPO REAL USANDO CUDA

Estudando para a P2-2018

Aula Distância entre duas retas paralelas no espaço. Definição 1. Exemplo 1

Computação Gráfica e Processamento de Imagens. - Sistemas 3D (conceitos básicos) Prof. Julio Arakaki

6.1 equações canônicas de círculos e esferas

Transcrição:

Assunto última aula Modelos de Iluminação para Sombreamento de Polígonos 1 Flat Shading Pixar Shutterbug sequence 2 1

Gouraud Shading 3 Phong Shading 4 2

Iluminação Local O cálculo de iluminação num ponto da superfície independe da energia recebida indiretamente Toda informação necessária para este cálculo é LOCAL Parcela Ambiente simula este efeito 5 Síntese de Imagens Realísticas fonte de luz superfície #2 superfície #1 observador superfície #3 6 3

Modelos de Iluminação Descrevem como a luz Interage com os materiais É transportada na cena (light transport) Atinge o observador Categorias Modelos de Iluminação Locais Modelos de Iluminação Globais 7 Modelos de Iluminação Locais Não consideram inter-reflexões Rápidos para cálculo Não são fisicamente corretos Em geral, baixo realismo 8 4

Exemplo Phong + I = I a k a + Σ{I m [k d (N.L) + k s (R.V) q ]} Ambiente Difusa Especular 9 Especificação Usual dos Materiais Plástico 10 5

Especificação Usual dos Materiais Cobre 11 Modelos de Iluminação Globais Toda a cena é considerada Consideram inter-reflexões Maior custo computacional Chave para rendering realista 12 6

Comparando OpenGL (local) PovRay 3.5 http://www.winosi.onlinehome.de/gallery_t14_01.htm 13 Ray Casting (ou de onde saiu a idéia de raios em primeiro lugar!) Para cada pixel da tela Construa um raio a partir do olho Para cada objeto na cena Encontre a intersecção com o raio Mantenha se for a mais próxima Calcule a iluminação neste ponto Arthur Appel. Some Techniques for Shading Machine Renderings of Solids AFIPS 1968 Spring Joint Computer Conf, p. 37-45, 1968!! 14 7

Ray Casting 15 Ray Casting 16 8

Ray Casting 17 Ray Casting I = I a k a + Σ{I pm [k d (N.L) + k s (R.V) q ]} 18 9

Ray Casting 19 reflexão difusa absorção reflexão especular Plano da imagem refração transmissão sombras Olho virtual Principais fenômenos que podem acontecer na interação entre luz e objetos 10

Traçado de Raios Primeiras idéias em 1968 (Ray Casting) 1980 Turner Whitted Communications of the ACM N. 23, V. 6, June 1980, p. 343-349) 21 Traçado de Raios Situação Inicial 22 11

Traçado de Raios Disparando Raios Eye Ray (não atinge nada) 23 Traçado de Raios Disparando Raios Eye Ray - atinge objeto 24 12

Traçado de Raios Resultado 1 25 Traçado de Raios Raio de Sombra Consegue ver a fonte de luz Shadow Ray 26 13

Traçado de Raios Raio de Sombra Não consegue ver a fonte de luz Shadow Ray 27 Traçado de Raios Resultado 2 Sombra 28 14

Traçado de Raios Raio de Reflexão Reflected Ray 29 Traçado de Raios Resultado 3 Considerando que a esfera tem reflexão especular 30 15

Traçado de Raios Raio Transmitido 31 Traçado de Raios Modelo Iluminação Simples da última aula 32 16

Árvore de Raios Seguir raios de luz no ambiente, a partir do observador, recursivamente Também conhecido como raio transmitido 33 Árvore de Raios Seguir raios de luz no ambiente, a partir do observador, recursivamente Também conhecido como raio transmitido 34 17

Pseudocódigo (aqui falta um loop para incluir vários objetos da cena e um loop para as fontes de luz) void RT( Point3D start, Point3D end, int depth, RGB *color) { if ( depth > MAXDEPTH ) *color = BLACK; else {/* verifica se raio intersecta algum objeto. Caso positivo retorna o mais próximo */ if ( rayhit ( start, end, &hitobject, &hitpoint )){ /* contribuicao local */ shade( hitobject, hitpoint, localcolor ); /* calcula direções de reflexão e transmissão */ calcreflection( hitobject, hitpoint, &reflectdirection); calctrans( hitobject, hitpoint, &transmdirection ); /* Chamadas recursivas */ RT ( hitpoint, reflectdirection, depth+1, &reflectedcolor ); RT ( hitpoint, transmdirection, depth+1, &transmcolor ); /* combina cores */ combinecolor( hitobject, localcolour, reflectedcolour, transmcolour, color); } else *color = BLACK; } 35 E as sombras? void RT( Point3D start, Point3D end, int depth, RGB *color) { if ( depth > MAXDEPTH ) *color = BLACK; else {/* verifica se raio intersecta algum objeto. Caso positivo retorna o mais próximo */ if ( rayhit ( start, end, &hitobject, &hitpoint )){ /* contribuicao local */ shade( hitobject, hitpoint, localcolor ); /* calcula direções de reflexão e transmissão */ calcreflection( hitobject, hitpoint, &reflectdirection); calctrans( hitobject, hitpoint, &transmdirection ); /* Chamadas recursivas */ RT ( hitpoint, reflectdirection, depth+1, &reflectedcolor ); RT ( hitpoint, transmdirection, depth+1, &transmcolor ); Aqui verifica se a luz atinge ou não o ponto /* combina cores */ combinecolor( hitobject, localcolour, reflectedcolour, transmcolour, color); } else *color = BLACK; } 36 18

Cálculo do Vetor Refletido void RT( Point3D start, Point3D end, int depth, RGB *color) { if ( depth > MAXDEPTH ) *color = BLACK; else {/* verifica se raio intersecta algum objeto. Caso positivo retorna o mais próximo */ if ( rayhit ( start, end, &hitobject, &hitpoint )){ /* contribuicao local */ shade( hitobject, hitpoint, localcolor ); /* calcula direções de reflexão e transmissão */ calcreflection( hitobject, hitpoint, &reflectdirection); calctrans( hitobject, hitpoint, &transmdirection ); /* Chamadas recursivas */ RT ( hitpoint, reflectdirection, depth+1, &reflectedcolor ); RT ( hitpoint, transmdirection, depth+1, &transmcolor ); /* combina cores */ combinecolor( hitobject, localcolour, reflectedcolour, transmcolour, color); } else *color = BLACK; } 37 Cálculo do Vetor Refletido R out = 2N (N.R in ) - R in 38 19

Cálculo do Vetor Transmitido void RT( Point3D start, Point3D end, int depth, RGB *color) { if ( depth > MAXDEPTH ) *color = BLACK; else {/* verifica se raio intersecta algum objeto. Caso positivo retorna o mais próximo */ if ( rayhit ( start, end, &hitobject, &hitpoint )){ /* contribuicao local */ shade( hitobject, hitpoint, localcolor ); /* calcula direções de reflexão e transmissão */ calcreflection( hitobject, hitpoint, &reflectdirection); calctrans( hitobject, hitpoint, &transmdirection ); /* Chamadas recursivas */ RT ( hitpoint, reflectdirection, depth+1, &reflectedcolor ); RT ( hitpoint, transmdirection, depth+1, &transmcolor ); /* combina cores */ combinecolor( hitobject, localcolour, reflectedcolour, transmcolour, color); } else *color = BLACK; } 39 Cálculo do Vetor Transmitido Alguns índices de refração ar = 1 água a 20 o C = 1.33 Gelo=1.31 vidro=1.5 diamante=2.417 Lei de Snell n2 sen θ 1 = n1 sen θ 2 40 20

Cálculo de Intersecções void RT( Point3D start, Point3D end, int depth, RGB *color) { if ( depth > MAXDEPTH ) *color = BLACK; else {/* verifica se raio intersecta algum objeto. Caso positivo retorna o mais próximo */ if ( rayhit ( start, end, &hitobject, &hitpoint )){ /* contribuicao local */ shade( hitobject, hitpoint, localcolor ); /* calcula direções de reflexão e transmissão */ calcreflection( hitobject, hitpoint, &reflectdirection); calctrans( hitobject, hitpoint, &transmdirection ); /* Chamadas recursivas */ RT ( hitpoint, reflectdirection, depth+1, &reflectedcolor ); RT ( hitpoint, transmdirection, depth+1, &transmcolor ); /* combina cores */ combinecolor( hitobject, localcolour, reflectedcolour, transmcolour, color); } else *color = BLACK; } 41 Cálculo das Intersecções Gargalo (até 95% do tempo total) Casos mais simples resolvem de forma analítica Raio/esfera - resolução de uma eq. de 2o. grau 42 21

Preliminares [x t y t z t ] 2 vetores: origem e direção R origem = R 0 = [x 0 y 0 z 0 ] R direção = R d = [x d y d z d ] = [(x t - x 0 ) (y t - y 0 ) (z t - z 0 )] 43 Preliminares Definição paramétrica do raio R(t) = R 0 + R d. t R d deve ser normalizado t = 0 estamos na origem t = 1 estamos na tela t > 1 onde há objetos 44 22

Preliminares Definição paramétrica da esfera (x - x c ) 2 + (y - y c ) 2 + (z - z c ) 2 = r 2 Centro da esfera = [x c y c z c ] r = raio da esfera 45 Encontrando a intersecção Substituindo a eq. paramétrica do raio na eq. da esfera temos: ( x 0 + x d t - x c ) 2 + (y 0 + y d t - y c ) 2 + ( z 0 + z d t - z c ) 2 = r 2 Desenvolvendo esta equação ficamos com uma eq. do 2 o grau em t 46 23

A t 2 + B t + C = 0 onde A = (x d 2 + y d 2 + z d 2 ) = 1 (pq?) B = 2 (x d (x 0 - x c ) + y d (y 0 - y c ) + z d (z 0 - z c )) C = (x 0 - x c ) 2 + (y 0 - y c ) 2 + (z 0 - z c ) 2 - r 2 Resolução por Baskara Determinante: Δ = B 2-4AC Se Δ < 0 o raio não atinge a esfera Se Δ = 0 o raio tangencia a esfera Caso contrário encontramos as raízes t 0 e t 1. A menor raiz positiva corresponde ao ponto de intersecção mais próximo t 0 = -B - sqrt(δ) / 2 t1 = -B + sqrt(δ) / 2 Se t 0 for positivo não precisamos calcular t 1. Porque? 47 Encontrando o ponto de intersecção o menor de t0 ou t1 Pi = [x 0 + x d t y 0 + y d t z 0 + z d t] E o vetor normal? N N = [(x i - x c )/r (y i - y c )/r (z i - z c )/r ] y i y c r x i x c 48 24

Superfícies Quádricas Esfera é um caso especial de quádrica Fórmula genérica 10 coeficientes (a,b,c,,k) Exemplo: esfera de raio=3 centrada em (2,3,-4) 49 Superfícies Quádricas a=b=c=1 d=e=f=0 g=-2, h=-3, j=4, k=20 Especifica inequivocamente a esfera 50 25

Elipsóide Outras Quádricas 51 Parabolóide Outras Quádricas 52 26

Outras Quádricas Cilindro Infinito 53 Outras Quádricas - Plano Caso Especial Eq do plano: Eq do raio: 54 27

Outras Quádricas - Plano Substituindo: Como sabemos se o raio e plano não são paralelos entre si? E se t for negativo? 55 Encontrar eq. do plano suporte ao polígono (como?) Encontrar intersecção do raio com plano Verificar se ponto de intersecção está contido no polígono Plano infinito em todas as direções Raio-Polígono 56 28

Teste de contenção pontopolígono Projeta o polígono em 2D (despreza uma dimensão) Verifica o sinal do produto vetorial entre os pares de vetores formados pelo ponto e os vértices 57 Teste de contenção pontopolígono Verifica o sinal da coord. z do produto vetorial entre os pares de vetores formados pelo ponto e os vértices. Todos devem ter o mesmo sinal para o ponto estar contido 58 29

Dicas de Implementação Otimização do raio de sombra Diferentemente do raio do olho, não precisamos encontrar TODAS as intersecções e manter a mais próxima. Precisamos apenas definir se HÁ ou NÃO HÁ intersecção Pára (do verbo parar) o laço de teste na primeira intersecção 59 Dicas de Implementação Problemas de precisão intersecção calculada intersecção correta 60 30

Dicas de Implementação A própria superfície se bloqueia Solução: incorporar um valor pequeno que é diminuído de t para remover o ponto de dentro da esfera 61 Dicas de Implementação t = t - ε t t - ε 62 31

Galeria de Imagens 63 Internet Ray Tracing Competition 64 32

IRTC 65 Galeria Mental Ray 66 33

Galeria Mental Ray 67 Galeria Mental Ray 68 34

Galeria Mental Ray 69 Galeria Mental Ray 70 35

Maiores Referências An Introduction to Ray Tracing - A. Glassner Academic Press, 1989 Internet Ray Tracing Competition www.irtc.org Softwares http://www.povray.org/ Rayshade 71 36