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



Documentos relacionados
Computação Gráfica - 13

Computação Gráfica - 13

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

Iluminando o Cenário

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

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

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

Iluminação e sombreamento

Computação Gráfica OpenGL 05 3D

Computação Gráfica - 07

Computação Gráfica 3D Studio Max Prof.: Luiz Gonzaga Damasceno

Dicas de uso - Render Up

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

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

1.2) Na tela seguinte, o primeiro item a ser selecionado é o Unidade Acumuladora1.

EXEMPLO DE COMO FAZER UMA MALA DIRETA

Sumário: Fluxo Operacional... 3 Contatos Agenda Online Reservas de Salas Tarefas... 42

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

Ter um site na internet traz muitas vantagens para uma confeitaria:

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

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

Guia Site Empresarial

Manual Administrador - Mídia System

Modelos de Iluminação

COMO FAZER SEUS PEDIDOS ONLINE PASSO-A-PASSO

Passo a passo de Alteração de Responsáveis Técnico e Legal na AFE e AE.

Tutorial para envio de comunicados e SMS

Manual do sistema SMARsa Web

GUIA BÁSICO PARA PRODUÇÃO DE UM FILME DIGITAL

CRIANDO UMA BIBLIOTECA NO KERKYTHEA por CHARLES BÉRGAMO para o blog do Arqpadao

Manual da Administração do site Abrasel 2.0

BETA CONTROLE DE GUINCHO Copyright Peris Consultoria Empresarial Ltda

OCOMON PRIMEIROS PASSOS

casa. Será uma casa simples, situada em terreno plano, com sala, dois quartos, cozinha, banheiro e área de serviço.

Orientação a Objetos

FCG2006 Prova sobre OpenGL e Rastreamento de Raios

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

Permissão de Usuários

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

A escala usada nesta miniatura é de 1:400, como no exemplo acima.


Atividade Prática: Fotografar Locais Históricos GUIA DO FACILITADOR

O Gerenciador de Oficinas é um grande aliado do professor neste trabalho fascinante que é a oficina do texto.

Olá, esse é o manual feito para ajudar você a conhecer ainda mais o Painel Web que acompanha* App Kontrole.

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo

MÓDULO 5 Movimentações

PROVA ESCRITA PARTE A e B

Tutorial para envio de comunicados

Plano de Aulas AutoCAD 2011

Lição 2: O que Faz um Canal Funcionar?

Figura 1 - Tela de configuração do Questionário.

Universidade Anhanguera Uniderp Centro de Educação a Distância

43 11 Relatórios, Listagens e Exportações para Excel, TXT e HTML

MANUAL SOLICITAÇÃO DE COMPRAS IMPLANTAÇÃO COMPRAS

Como-Funciona-Banco-Damus-Excel-Com-VBNet-Em-3-Idiomas

A LINGUAGEM DA LUZ Fotografia

Sugestão de Roteiro para Elaboração de Monografia de TCC

GUIA BÁSICO DA SALA VIRTUAL

Software. Gerenciamento de Manutenção

Planetário de pobre. Introdução. Materiais Necessários. Vamos simular e entender o movimento da abóbada celeste com uma montagem simples e barata.

Dicas Logycware Como utilizar o módulo de Estoques. Copyright Logycware Sistemas de Informática 2008 Todos os Direitos Reservados

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

Comunidade de Suporte e Feedback

15 4 Operação Avançada do Sistema: Inclusão de Nota Fiscal e seus relacionamentos

Manual das planilhas de Obras

PARA A CONSTRUÇÃO DOS GRÁFICOS

Projeto de Trabalho de Graduação 2

Unidade 5. Aba Anexos. Objetivos de Aprendizagem. Ao final desta Unidade, você deverá ser capaz de:

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

QUALIDATA Soluções em Informática. Módulo CIEE com convênio empresas

Modelos de Iluminação

Objetos definidos no seu próprio sistema de coordenadas

Lição 1 - Criação de campos calculados em consultas

Terceiro Milênio Informática

A máscara de sub-rede pode ser usada para dividir uma rede existente em "sub-redes". Isso pode ser feito para:

Manual do Integrador. Programa de Formação

Tutorial - Monitorando a Temperatura de Servidores Windows

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

1- Tela inicial do AUTOCAD 2013

FUNDAÇÃO MUNICIPAL DE ENSINO DE PIRACICABA Centro de Pós-Graduação

Tópico 02: Movimento Circular Uniforme; Aceleração Centrípeta

A função SOMASE possui uma estrutura básica que se mantêm inalterável.

Construindo a câmara escura

NO ABRIR DA MINHA BOCA (EFÉSIOS 6:19) USO DO POWERPOINT

MANUAL DO ANIMAIL Terti Software

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

5 Equacionando os problemas

Configurando um Grupo Doméstico e Compartilhando arquivos no Windows 7

WorkFlow WEB Caberj v docx. Manual Atendimento Caberj

Data Cempro Informática Ltda. Integração WinLivros X ContabMilenium

Você já ouviu falar em cortes e vistas? Veja alguns exemplos. Clique nas figuras abaixo.

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

Tutorial: SIGRH Para o Servidor ou Seu Chefe Fazerem Consultas, Alterações ou Exclusões de Férias

TRABALHANDO COM SUBSTITUIÇÃO TRIBUTÁRIA

MANUAL DE UTILIZAÇÃO DO ESPAÇO VIRTUAL DE APRENDIZAGEM EVA

Manual de Operação do Sistema de Tickets Support Suite

www. inf.br Outubro/2008 5www.habisp.inf.br TREINAMENTO HABISP VERBA DE ATENDIMENTO

Tutorial de fotonovela

Sistema de Pedido de Registro e Inspeção online. Manual do Usuário

Transcrição:

Como Fazer um Programa, simples, em OpenGL para Trabalhar com Iluminação (exemplo do site da Isabel Mansour) 1) Crie um Programa Simples que desenhe qualquer sólido na Tela. Há um exemplo Há Novo na Página da Disciplina, com o nome OpenBásico-I. Este programa serve também como Partida Inicial para àqueles que ainda têm dúvidas de como começar um programa em OpenGL. 2) Crie uma Função chamada Iluminação e Ponha ela em qualquer lugar antes da main. As explicações são dadas a seguir: A estrutura do código para iluminação de uma cena, que pode ficar inteiramente dentro de uma única função de Iluminação, em OpenGL possui as seguintes módulos (partes): (1) Definição das Estruturas de Dados para os Tipos de Luz, Posição da Luz e Tipo de Brilho (2) Definição da Cor de Fundo e como será o sombreamento nos objetos da cena. (5)Faça as habilitações necessárias, incluindo uso de iluminação, número da Luz, e se vai querer o uso do Z-Buffer. (3)Definição das reflectâncias dos Materiais e Ativar os Tipos de Luzes que prefere. (4)Define Parâmetros para cada Luz de 0 a 7

A explicação de cada bloco é dada a seguir: (1) Exemplo: GLfloat luzambiente[4]={0.2,0.2,0.2,1.0}; GLfloat luzdifusa[4]={0.7,0.7,0.7,1.0}; // "cor" GLfloat luzespecular[4]={1.0, 1.0, 1.0, 1.0};// "brilho" GLfloat posicaoluz[4]={0.0, 50.0, 50.0, 1.0}; Aqui, foram definidos três tipos de iluminação: ambiente, difusa e especular. Cada uma é um vetor R, G, B, A; ou seja, a luz que será utilizada de cada um desses tipos é uma combinação RGB. Note que a luz ambiente foi definida como sendo R = G = B = 0.2, para simular uma luz ambiente cinzenta, bem fraquinha. O Alfa, A = 1.0, significa que não há fog. A posição onde ficará essa luz está no vetor posicaoluz, e representa um ponto no espaço tridimensional (x, y, z). Despreze o quarto valor. GLfloat especularidade[4]={1.0,1.0,1.0,1.0}; GLint especmaterial = 60; Aqui, o primeiro vetor define o quanto especular será o material renderizado. Lembre que uma reflexão especular é aquela que inside em um ponto e se espalha em uma única direção. Ao contrário da difusa que se espalha em todas as direções. Portanto, uma reflexão especular depende da posição do observador. Uma vez que a reflexão é 3D (uma para cada direção), somente os três primeiros valores são considerados. Finalmente, a intensidade da reflexão do material é definida por especmaterial, nesse caso, 60. (2) Exemplo: // Especifica que a cor de fundo da janela será preta glclearcolor(0.0f, 0.0f, 0.0f, 1.0f); Aqui, essa função define de que cor será o fundo da cena. // Habilita o modelo de colorização de Gouraud glshademodel(gl_smooth); Essa função é interessante. Ela define como você quer que a luz se espalhe sobre o material. Por exemplo, lembre-se que os objetos renderizados são malhas triangulares. Então, cada triângulo possui a sua cor. De acordo com o ângulo de incidência da luz, ela pode insidir somente parte (se insidir inclinada) ou toda (se insidir 90 draus). Então, se o objeto for redondo, a luz vinda de um ponto, inside com diferentes intensidades em cada ponto do objeto, uma vez que o ângulo que o atinge varia. Mas, de acordo com a teoria vista em

sala, existem 2 maneiras de simular essa incidência: Gouhaud e Phong. Em OpenGL, GL_SMOOTH é o modelo de Gouhaud. Mas, se quiser que nào haja nenhum desses efeitos, e que simplesmente cada ponto de cada triângulo dependa somente da direção e intensidade da luz incidente, use GL_FLAT. Faça o teste com os dois e veja a diferença. (3) Exemplo // Define a refletância do material glmaterialfv(gl_front,gl_specular, especularidade); // Define a concentração do brilho glmateriali(gl_front,gl_shininess,especmaterial); No item (1) foram definidos os valores de iluminação e reflectância que serão usados. Aqui, eles são definidos explicitamente, através da função glmaterial. O argumento GL_FONT diz para renderizar somente as partes frontais. GL_BACK diz para renderizar as partes internar (objeto vazado, por exemplo). Se quiser renderizar tudo, faça GL_FONT_BACK. O segundo argumento, informa que a reflectância da matarial é em uma única direção, como um espelho, por exemplo. Por isso é usado o argumento GL_SPECULAR e depois GL_SHININESS. Finalmente, o argumento especularidade é o vetor definido em (1) e especmaterial é a variável definida também em (1). (4) Exemplo: gllightfv(gl_light0, GL_AMBIENT, luzambiente); gllightfv(gl_light0, GL_DIFFUSE, luzdifusa ); gllightfv(gl_light0, GL_SPECULAR, luzespecular ); gllightfv(gl_light0, GL_POSITION, posicaoluz ); Aqui, finalmente definimos quantos spots de luz iremos usar. Em OPenGL, podese usar até 8, GL_LIGHT0 a GL_LIGHT7. A função gllightfv define os parâmetros de cada spot. O primeiro argumento é o próprio spot usado, o segundo é que tipo de luz será usado e o terceiro é o vetor de luz correspondente, definida em (1). Assi, as três primeiras chamadas da função gllightfv define que o spot LIGHT0 será uma mistura de luz ambiente, difusa e especular (uma salada que deixa realista). Embora a difusa e a especular sejam antagônicas, é interessante ver esse efeito misturado. A quarta chamada da função gllightfv diz apenas que o spot de Luz GL_LIGHT0 ficará na posição indicada pelo vetor posicaoluz, definido em (1). (5) Exemplo: glenable(gl_color_material); glenable(gl_lighting);

glenable(gl_light0); glenable(gl_depth_test); Uma vez todas as luzes tenham sido definidas, ainda temos que habilitar. Isso é para que possamos ter vários tipos de spots de luz que podemos controlar habilitando e desabilitando rapidamente. Assim, chamamos 4 vezes a função glenable com o argumento correspondente: (a) GL_COLOR_MATERIAL: Habilita a definição da cor do material a partir da cor corrente (b) GL_LIGHTING: Habilita o uso de iluminação (c) GL_LIGHT0: Habilita o uso de iluminação A última habilitação glenable(gl_depth_test) permite finalmente habilitar a técnica do Z-Buffer. EXERCÍCIOS (1) Que efeito acontece se compararmos os sombreamentos de Guhaud e Flat? (2) Modifique a posição da Luz de frontal, como está sugerindo no vetor posição luz, para lateral e descreva sucintamente o efeito que gerou. (3) Use 2 spots de luz, um voltado para a alça do Tepot e outro voltado para o bico, produzindo os efeitos a seguir para spots em posições infinitas e finitas: