Iluminação e sombreamento



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

Paulo Sérgio Rodrigues. Exercícios de Laboratório

Computação Gráfica - 13

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

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

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

Modelos de Iluminação

Iluminando o Cenário

Dicas de uso - Render Up

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

Modelos de Iluminação e Reflexão

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Objetos definidos no seu próprio sistema de coordenadas

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

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 3D Studio Max Prof.: Luiz Gonzaga Damasceno

Fotografia Digital Obtenção da Imagem e Impressão

Dispositivos de Entrada e Saída

UFGD FCA PROF. OMAR DANIEL BLOCO 4 PROCESSAMENTO DE IMAGENS

Curso: Ensino Fundamental II Disciplina: MATEMÁTICA Professor: Álvaro / Leandro

Dicas de uso - Render Up (versão ou superior)

AULA 6 - Operações Espaciais

Copiright de todos artigos, textos, desenhos e lições. A reprodução parcial ou total desta aula só é permitida através de autorização por escrito de

Atividade: matrizes e imagens digitais

COMPUTAÇÃO GRÁFICA. Rasterização e Preenchimento de Regiões. MARCO ANTONIO GARCIA DE CARVALHO Fevereiro de Computação Gráfica

Sistema Banco de Preços Manual do Usuário OBSERVATÓRIO

Informática Aplicada a Radiologia

DESENVOLVIMENTO E APLICAÇÕES DE SOFTWARE PARA ANÁLISE DO ESPECTRO SOLAR

Reflexão. A reflexão ocorre quando a luz incide sobre a superfície de separação entre dois meios com propriedades distintas.

OBJETIVO Verificar as leis da Reflexão Verificar qualitativamente e quantitativamente a lei de Snell. Observar a dispersão da luz em um prisma.

Luz e Cor. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

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

REFLEXÃO DA LUZ: ESPELHOS 412EE TEORIA

6. Geometria, Primitivas e Transformações 3D

FCTA 4 TROCAS TÉRMICAS ENTRE O MEIO E AS EDIFICAÇÕES 4.1 FECHAMENTOS TRANSPARENTES

VISUALIZAÇÃO E MANIPULAÇÕES SIMPLES DE IMAGENS GEOCOVER NO ArcGIS 9.x

Manual de implantação

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO

Capítulo UM Bases Numéricas

Valores eternos. MATÉRIA PROFESSOR(A)

MÓDULO 9. A luz branca, que é a luz emitida pelo Sol, pode ser decomposta em sete cores principais:

REPRESENTAÇÃO DA IMAGEM DIGITAL

Apostila 2 Capítulo 8. Página 305. Reflexões. Gnomo

SEGMENTAÇÃO DE IMAGENS EM PLACAS AUTOMOTIVAS

Computação Gráfica - 13

Visualização Científica. Pedro de Botelho Marcos Março/2008. Núcleo de Computação Científica Tópicos Avançados em Computação II

Curso de Computação Gráfica (CG) 2014/2- Unidade 1- Modelagem de objetos. Exercício 1 (individual) - Entrega: quarta 13/08

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

manual de identidade visual

Entradas e Saídas Analógicas

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

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

Manual de instalação e configuração

VCA Treinamento em Algoritmo

Modelos de Iluminação

Guia Site Empresarial

Shutter: É o tempo de exposição da foto. Pode ser fixo ou automático.

Ciências da Computação Disciplina:Computação Gráfica

*Imagens meramente ilustrativas COLORÍMETRO. Manual de Instruções

Programação Básica em STEP 7 Operações Binárias. SITRAIN Training for Automation and Drives. Página 6-1

UNIVERSIDADE FEDERAL DE PELOTAS. Índice

Imagem digital. Unidade 3

Detecção e Rastreamento de Objetos coloridos em vídeo utilizando o OpenCV

SINALIZAÇÃO DE SEGURANÇA

FILTRAGEM NO DOMÍNIO DAS FREQUÊNCIAS (TRANSFORMADA DE FOURIER) Daniel C. Zanotta 04/06/2015

TIPOS DE REFLEXÃO Regular Difusa

Manual de Aplicação da Marca do BRB

Desenho e Apresentação de Imagens por Computador

ÓTICA e ONDAS. Ótica estudo da luz e dos fenômenos luminosos em geral.

Quadro de consulta (solicitação do mestre)

Manual Operacional SIGA

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Desktop

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

Tópico 2. Conversão de Unidades e Notação Científica

Figura 1: Formato matricial de uma imagem retangular. Figura 2: Ampliação dos pixels de uma imagem

2 de maio de Remote Scan

CAP. I ERROS EM CÁLCULO NUMÉRICO

Lei de Gauss Origem: Wikipédia, a enciclopédia livre.

Manual Geral do OASIS

Dadas a base e a altura de um triangulo, determinar sua área.

Orientação a Objetos

Um capacitor não armazena apenas carga, mas também energia.

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

PROVA MODELO Duração da prova: 120 minutos

SP 20/11/81 NT 076/81. Melhorando o Control. José Ernesto Lima Gonçalves. Melhorando o Control

Firewall. Tutorial Firewall em Linux Acadêmicos: Felipe Zottis e Cleber Pivetta

Astor João Schönell Júnior

a 1 x a n x n = b,

Imagem digital - 1. A natureza da imagem fotográfica. A natureza da imagem fotográfica

Exercício 1: Ajustes rápidos em retrato

OpenGL Shading Language

Qual é o risco real do Private Equity?

Profª Danielle Casillo

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

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Arquitetura de Computadores. Tipos de Instruções

Colorindo com Números Representação de Imagens

Conceitos do Photoshop. Bitmap image Formatos de arquivos Memória Escalas de cores

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

Transcrição:

OpenGL Iluminação e sombreamento Sombreamento OpenGL calcula a cor de cada pixel e parte disso depende de qual é a iluminação usada no cenário e de como os objetos no cenário refletem ou absorvem a luz OpenGL trata a luz e a iluminação como se a luz pudesse ser dividida nas suas componentes Red, Green e Blue. Um modelo de iluminação pode ter várias fontes de luz que podem ser ligadas ou desligadas individualmente. A luz pode vir de uma posição ou direção particular ou ser espalhada pelo cenário. 1

Sombreamento No modelo OpenGL a luz só tem efeito se existem superfícies que absorvem e refletem a luz. O modelo considera a iluminação dividida em quatro componentes: Emissiva Ambiente Difusa Especular Sombreamento A cor que enxergamos depende de três fatores: As fontes de iluminação A inclinação das superfícies As propriedades dos materiais (reflexibilidade das superfícies) Cor da matéria Depende da percentagem de luz vermelha, verde e azul que a superfície recebe Os materiais têm diferentes reflectâncias para as luzes vermelha, azul e verde. As reflectâncias são combinadas com as componentes respectivas de cada fonte de luz. 2

Sombreamento A matéria tem também a cor emissiva que simula a cor originada a partir do objeto. Ela adiciona intensidade ao objeto, mas não afeta nenhuma fonte de luz. Para inserir iluminação em uma cena em OpenGL, são necessárias duas providências: - geração de uma Normal para cada face do objeto; - ativação da iluminação através da chamada da função: glenable(gl_lighting); // sem fontes, // os objetos serão gerados na cor // cinza Definição da cor da luz (ambiente, difusa e especular) glfloat light_ambient [ ] = {1.0, 1.0, 1.0, 1.0}; r g b Preferencialmente, esta cor deve ser branca(r=1,g=1,b=1)para permitir que todas as cores atribuídas ao objeto possam ser vistas. Se os valores de cor forem menores que 1, a luz diminuirá de intensidade. De forma similar, podem ser especificadas as luzes difusas e especulares: glfloat light_diffuse [ ] = {1.0, 1.0, 1.0, 1.0}; glfloat light_specular [ ] = {1.0, 1.0, 1.0, 1.0}; 3

Posição das fontes luminosas Para que uma fonte esteja localizada na cena, ela deve possuir uma posição na cena Para isso deve-se utilizar: glfloat light_position [ ] = {1.0, 1.0, 1.0, 1.0}; O quarto parâmetro desta tupla deve ser diferente de zero, para que a luz esteja dentro da cena; caso este parâmetro seja zero, a fonte é tratada como um spot (spotlight), ou seja, uma luz direcionada. glfloat light_position [ ] = {1.0, 1.0, 1.0, 0.0}; Ativar o uso da luz ambiente Para definir uma fonte como sendo de luz ambiente, pode-se definir: glligthfv(gl_light0,gl_ambient,light_ambient); Para ativar a fonte: glenable(gl_lighting); glenable(gl_light0); Para definir fontes de luz difusa e especular: glligthfv(gl_light1,gl_diffuse,light_diffuse); glligthfv(gl_light2,gl_specular,light_specular); 4

Definição de luzes direcionadas Fontes luminosas brilham em todas as direções, a menos que sejam definidas como spotlights. Para isso, o quarto parâmetro do comando lightposition deve ser zero. glfloat light_position [] = {1.0,1.0,1.0,0.0}; glligthfv(gl_light3,gl_position,light_position); Spots apresentam as características de direção e corte (cutoff) glligthf(gl_light3,gl_spot_direction,-1.0,-1.0, -1.0) ; glligthf(gl_light3,gl_spot_cutoff,30.0) ; cuttof direction Definição de luzes direcionadas A luz do spot pode ser atenuada em direção às bordas do ângulo de corte. Esta atenuação é modelada pelo parâmetro exponent. glligthf(gl_light3,gl_spot_exponent,2.0) ; 5

Posição e Atenuação A fonte pode estar infinitamente longe do cenário ou perto. A intensidade da luz decresce com a distância. Isto é importante quando se tem a luz posicional. O OpenGL atenua a fonte de luz por multiplicação da contribuição da fonte pelo fator de atenuação: 1/ (K c + K l d + K q d 2 ) onde: K c - GL_CONSTANT_ATTENUATION K l - GL_LINEAR_ATTENUATION K q - GL_QUADRATIC_ATTENUATION Definição da cor do material que constitui o objeto Para modelar a forma como a luz atua em um objeto é necessário definir como ele manipula a luz ambiente, difusa e especular. Isto equivale a definir a cor do objeto quando submetido a estas luzes: glfloat light_ambient [] = {1.0, 1.0, 1.0, 1.0}; // Define a cor da luz ambiente. glenable(gl_lighting); // Habilita o uso de iluminação gllightmodelfv(gl_light_model_ambient, light_ambient); // Ativa o uso da luz ambiente gl(gl_color_material); //Ativa o "Color Tracking" 6

Especificação dos materiais Cada polígono possui parte da frente e parte de trás. Estas duas faces podem ter cores diferentes. glfloatfv (GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE, mat_amb_diff); glfloat mat_amb_diff = {0.1,0.5,0.8,1.0}; glfloat white = {1.0,1.0,1.0,1.0}; glfloatfv (GL_FRONT,GL_DIFFUSE, white); glfloat black = {0.0,0.0,0.0,1.0}; glfloatfv (GL_BACK,GL_SPECULAR, black); Normais Normais são especificadas pelo comando glnormal Normais são associadas aos vértices A sequência natural de especificação é: glnormal, glvertex... Geralmente, deseja-se a normal com valor unitário: glenable (GL_NORMALIZE) glbegin(gl_polygon); // face posterior glnormal3f(0,0,1); // normal da face glvertex3f(10.0, 10.0, 10.0); glvertex3f(-10.0, 10.0, 10.0); glvertex3f(-10.0, -10.0, 10.0); glvertex3f(10.0, -10.0, 10.0); glend; 7

Blending (fusão) Permite combinar o valor da cor do fragmento que está sendo processado com o do pixel armazenado no framebuffer. O processo de fusão ocorre após a renderização da cena e sua conversão a fragmentos, mas antes que os pixels sejam desenhados no framebuffer. Para o processo de fusão utiliza-se os valores de α (opacidade alpha channel) do conjunto RGBA. O processo de fusão é base para: Transparência Composição digital Pintura Opacidade = 20% transmite 80% da luz Blending tratamento matemático s = source pixel origem fragmento (s r, s g, s b, s a ) Fator de fusão (blending) da origem: (b r, b g, b b, b a ) d = pixel destino - framebuffer (d r, d g, d b, d a ) Fator de fusão (blending) do destino: (c r, c g, c b, c a ) A operação de fusão produzirá d (d d) d = [b r s r + c r d r b g s g + c g d g b b s b + c b d b b a s a + c a d a ] Void glblendfunc (Glenum sfactor, Glenum dfactor) 8

Alguns valores que podem ser aplicados aos fatores de fusão Constante GL_ZERO GL_ONE GL_DST_COLOR GL_SRC_COLOR GL_ONE_MINUS_ DST_COLOR GL_ONE_MINUS_ SRC_COLOR Fator relevante source source valor (0, 0, 0, 0) (1, 1, 1, 1) (Rd, Gd, Bd, Ad) (Rs, Gs, Bs, As) (1, 1, 1, 1)-(Rd, Gd, Bd, Ad) (1, 1, 1, 1)-(Rs, Gs, Bs, As) Alguns valores que podem ser aplicados aos fatores de fusão Constante GL_SRC_ALPHA GL_ONE_MINUS _SRC_ALPHA GL_DST_ALPHA GL_ONE_MINUS _DST_ALPHA GL_SRC_ALPHA _SATURATE Fator relevante source valor (As, As, As, As) (1, 1, 1, 1)-(As, As, As, As) (Ad, Ad, Ad, Ad) (1, 1, 1, 1)-(Ad, Ad, Ad, Ad) (f, f, f, 1); f=min(as, 1-Ad) 9

Referências Angel, E. Interactive Computer Graphics A topdown approach with OpenGL. Addicon-Wesley, 1997. OpenGL Programming Guide 2nd. Ed. The Oficial Guide to Learning: OpenGL, version 1.1. Disponível em: http://www.dcc.unicamp.br/~lmarcos/courses/mc603/redbook/about.html 10