Modulo 2E: - transformações - cores - luz Marcus G. Pivatto

Slides:



Advertisements
Apresentações semelhantes
Visualização do OpenGL
Advertisements

Introdução a OpenGL (parte final).
Claudio Esperança Paulo Roma Cavalcanti
Navegador de cenas com openGL e rastreamento de raios
OpenGL Conceitos Básicos
Renderização de Isosuperficies Baseada em Cell Projection Marcos Machado 10/12/2004.
Calibração de Câmeras Cap. 6 Trucco & Verri.
OpenGL Alberto B. Raposo.
Alberto B. Raposo INF 1366 – Computação Gráfica Interativa Raytracing (resumo) POVRAY – Persistence of Vision Raytracer Alberto.
Iluminação Para programar um sistema de iluminação, dois passos principais devem ser considerados: c) Que tipo e posição de Iluminação se deseja b) Que.
Espelhos planos e esféricos
PGF5001 – Mecânica Quântica 1 Prof. Emerson Passos.
Prof. Celso Gramática.
MÉTRICA ds2=dx2+dy2 Distância entre dois pontos numa superfície
Registro de Carta Topográfica
Ilusão de Ótica O termo Ilusão de óptica aplica-se a todas ilusões que «enganam» o sistema visual humano fazendo-nos ver qualquer coisa que não está presente.
Snap Together Visualization. Introdução - Exploração Visual de Dados Aplicada em conjuntos de dados abstratos. Facilitar a percepção de padrões, tendências,
Técnicas de Processamento Imagens
Geração de Código Otimizações independentes de máquina.
HAND: Height Above the Nearest Drainage
Estatística: Aplicação ao Sensoriamento Remoto SER 202 Aula 01 - ANO 2013 Camilo Daleles Rennó
Prof: Encoder Angular Prof:
Sistemas de Tutoria Inteligente (STI) Visam proporcionar instrução de forma adaptada a cada aprendiz. STIs adaptam o processo de instrução a determinadas.
CES-11 LAB 03 Bitmap Quadtree
Laboratório de Fotojornalismo
1.3 – Interpretadores – Compiladores versus Interpretadores
Transferência de Calor por Radiação Térmica
Juiz Virtual: uma aplicação de modelagem baseada em imagens Paulo Cezar P. Carvalho (IMPA) Flávio Szenberg (PUC-Rio) Marcelo Gattass (PUC-Rio)
Probabilidade e Esperança Condicional
IMPA A. Montenegro e P. Carvalho1 Introdução à Computação Gráfica Modelos de iluminação.
Mecânica dos Materiais TA-431 FEA/Unicamp
Copyright, 1999 © Marcelo Knörich Zuffo PEE-EPUSP Visualização Científica PSI a Aula – Conceitos Básicos de Iluminação.
© Copyright MKZ PEE Realidade Virtual1 Efeitos avançados de VRML Rafael Lachi.
Copyright, 1999 © Marcelo Knörich Zuffo PEE-EPUSP Visualização Científica PSI a Aula – Renderização Volumétrica.
Aula 1 – 10/09 Introdução ao Curso Marcelo Paiva
Modelos de Iluminação Daniel Lemos. Definição MODELOS DE ILUMINAÇÃO são técnicas usadas para calcular a intensidade da cor de um ponto a ser exibido.
II – Modelos Globais de Iluminação – Cenário Estático Escola Politécnica da USP Engenharia de Sistemas Eletrônicos Marcio Lobo Netto
Modelos de Iluminação e Tonalização
CONCLUSÕES A apresentação deste poster ocorrerá na I Jornada da ABEAD na Paraíba que acontecerá do dia 03 à 05 de novembro de 2010 no Hotel Caiçara em.
Interpolação Introdução Conceito de Interpolação
Cartografia.
LINGUAGENS DE PROGRAMAÇÃO
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Visão Computacional Geometria de Transformações
Visão Computacional Shape from Shading e Fotométrico Eséreo
Formação de Imagem - Sampling
Visão Computacional Formação da Imagem
Visão Computacional Formação da Imagem
Visão Computacional Radiometria
Robótica: Sistemas Sensorial e Motor
OpenGL Computação Gráfica. O que é OpenGL? Uma linguagem de programação gráfica de baixo nível Projetada para gráfico interativo 2D e 3D Uma interface.
Computação Gráfica MO603/MC930
Computação Gráfica Visualização 3D
Computação Gráfica - LM
Computação Gráfica Geometria de Transformações
Computação Gráfica
Processamento de Pixel
OpenGL Computação Gráfica. O que é OpenGL? Uma linguagem de programação gráfica de baixo nível Projetada para gráfico interativo 2D e 3D Uma interface.
Computação Gráfica Iluminação e Texturas.
Renderização de cenas por traçado de raios na Placa Gráfica Fabiano Segadaes Romeiro Sistemas Gráficos 3D IMPA.
Simulação Massa-Mola para Tecidos
Introdução à Computação Gráfica Projeções
Animações Independentes na Mesma Cena
Tarefa: Implementar o Demo na página da disciplina. Para trabalhar com iluminação em OpenGL, deve-se definir: 1)Vetores de iluminação : Ex: GLfloat luzAmbiente[4]={0.2,0.2,0.2,1.0};
Iluminação e Sombreamento
Aula Gráfica de LP2 Professor: André Santos Monitor: José Edson.
Computação Gráfica – Transformações Projetivas
Luiz Fernando Marcio Neves Petrônio Gomes Thiago Monteiro Victor Hazin
Computação Gráfica – Transformações Projetivas
Transcrição da apresentação:

Modulo 2E: - transformações - cores - luz Marcus G. Pivatto OpenGL Modulo 2E: - transformações - cores - luz Marcus G. Pivatto

Conteúdo realidade virtual ? (linguagens 3D & resultados) projeções e seus efeitos rotação, translação, escala animação, problemas hardware/software atribuição de cores definições de luz

TITLE: warm_up Megapov 0.7 NAME: Norbert Kern, Germany TOPIC: Insects and Spiders PARSE: 11min 40s TRACE: 101 h 18 min MEMORY: 1110 MB peak HARDWARE USED: 1,4 GHz Athlon C / 1 GB RAM

TITLE: The wet bird NAME: Gilles Tran, France TOPIC: City RENDER TIME: 21 h HARDWARE USED: Pentium II 350 Megapov 0.4

M.C. Escher (1898- 1972) A Dutch graphic artist, most recognized for spatial illusions, impossible buildings, repeating geometric patterns (tessellations), and his incredible techniques in woodcutting and lithography.

Projeções visão  percepção real  virtual 2D  3D TITLE: That's Impossible NAME: Joe Wise COUNTRY: USA

Ortogonal A Projeção Ortogonal é selecionada pelo comando glOrtho e utiliza seis parâmetros que definem um volume de visão. glOrtho(left,right,bottom,top,near,far);

Perspectiva glFrustrum(left,right,bottom,top,near,far); A percepção das distâncias entre os objetos e o ponto de visão é o efeito característico da projeção em perspectiva. Comando glFrustum, define o volume de visão em forma de tronco de pirâmide ( frustum ). glFrustrum(left,right,bottom,top,near,far); ou gluPerspective(angle,aspect,near,far);

Exemplo - Ortogonal Observar o sentido de rotação do disco colorido!

Exemplo - Perspectiva Observar o sentido de rotação do disco colorido!

Transformações - Comandos Translação Rotação Escala Reinicialização Armazenar e restaurar um “estado de transformação” anterior.

Estado de Transformação A idéia central as transformações em OpenGL é que elas são cumulativas, ou seja, podem ser aplicadas umas sobre as outras. Uma transformação geométrica de OpenGL é armazenada internamente em uma matriz. A cada tranformação esta matriz é alterada e usada para desenhar os objeto a aprtir daquele momento, até que seja novamente alterada.

Matrizes de Transformação O OpenGL mantém três matrizes de transformação: ModelView, Projection e ViewPoint que são usadas para transformar um vértice qualquer dado em um ponto da janela de visualização. Cada vértice especificado é multiplicado por estas três

Pipeline de Transformação glMatrixMode executado com uma das constantes: GL_MODELVIEW, GL_PROJECTION ou GL_TEXTURE.

O GL_Fotógrafo Arrumar o tripé e posicionar a câmera para fotografar a cena - equivalente a especificar as transformações de visualização ( função gluLookAt ); Arrumar a cena para ser fotografada, incluindo ou excluindo objetos/pessoas - equivalente à etapa de modelagem (inclui as tranformações geométricas, glTranslatef, glScalef, glRotatef, e o desenho dos objetos); Escolher a lente da câmera ou ajustar o zoom - equivalente a especificar as transformações de projeção ( função gluPerspective ); Determinar o tamanho final da foto (maior ou menor) - equivalente a especificar a viewport (funções glViewport e ChangeSize).

Exemplo de Código glMatrixMode( GL_MODELVIEW ); // Define a Matriz alvo glLoadIdentity(); // re-inicializa a matriz DesenhaObjeto(); // Desenha o objeto na posição // correspondente às suas coordenadas // originais                 glTranslatef(10,10,10); DesenhaObjeto(); // Desenha o objeto descolado de 10                  // unidades em cada eixo DesenhaObjeto(); // Desenha o objeto descolado de 20 // unidades em cada eixo // LEMBRE-SE, AS TRANSFORMAÇÕES SÃO // CUMULATIVAS

Transformações - Translação     Para efetuar uma translação há o comando: glTranslatef(tx, ty, tz) que move todas as coordenadas dos objetos ao longo dos eixos coordenados.

Transformações - Rotação    Para efetuar uma rotação há o comando: glRotatef(Angulo, x, y, z) que gira o objeto ao redor do vetor (x,y,z). O giro é de Angulo graus, no sentido anti-horário.

Transformações - Escala   Para efetuar uma escala há o comando: glScalef(ex, ey, ez) que altera a escala do objeto ao logo dos eixos coordenados.

Reinicializando as Tranformações    Para permitir que a transformação atual seja reinicializada há o comando: glLoadIdentity().

Limitando o escopo das Tranformações   Para permitir que uma transformação valha somente em um certo trecho de prograam e assim não altere o que está sendo desenhado depois, há os comados: glPushMatrix() e glPopMatrix(). A idéia é que o glPushMatriz armazene as transformações atuais em um pilha interna do OpenGL e que estas transformações possam ser retiradas depois por um glPopMatriz.

Exercício 1 Inserir os comandos: glLoadIdentity glPushMatrix glPopMatrix glRotatef glTransalef adequadamente no código fornecido, de maneira a obter um disco branco, girando como uma moeda sobre a mesa.

Cor – Conceitos Básicos

Cor – Comandos Básicos glClearColor(1.0f, 0.0f, 0.0f, 0.0f); define a cor ( Red, Green, Blue, Alpha ) utilizada ao se apagar a janela glClear(GL_COLOR_BUFFER_BIT); apaga a janela com a cor definida em glGlearColor glColor3f(1.0f, 0.0f, 0.0f); define a cor ( Red, Green, Blue ) com a qual os próximos objetos serão desenhados

Cada vértice tem cor própria ! glBegin( GL_TRIANGLES ); // red glColor3f(1.0f, 0.0f, 0.0f); glVertex3f(0.000f, 1.000f, -5.000f); // green glColor3f(0.0f,1.0f,0.0f); glVertex3f(-0.866f, -0.500f,-5.000f); // blue glColor3f(0.0f, 0.0f, 1.0f); glVertex3f(0.866f, -0.500f, -5.000f); glEnd();

Vsync? f H = 96kHz horizontal scanning frequency Vres = 768 pixel Hres = 1024 pixel Refresh rate = f H / Hres * 0.95 = 89 Hz  Vsync

Luz OpenGL considera que a luz é dividida em quatro componentes independentes: Ambiente: resultado da luz refletida no ambiente; é uma luz que vem de todas as direções; Difusa: luz que vem de uma direção, atinge a superfície e é refletida em todas as direções; assim, parece possuir o mesmo brilho independente de onde a câmera está posicionada; Especular: luz que vem de uma direção e tende a ser refletida numa única direção; Emissiva: simula a luz que se origina de um objeto; a cor emissiva de uma superfície adiciona intensidade ao objeto, mas não é afetada por qualquer fonte de luz; ela também não introduz luz adicional da cena.

Materiais A cor do material de um objeto depende da porcentagem de luz vermelha, verde e azul incidente que ele reflete. Para determiná-la deve-se multiplicar o coeficiente de reflexão (MR, MG, MB) do material pelos componentes (LR, LG, LB) de intensidade da luz incidente. luz que chega no observador é dada por: (LR.MR, LG.MG, LB.MB)

Efeito da luz sobre o objeto Abaixo o memo modelo com todos parâmetros de luz definidos

Parâmetros de luz glEnable(GL_LIGHTING); habilita a iluminação GL_COLOR_MATERIAL atribui a cor para o material a partir da cor corrente glShadeModel(GL_SMOOTH); estabelece o modelo de tonalização (GL_FLAT, GL_SMOOTH) glMaterialfv(GL_FRONT, GL_SPECULAR, especularidade); estabelece os parâmetros do material que serão usados pelo modelo de iluminação (GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_SHININESS, GL_AMBIENT_AND_DIFFUSE ou GL_COLOR_INDEXES)

Parâmetros de luz – cont. glLightModelfv(GL_LIGHT_MODEL_AMBIENT, luzAmbiente); estabelece os parâmetros do modelo de iluminação usado por OpenGL (GL_LIGHT_MODEL_AMBIENT, GL_LIGHT_MODEL_LOCAL_VIEWER ou GL_LIGHT_MODEL_TWO_SIDE;) glLightfv(GL_LIGHT0, GL_AMBIENT, luzAmbiente); estabelece os parâmetros da fonte de luz para uma das oito fontes de luz disponíveis de GL_LIGHT0 a GL_LIGHT7 (GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF. GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION);

Bibliografia / Referências Sites diversos: http://www.worldofescher.com ( World of Escher ) http://www.irtc.org ( Internet Raytracing Competition ) http://www.povaray.org ( Persistence of Vision Raytracer ) Páginas de Professores: http://www.inf.pucrs.br/~manssour/OpenGL/index.html http://www.inf.pucrs.br/~pinho/CG/Aulas/OpenGL/OpenGL.html http://www.cesec.ufpr.br/~mcunha/opengl/ http://astronomy.swin.edu.au/~pbourke/opengl/ Documentos e Livros: The OpenGL Graphic System: A Specification ( Version 1.4 ) The OpenGL Graphics System Utility Library ( Version 1.3 ) The OpenGL Utility Toolkit Programming Interface ( API Version 3 ) OpenGL Reference Manual 2nd. ed. ( Version 1.1 )