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

Documentos relacionados
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

Objetos definidos no seu próprio sistema de coordenadas

Motivação. Iluminação. Modelo de Iluminação = aproximação da iluminação do mundo real. Sensação da 3-dimensionalidade, percepção da profundidade

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. Módulo 10. Sistemas Gráficos e Interação. Filipe Pacheco SGRAI 2017/18 DEI-ISEP 186. Instituto Superior de Engenharia do Porto

Iluminação. Aula 6. Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto. Paulo Gandra de Sousa

Iluminação e Sombreamento

Shading (sombreamento) & Smooth Shading

Shading (sombreamento) & Smooth Shading

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

Modelos Globais de Iluminação

Computação Gráfica II

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

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

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

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

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

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

2º Exame. Computação Gráfica

CG 2013/2014 Primeiro Teste LEIC Alameda/Taguspark

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

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

Pipeline Gráfico Cluter & Durand, MIT

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

Técnicas de rendering. Realismo

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

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

CÁLCULOS DE ILUMINAÇÃO E SOMBREAMENTO

1º Teste 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

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

OpenGL #2: Brincando com Pixels

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

Iluminando o Cenário

Modelos Globais de Iluminação

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

Modelação de Formas Geométricas

Estudando para a P2-2018

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

Iluminação e Sombreamento

Computação Gráfica - 07

Modelos de Iluminação e Reflexão

Nº Nome: Antes de começar: Identifique todas as folhas com o seu número.

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

Mapeamento de Textura

CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark. 12 de Janeiro de 2016

Determinação da Visibilidade

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

Fundamentos da Computação Gráfica

A Natureza e Representação da Luz

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

Assunto última aula. Flat Shading

Iluminação e FotoRealismo: Fundamentos

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

Textura e Iluminação

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

Realismo Visual. Aula 11 UFF

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

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

Computação Gráfica OpenGL 05 3D

Algoritmos de Iluminação Global

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

Exame de Época Especial Computação Gráfica

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

Processamento Gráfico

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

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

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

Nº Nome: Antes de começar: Identifique todas as folhas com o seu número.

IntMu.Lab5. Importe os ficheiros disponibilizados em

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

Transformações 3D. Soraia Raupp Musse

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

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

Modelagem Geométrica

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

aula 10 corretamente IC/UFF 2017/2

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

Computação Gráfica. Exame de Época Especial de. Nº Nome:

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

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

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

Sistemas Gráficos e Modelos

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

The Graphics Pipeline

1º Exame. Computação Gráfica

1º Exame. Computação Gráfica

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

Transcrição:

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

Iluminação Tópicos: Fundamentos de iluminação Aplicação em OpenGL Modelos de Shading Materiais em OpenGL Iluminação em OpenGL 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 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 mais claros têm uma intensidade intrínseca elevada, enquanto que objectos escuros têm um intensidade intrínseca reduzida. 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 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. 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 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 8

Iluminação - Fundamentos iluminação difusa difusa + ambiente 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 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 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. 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. 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. 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 α θ θ 15

Iluminação - Fundamentos 5 100 O coeficiente de especularidade [0,128] determina a dimensão da mancha brilhante. 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 mais baixos. 16

Iluminação - Fundamentos Cor: R G B I R = I ar * K ar + f att * I p * [ I G =... I B =... ] K dr * (N. L) + I s * K sr * (R.Câmara) s 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 difusa da luz Ls = cor especular da luz 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. 19

Iluminação - OpenGL Código OpenGL: 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); glnormal3f(0,1,0); glvertex3f(0,0,1); glnormal3f(0,1,0); glvertex3f(1,0,0); glend(); glbegin(gl_triangle); glnormal3f(0,1,0); glvertex3f(0,0,0); glvertex3f(0,0,1); glvertex3f(1,0,0); glend(); 20

Iluminação Tópicos: Fundamentos de iluminação Aplicação em OpenGL Modelos de Shading Materiais em OpenGL Iluminação em OpenGL 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) 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 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. 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. 25

Shading Flat Mach Band Fenómeno provocado pela disparidade entre a diferença real de intensidade e a intensidade percepcionada. 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. 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. 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. 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. 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. 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 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. 33

Shading - Gouraud A imagem de cima apresenta o modelo com flat shading A de baixo utiliza Gouraud shading. 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 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 36

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

Shading Gouraud Phong António Ramires Fernandes DI-UM 38

Shading Problema: Silhueta Independente da qualidade do modelo de shading 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 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 trajéctórias da luz 41

Iluminação Tópicos: Fundamentos de iluminação Aplicação em OpenGL Modelos de Shading Materiais em OpenGL Iluminação em OpenGL 42

OpenGL - Materiais Componentes da cor: Difusa Especular Ambiente Emissiva 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 44

OpenGL - Materiais Atribuir materiais: glmaterialfv(gl_front, componente, array); glmaterialf(gl_front,gl_shininess,valor); Componente: GL_DIFFUSE GL_AMBIENT GL_SPECULAR GL_EMISSION GL_AMBIENT_AND_DIFFUSE 0..128 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(); 46

Iluminação Tópicos: Fundamentos de iluminação Aplicação em OpenGL Modelos de Shading Materiais em OpenGL Iluminação em OpenGL 47

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

Direccional OpenGL - Iluminação Atributos: direcção, cor GL_POSITION 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); 50

OpenGL - Iluminação Ponto de Luz Atributos: posição, atenuação, cor GL_POSITION GL_..._ATTENUATION 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); 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 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] 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); 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); 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. 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 58

OpenGL - Iluminação Demo sobre luzes e materiais 59

OpenGL - Iluminação Demo sobre posicionamento da luz 60

Referências Computer Graphics Principles and Practice, Foley, van Dam, Feiner and Hughes OpenGL Reference Manual, OpenGL ARB Advanced Animation and Rendering Techniques : Theory and Practice, Alan Watt andmark Watt 61