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

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

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

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

Iluminação e Sombreamento

Computação Gráfica - 13

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

Iluminação e Sombreamento

Iluminação em OpenGL. André Tavares da Silva.

Iluminação e Sombreamento

Iluminação e Sombreamento

Shading (sombreamento) & Smooth Shading

Modelos Globais de Iluminação

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

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

CG 2015/2016 Segundo Teste LEIC Alameda/Taguspark. Segundo Teste. 18 de Novembro de 2015

Computação Gráfica Conf. 6: Iluminação e materiais. ISUTIC Eng. Alexander Rodríguez Bonet

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

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

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

CG 2013/2014 Primeiro Teste LEIC Alameda/Taguspark

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

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

Computação Gráfica - 13

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

Pipeline Gráfico Cluter & Durand, MIT

Modelos de Iluminação Métodos de surface-rendering. Beatriz Sousa Santos, J. Madeira

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

Iluminando o Cenário

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

Técnicas de rendering. Realismo

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

Modelos de Iluminação Métodos de surface-rendering

Cap.6 Iluminação Engenharia Informática (5385) - 2º ano, 2º semestre 1

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

Modelação de Formas Geométricas

Modelos Globais de Iluminação

Iluminação e Sombreamento

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 - 07

Modelos de Iluminação e Reflexão

Computação Gráfica. GLSL - Programação de Shaders Iluminação

Computação Gráfica. GLSL - Programação de Shaders Iluminação

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

Mapeamento de Textura

Iluminação e FotoRealismo: Fundamentos

Nº Nome: Relação de aspecto é o quociente entre a altura e a largura de uma janela ou um viewport.

Modelação de Sólidos. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

Fundamentos da Computação Gráfica

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

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

Como Fazer um Programa, simples, em OpenGL para Trabalhar com Iluminação (exemplo do site da Isabel Mansour)

8. Síntese de Imagens: Cálculo de Cor

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

Computação Gráfica OpenGL 05 3D

A Natureza e Representação da Luz

Determinação da Visibilidade

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

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

Modelação de Sólidos. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

Modelagem Geométrica

QuadLOD: Uma Estrutura para a Visualização Interativa de Terrenos

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

CRAb Grupo de Computação Gráfica Departamento de Computação UFC

Processamento de Malhas Poligonais

aula 10 corretamente IC/UFF 2017/2

Intensidade determina qual o brilho que uma luz provoca na superfície de um objecto (Multiplier).

Iluminaçao. Os modelos de Iluminação são técnicas usadas para calcular a intensidade da cor de um ponto a ser exibido.

Visibilidade Ray-Tracing

REPRESENTAÇÃO NUMÉRICA DO TERRENO

Linda Iluminação. ão, mas não real!! Aula 14. Porque? fases plana e curvas. Iluminação IC/UFF 2017/2

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

Iluminação e sombreamento

GRANDEZAS USADAS EM LUMINOTECNIA Introdução

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Transformações 2D

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

Computação Gráfica. Representação e Modelagem

Computação Gráfica - 09

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

Modelo gráfico do VTK: Fonte de Luz e Câmara

Modelo gráfico do VTK: Fonte de Luz e Câmara

aula 10 corretamente IC/UFF 2017/2

INTRODUÇÃO E CONCEITOS BÁSICOS

Terceiro Trabalho Ray Tracing

Óptica Geométrica. Construções geométricas em lentes delgadas"

MODELO de COR (1) ORIENTADO PARA O EQUIPAMENTO. Finalidade? Especificação precisa das cores numa certa gama, para determinada classe de equipamentos.

Modelos Geométricos Transformações

Modelos de Iluminação Locais

Capítulo 36 Difração

António Costa. Paulo Roma Cavalcanti

Iluminação Cenográfica Capítulo 1 - Noções básicas

Computação Gráfica II

ESCOAMENTO INCOMPRESSÍVEL TRIDIMENSIONAL

FCTUNIVERSIDADE NOVA DE LISBOA!

PLANO CURRICULAR DISCIPLINAR. MATEMÁTICA 9º Ano

Gabarito Lista Cap. 7.: (Realismo Visual e Iluminação)

DIFRAÇÃO DA LUZ DE UM LASER POR FENDAS

Conteúdos Ideias-Chave Objectivos específicos. múltiplo de outro número, este é divisor do primeiro.

Representação de Objectos. & Estruturas de Dados. ! Os modelos são cada vez mais complexos

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

Transcrição:

Computação Gráfica Iluminação António nio Ramires Fernandes - Multimédia

Iluminação Tópicos: Fundamentos de iluminação Aplicação em OpenGL Modelos de Shading Materiais em OpenGL Iluminação em OpenGL DI-UM Multimédia 2

Iluminação Em CG a iluminação simula como os objectos reflectem a luz em tempo real. É uma aproximação empírica da iluminação real, por vezes sem profundas bases teóricas que as sustentem, no entanto com resultados práticos bastante aceitáveis. Esta aproximação deve-se a dois factores: 1. As equações da iluminação real não são totalmente conhecidas 2. Mesmo os modelos simplificados da realidade são extremamente complexos DI-UM Multimédia 3

Iluminação - Fundamentos A versão mais simples consiste em utilizar iluminação ambiente Todos os objectos têm uma intensidade intrínseca. Para cada objecto é definida uma constante, que indica a intensidade intrínseca. I = K a Objectos claros têm uma intensidade intrínseca elevada, enquanto que objectos escuros têm um intensidade intrínseca reduzida. DI-UM Multimédia 4

Iluminação - Fundamentos Iluminação ambiente. Esta forma iluminação simula de uma forma básica as reflexões que a luz realiza, iluminando todos os objectos por igual. I = K a * I a Propriedade do material Propriedade da luz DI-UM Multimédia 5

Iluminação - Fundamentos As equações até agora apresentadas não têm em consideração a posição e orientação da fonte de luz. Todos os objectos são iluminados de forma uniforme independentemente da sua posição ou orientação. A própria luz não tem posição e/ou orientação definidas. DI-UM Multimédia 6

Iluminação - Fundamentos Consideremos agora uma luz com uma posição determinada que emite luz em todas as direcções, por ex: lâmpada. A luz emite raios de luz uniformemente distribuídos. Podemos ter em conta dois factores: orientação do objecto em relação à luz distância à luz DI-UM Multimédia 7

Iluminação - Fundamentos Reflexão difusa (Lambert) A intensidade de um objecto é proporcional ao ângulo entre a direcção da luz e a normal do objecto. Intensidade da luz I = I p * K d * cos (θ) N θ L coeficiente de reflexão difusa DI-UM Multimédia 8

Iluminação - Fundamentos iluminação difusa difusa + ambiente DI-UM Multimédia 9

Iluminação - Fundamentos Ficamos portanto com: I = I a * K a + I p * K d * cos (θ) Caso ambos os vectores estejam normalizados pode-se substituir o coseno pelo produto interno, I = I a * K a + I p * K d * (N. L) Produto Interno N.L = n x * l x + n y * l y + n z * l z Nota: só se consideram valores positivos do produto interno ou coseno DI-UM Multimédia 10

Iluminação - Fundamentos Atenuação baseada na distância I = I a * K a + f att * I p * K d * (N. L) A escolha correcta seria: f att = 1/d 2 distância à luz Ou seja, a intensidade é inversamente proporcional ao quadrado da distância entre o objecto e a fonte de luz DI-UM Multimédia 11

Iluminação - Fundamentos A escolha correcta no entanto não produz os efeitos desejados. Luz próxima => grandes variações Luz distante => variações demasiado pequenas A realidade não se resume a uma fonte de luz sem interacção entre os objectos. Numa situação real a luz reflectida por um objecto tem influência nos outros objectos. DI-UM Multimédia 12

Iluminação - Fundamentos Uma solução de compromisso é: f att = min(1/(c 1 + c 2 *d + c 3 *d 2 ), 1) c1,c2,c3: constantes associadas à fonte de luz. c1: constante que evita que o denominador fique muito pequeno quando a luz está muito perto. O cálculo do mínimo obriga a diminuir ou manter a intensidade, i.e. f att, <= 1. DI-UM Multimédia 13

Iluminação - Fundamentos Reflexão Especular - Phong Ao iluminar materiais brilhantes verifica-se uma mancha brilhante cuja posição depende da posição da câmara. DI-UM Multimédia 14

Iluminação - Fundamentos I = I a * K a + f att * [ especular ambiente difusa I d * K d * (N. L) + I s * K s * (R.Câmara) s ] Coeficiente de especularidade R N L Nota: só se consideram os valores positivos do produto interno Câmara α θ θ DI-UM Multimédia 15

Iluminação - Fundamentos O coeficiente de especularidade [0,128] determina a dimensão da mancha brilhante. 5 100 Quanto maior o valor, mais pequena é a mancha. Materiais metálicos tendem a ter valores altos, enquanto que materiais baços definem-se com valores baixos. DI-UM Multimédia 16

Iluminação - Fundamentos Cor: R G B I R = I ar * K ar + f att * I p * [ ] I G =... K dr * (N. L) + I s * K sr * (R.Câmara) s I B =... DI-UM Multimédia 17

Iluminação - OpenGL V c = V e + V a * L ga + sum(fatt * (V a * L a + max {N.L, 0} * V d * L d + max {R.Câmara, 0} s * V s * L s ) Vc = cor final do vértice Ve = cor emissiva do vértice Va = cor ambiente do vértice Vd = cor difusa do vértice Vs = cor especular do vértice s = coeficiente de especularidade Lga = cor global ambiente La = cor ambiente da luz Ld = cor diffusa da luz Ls = cor especular da luz DI-UM Multimédia 18

Iluminação - OpenGL Para cada vértice é necessário definir a sua normal. Podemos considerar a normal como sendo um vector unitário perpendicular à superfície do polígono. Considerando um triângulo, podemos definir a sua normal como sendo o produto externo entre duas arestas: n = v1 x v2 = [nx,ny,nz] nx = v1y * v2z - v1z * v2y ny = v1z * v2x - v1x * v2z nz = v1x * v2y - v1y * v2x Nota: O vector obtido através do produto externo deve ser normalizado. DI-UM Multimédia 19

Iluminação - OpenGL Código OpenGL: glbegin(gl_triangle); glnormal3f(0,1,0); glvertex3f(0,0,0); glnormal3f(0,1,0); glvertex3f(0,0,1); glnormal3f(0,1,0); glvertex3f(1,0,0); glend(); No caso de se utilizar a mesma normal para todos os vértices pode-se escrever: glbegin(gl_triangle); glnormal3f(0,1,0); glvertex3f(0,0,0); glvertex3f(0,0,1); glvertex3f(1,0,0); glend(); DI-UM Multimédia 20

Iluminação Tópicos: Fundamentos de iluminação Aplicação em OpenGL Modelos de Shading Materiais em OpenGL Iluminação em OpenGL DI-UM Multimédia 21

Modelos de Shading Processo para colorir um polígono (ou superfície) utilizando um determinado modelo de iluminação. Alguns modelos de iluminação: Flat (constante) Interpolação Gouraud Phong (não disponível em OpenGL) DI-UM Multimédia 22

Shading - Flat Neste modelo o polígono tem iluminação constante em toda a sua superfície. Uma normal para cada polígono Produz um resultado facetado DI-UM Multimédia 23

Shading - Flat Este modelo só faz sentido se: A distância entre a fonte de luz e o polígono for infinita, de forma a que N.L é constante ao longo do polígono. O utilizador encontra-se também a uma distância infinita, para que não haja variação da componente especular ao longo do polígono. A modelação é uma representação fiel da superfície a modelar, i.e. não é uma aproximação. DI-UM Multimédia 24

Shading - Flat Problema: Aspecto facetado! Solução: Definir uma malha poligonal mais fina. Esta solução tem desvantagens óbvias: Primeiro implica um número mais elevado de polígonos o que pode diminuir o desempenho. Em segundo lugar, o aspecto facetado é de facto intensificado devido ao efeito das bandas de Mach. DI-UM Multimédia 25

Shading Flat Mach Band Fenómeno provocado pela disparidade entre a diferença real de intensidade e a intensidade percepcionada. DI-UM Multimédia 26

Shading - Interpolação Neste modelo, proposto por Gouraud, determina-se a intensidade da luz para cada vértice utilizando a normal respectiva. A intensidade dos restantes pontos do polígono é calculada por interpolação Desta forma elimina-se a primeira restrição do modelo FLAT: a distância do polígono à luz não necessita de ser infinita. DI-UM Multimédia 27

Shading - Interpolação A intensidade varia ao longo do polígono. A intensidade do vértice é proporcional ao ângulo entra a sua normal e a direcção da luz. DI-UM Multimédia 28

Shading - Interpolação Problema: Superfície continua facetada. As normais nos pontos de descontinuidade são diferentes! Polígonos com orientações diferentes têm intensidades diferentes nas suas arestas. DI-UM Multimédia 29

Shading - Gouraud Muitos dos objectos a modelar são constituídos por superfícies curvas, e a modelação poligonal é apenas uma aproximação. Objectivo: Aproximar uma superfície curva por uma malha poligonal Mas, se cada polígono for iluminado individualmente...... continua-se a ter uma aparência facetada, e por consequência torna-se fácil distinguir um polígono dos seus vizinhos, cuja orientação é diferente. DI-UM Multimédia 30

Shading - Gouraud Para resolver este problema, Gouraud posteriormente sugeriu que...... cada vértice tivesse uma normal que representasse, não a orientação do polígono,...... mas sim a normal da superfície que a malha poligonal pretende aproximar. DI-UM Multimédia 31

Shading - Gouraud Isto implica que as normais da superfície a aproximar sejam conhecidas para cada vértice. superfície a aproximar Normal da superfície a ser atribuída aos vértices de ambos os polígonos Malha poligonal utilizada DI-UM Multimédia 32

Shading - Gouraud No caso das normais da superfície não serem conhecidas, e não for possível o seu cálculo,...... é possível obter uma aproximação através da média (normalizada) das normais de cada polígono individual que partilhe o vértice. DI-UM Multimédia 33

Shading - Gouraud A imagem de cima apresenta o modelo com flat shading A de baixo utiliza Gouraud shading. DI-UM Multimédia 34

Shading - Gouraud O modelo de Gouraud não elimina completamente o problema das bandas de Mach, embora as reduza consideravelmente. As manchas especulares não são reproduzidas fielmente DI-UM Multimédia 35

Shading - Gouraud Problema: Dependência da iluminação nos vértices do polígono. luz circular inteiramente dentro do polígono Um polígono parcialmente iluminado, em que nenhum dos vértices é iluminado é representado como se a totalidade do polígono não fosse iluminado. Solução: Malha mais fina luz circular inclui só um canto do polígono situação desejada malha mais fina DI-UM Multimédia 36

Shading - Phong Phong propõe: Interpolar Normais em vez de intensidades Problema: Tempo Real? (já ultrapassado) DI-UM Multimédia 37

Shading Gouraud Phong DI-UM Multimédia 38

Shading Problema: Silhueta Independente da qualidade do modelo de shading DI-UM Multimédia 39

Shading Problema: Nos modelos apresentados os objectos não interagem em termos de iluminação. São modelos locais. Por exemplo: Objectos não causam sombras noutros objectos A luz vem da esquerda DI-UM Multimédia 40

Shading Modelos mais complexos, que contemplem iluminação global, não são utilizáveis em tempo real: Ray tracing cálculo de interacções especulares cálculo de sombras Radiosidade cálculo de interacções difusas Photon Mapping cálculo das trajectórias da luz DI-UM Multimédia 41

Iluminação Tópicos: Fundamentos de iluminação Aplicação em OpenGL Modelos de Shading Materiais em OpenGL Iluminação em OpenGL DI-UM Multimédia 42

OpenGL - Materiais Componentes da cor: Difusa Especular Ambiente Emissiva DI-UM Multimédia 43

OpenGL - Materiais Se para um objecto não for definido um material a sua representação é a da direita Esfera azul iluminada por luz vermelha DI-UM Multimédia 44

OpenGL - Materiais Atribuir materiais: glmaterialfv(gl_front, componente, array); glmaterialf(gl_front,gl_shininess,valor); 0..128 Componente: GL_DIFFUSE GL_AMBIENT GL_SPECULAR GL_EMISSION GL_AMBIENT_AND_DIFFUSE DI-UM Multimédia 45

OpenGL - Materiais OU glmaterialfv(gl_front,gl_diffuse, vermelho); desenha1(); glmaterialfv(gl_front,gl_diffuse, azul); desenha2(); glcolormaterial(gl_front, GL_DIFFUSE); glenable(gl_color_material); glcolor3fv(vermelho); desenha1(); glcolor3fv(azul); desenha2(); DI-UM Multimédia 46

Iluminação Tópicos: Fundamentos de iluminação Aplicação em OpenGL Modelos de Shading Materiais em OpenGL Iluminação em OpenGL DI-UM Multimédia 47

OpenGL - Iluminação Definir propriedades da luz gllight{if}(gl_lighti, param, valor1,valor2,...); gllight{if}v(gl_lighti, param, array_valores) DI-UM Multimédia 48

OpenGL - Iluminação Direccional Atributos: direcção, cor GL_POSITION DI-UM Multimédia 49

OpenGL - Iluminação Definir uma luz direccional GLfloat amb[3] = {0.2, 0.2, 0.2}; GLfloat diff[3] = {1.0, 1.0, 1.0}; GLfloat pos[4] = {0.0, 0.0,1.0, 0.0}; 0.0 indica que a luz é direccional A posição indica a direcção da luz gllightfv(gl_light0, GL_POSITION, pos); gllightfv(gl_light0, GL_AMBIENT, amb); gllightfv(gl_light0, GL_DIFFUSE, diff); DI-UM Multimédia 50

OpenGL - Iluminação Ponto de Luz Atributos: posição, atenuação, cor GL_POSITION GL_..._ATTENUATION DI-UM Multimédia 51

OpenGL - Iluminação Definir um ponto de luz GLfloat amb[3] = {0.2, 0.2, 0.2}; GLfloat diff[3] = {1.0, 1.0, 1.0}; GLfloat pos[4] = {0.0, 0.0,10.0, 1.0}; 1.0 indica que se trata de um ponto de luz gllightfv(gl_light0, GL_POSITION, pos); gllightfv(gl_light0, GL_AMBIENT, amb); gllightfv(gl_light0, GL_DIFFUSE, diff); DI-UM Multimédia 52

OpenGL - Iluminação Foco de Luz (Spotlight) Atributos: posição, ângulo, atenuação, direcção, cor GL_POSITION GL_SPOT_DIRECTION GL_SPOT_CUTOFF GL_..._ATTENUATION DI-UM Multimédia 53

OpenGL - Iluminação Definir um foco de luz GLfloat diff[3] = {1.0, 1.0, 1.0}; GLfloat pos[4] = {0.0, 0.0,10.0, 1.0}; GLfloat spotdir[3] = {0.0, 0.0, -1.0}; gllightfv(gl_light0, GL_POSITION, pos); gllightfv(gl_light0, GL_DIFFUSE, diff); gllightfv(gl_light0, GL_SPOT_DIRECTION, spotdir); gllightf(gl_light0, GL_SPOT_CUTOFF, 45.0); // [0,90] ou 180 gllightf(gl_light0,gl_spot_exponent, 0.0); // [0,128] DI-UM Multimédia 54

OpenGL - Iluminação Ligar, desligar luzes individuais (por omissão estão desligadas) glenable(gl_lighti); gldisable(gl_lighti); Ligar,desligar o quadro glenable(gl_lighting); gldisable(gl_lighting); DI-UM Multimédia 55

OpenGL - Iluminação Algumas Propriedades Globais Luz Ambiente Global GLfloat mod_amb[3] = {0.2, 0.2, 0.2, 1.0}; gllightmodelfv(gl_light_model_ambient, mod_amb); Cálculo da reflexão especular gllightmodeli(gl_light_model_local_viewer, GL_FALSE); DI-UM Multimédia 56

OpenGL - Iluminação Algumas Propriedades Globais Cálculo separado da cor especular gllightmodeli(gl_light_model_color_control, GL_SINGLE_COLOR); gllightmodeli(gl_light_model_color_control, GL_SEPARATE_SPECULAR_COLOR); O cálculo da cor pode ser realizado em 1 ou dois passos. Neste último caso a cor especular não é influenciada pela aplicação de texturas. DI-UM Multimédia 57

OpenGL - Iluminação Algumas Propriedades Globais Cálculo da iluminação em ambos os lados gllightmodeli(gl_light_model_two_side, GL_TRUE); Quando se especifica TWO_SIDE, estamos a pedir ao OpenGL que inverta as normais para o lado de trás do polígono DI-UM Multimédia 58

OpenGL - Iluminação Demo sobre luzes e materiais DI-UM Multimédia 59

OpenGL - Iluminação Demo sobre posicionamento da luz DI-UM Multimédia 60

Referências Computer Graphics Principles and Practice, Foley, van Dam, Feiner and Hughes OpenGL Reference Manual, OpenGL ARB OpenGL Programming Guide, OpenGL ARB DI-UM Multimédia 61