Claudio Esperança Paulo Roma Cavalcanti

Slides:



Advertisements
Apresentações semelhantes
SLIDE 1 – Transformações - Translação
Advertisements

Daniel de Vasconcelos Campos
Funções para serem usadas no exercício de Lab
Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro Conteúdo: - Transformações geométricas no plano.
Computação Gráfica I Conteúdo: Professor: - Projeções e câmera virtual
Colégio Ideal Aula de Física Leis de Reflexão da Luz e Espelhos Planos
The Cyclops Project German-Brazilian Cooperation Programme on IT CNPq GMD DLR Departamento de Informática e Estatística - INE/CTC/UFSC Computação Gráfica:
Computação Gráfica Geometria de Transformações
Perspetiva Isométrica
Informática Aplicada.
COMPUTAÇÃO GRÁFICA.
Introdução a OpenGL (parte final).
Introdução à Computação Gráfica Recorte
Introdução à Computação Gráfica Geometria
Mapeamento Window-Viewport
Transformações Geométricas em C.G.
Visualização e Projeções I
DIM102 1 Visualização e Projeções 35M34 – Sala 3E1 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227.
Navegador de cenas com openGL e rastreamento de raios
OpenGL Alberto B. Raposo.
Alberto B. Raposo e Marcelo Gattass
Funções para serem usadas no exercício de Lab nos dias (11/03/2010 e 17/03/10) Visualização 3D Incluir no FrameWork Básico (na página da disciplina), as.
Computação Gráfica Teórica
Callback de Teclado // registro void glutKeyboardFuc(Teclado);
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.
Técnicas para algoritmos de superfície visível eficientes (Techniques for efficient visible-surface algorithms) Fabio Utzig Rodrigo Senger.
Introdução + Transformações Geométricas
Chama-se espelho esférico o que tem a forma de uma calota esférica.
Computação Gráfica – Transformações Geométricas
RECONSTRUÇÃO 3D Equipe: Amora Cristina (acat) Anália Lima (alc5)
Introdução à Computação Gráfica Projeções
Transformações Geométricas
MÓDULO E PADRÃO Transformações Geométricas Isométricas
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};
SENSORIAMENTO REMOTO MOSAR FARIA BOTELHO.
Projeções Computação Gráfica.
Transformações Geométricas no Plano e no Espaço
TRANSFORMAÇÕES GEOMÉTRICAS
Computação Gráfica – Visibilidade
Definições e Transformações Projetivas
Visualização Tridimensional (Câmera Sintética)
Unidade 1: Reflexão, translação e rotação
COMPUTAÇÃO GRÁFICA E INTERFACES
Computação Gráfica – Transformações Projetivas
Desenhos Tridimensionais
Computação Gráfica – Transformações Geométricas
Realidade Virtual Aula 5
Visualização Tridimensional
Introdução à Computação Gráfica
Viewport.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Computação Gráfica – Transformações Geométricas Profa. Mercedes Gonzales Márquez.
Visualização Tridimensional. Quando se trabalha em três dimensões, o SRU (Sistema de Referência do Universo) passa a ser composto por três eixos ortogonais.
Figura 5 - O plano mostrando detalhes da projeção em perspectiva.
Disciplina : Ciência dos Materiais LOM 3013 – 2015M1
Nessa aula explicaremos como se pode localizar um ponto no espaço a partir de um de um sistema de referência. A posição é determinada por um conjunto.
Modelo e Câmera e Projeção no OpenGL
The Cyclops Project German-Brazilian Cooperation Programme on IT CNPq GMD DLR Departamento de Informática e Estatística - INE/CTC/UFSC Computação Gráfica:
Turma: 2ª Série do Ensino Médio Professor: Fábio Jaime Raimundo
Animação 2D. // Variáveis que guardam a translação que será aplicada // sobre a casinha GLfloat Tx; GLfloat Ty; // Variáveis que guardam os valores mínimos.
Transformações Geométricas
CIÊNCIA E ENG MATERIAIS
1. A 60 cm de uma lente convergente de 5 di, coloca-se, perpendicularmente ao seu eixo principal, um objeto de 15 cm de altura. A altura da imagem desse.
Introdução à Computação Gráfica Rasterização
GEOMETRIA ANALITICA VETORES.
Professor Marcos Eric Barbosa Brito
1 Computação Gráfica Prof. Dr. Júlio C. Klafke UNIP-Objetivo
Computação Gráfica – Transformações Projetivas
Transcrição da apresentação:

Claudio Esperança Paulo Roma Cavalcanti Visualização Claudio Esperança Paulo Roma Cavalcanti

Câmera Virtual O processo de visualização do OpenGL define uma câmara virtual. Objetos da cena são projetados sobre o plano de projeção (filme virtual) e exibidos na tela. Existem vários sistemas de coordenadas envolvidos, de forma a reduzir o problema a uma configuração canônica.

Projeções Planares O problema consiste em projetar pontos do espaço d dimensional em um espaço de dimensão d-1 (plano de projeção). emprega um ponto especial chamado de centro de projeção. Centro de Projeção

Transformações Projetivas Transformações projetivas levam retas em retas, mas não preservam combinações afim. P Q é o ponto médio de PR, mas Q’ não é o ponto médio de P’R’ P’ Q Q’ R R’ Centro de Projeção

Geometria Projetiva Geometria Euclideana: duas retas paralelas não se encontram. Geometria Projetiva: não existe paralelismo. Retas paralelas se encontram num ponto ideal (no infinito) Para não haver mais de um ponto ideal para cada inclinação de reta, assume-se que o plano projetivo se fecha sob si mesmo Em 2D, o plano projetivo tem uma borda, que é uma reta no infinito (constituída de pontos ideais) Transformações projetivas podem levar pontos ideais em pontos do plano euclidiano e vice-versa Problema: O plano projetivo é uma variedade não orientável

Geometria Projetiva

Coordenadas Homogêneas em Espaço Projetivo Não há distinção entre pontos e vetores. Em 2D, um ponto (x,y) é representado em c.h. pelo vetor coluna [x· w y· w w]T, para w0 Assim, o ponto (4,3) pode ser representado por [8 6 2]T, [12 9 3]T, [-4 -3 -1]T, etc A representação canônica do ponto com coordenadas homogêneas [x y w]T, é: [x/w y/w 1]T. Chamamos esta operação de divisão perspectiva.

Exemplo Os pontos sobre a reta x=y: (1,1), (2,2), (3,3), ... Podem ser representados em c.h. por: [1 1 1]T, [1 1 ½]T, etc O ponto ideal dessa reta é dado por [1 1 0]T

Transformações Projetivas Plano de projeção P=(Px ,Py ,Pz ) A projeção de um ponto P é dada por: Plano de projeção é: perpendicular ao eixo z está a uma distância d do C.P. (0,0,0) intercepta o semi eixo z negativo y P’=(P’x ,P’y ,P’z ) z ((0,0,0) d Por semelhança de triângulos, vemos que Px/-Pz = P’x/d

Transformação Perspectiva em Coordenadas Homogêneas Não existe matriz 3x3 capaz de realizar tal transformação em espaços Euclideanos. Porém, no espaço projetivo:

Perspectiva - Sumário Para fazer projeção perspectiva de um ponto P, seguem-se os seguintes passos: P é levado do espaço Euclideano para o projetivo. Trivial – mesmas coordenadas homogêneas. P é multiplicado pela matriz de transformação perspectiva resultando em P’ P’ é levado novamente ao espaço Euclideano Divisão perspectiva (não linear!!).

Projeção Genérica E se for usado um sistema de coordenadas arbitrário? Centro de Projeção fora da origem ou Cena não está posicionada no semi-eixo z negativo. Muda-se o sistema de coordenadas. transformações afim posicionam todos os elementos corretamente. As maneiras pelas quais essas transformações são executadas caracterizam um dado modelo de projeção.

Espaços de Referência Espaço do objeto. Espaço da cena. Espaço da câmera. Espaço normalizado. Espaço de Ordenação. Espaço da imagem.

Modelo de Câmera Sintética OpenGL utiliza uma analogia comparando visualização 3D com tirar fotografias com uma câmera Volume de visão câmera modelo tripé

Transformações em OpenGL Modelagem Mover /deformar os objetos Visualização Mover e orientar a câmera Projeção Ajustar a lente / objetiva da câmera “Viewport” Aumentar ou reduzir a fotografia

Sistema de Coordenadas da Câmera

Pipeline de Transformações do OpenGL Matriz de Modelagem e Visualização Matriz de Projeção Divisão Perspectiva Transformação “viewport” v e r t i c normalizadas de dispositivo recorte janela objeto olho C o o r d e n a d a s

Estado Inicial do Pipeline As matrizes “modelview” e “projection” são matrizes identidade: vértices não são transformados projeção é paralela sobre o plano x-y o mundo visível é restrito ao cubo -1 ≤ x,y,z ≤ 1 A transformação “viewport” mapeia o quadrado -1 ≤ x,y ≤ 1 (em coordenadas normalizadas de dispositivo) na superfície total da janela

Especificando a Viewport Para especificar a área da janela na qual será mapeado o quadrado do plano de projeção: glViewport (x0, y0, largura, altura) parâmetros em pixels (0,0) refere-se ao canto inferior esquerdo da janela Normalmente, não é necessário modificar, mas é útil para: manter a razão de aspecto da imagem fazer zooming e panning sobre a imagem

Especificando Transformações As matrizes modelview e projection se situam no topo de duas pilhas que são usadas para fazer operações com matrizes. Para selecionar a pilha: glMatrixMode(GL_MODELVIEW ou GL_PROJECTION)‏ Existe uma série de funções que operam com a pilha corrente, incluindo glLoadIdentity () glMultMatrix () glLoadMatrix () glPushMatrix () glPopMatrix ()

Transformando Objetos Para para multiplicar o topo da pilha de matrizes por transformações especificadas por parâmetros: glTranslatef ( x, y, z ) glRotatef (ângulo, x, y, z) glScale ( x, y, z ) Cuidado: ordem é importante: glTranslatef (10, 5, 3); glRotatef (10, 0, 0, 1); glBegin (GL_TRIANGLES); … Objeto é rodado e depois transladado!

Transformações de Visualização Duas interpretações: Levam a câmera até a cena que se quer visualizar Levam os objetos da cena até uma câmera estacionária gluLookAt( eyex, eyey, eyez, aimx, aimy, aimz, upx, upy, upz); eye = posição da câmera aim = ponto que define a direção de visão up = direção “vertical” da câmera Cuidado com casos degenerados up y aim eye x z

Projeção Paralela Default em OpenGL Para ajustar o volume visível, a matriz de projeção é iniciada com glOrtho (left, right, bottom, top, near, far); Obs.: near e far são valores positivos tipicamente

Projeção em Perspectiva Volume de visão especificado com glFrustum(left,right,bottom,top,near,far); Não necessariamente gera um v.v. simétrico.

Projeção Perspectiva Alternativamente, pode-se usar a rotina gluPerspective (fovy, aspect, near, far); Gera um volume de visão simétrico (direção de visão perpendicular ao plano de projeção).

Receita Para Evitar ‘telas pretas’ Especificar Matriz de projeção com gluPerspective() Tentar levar em conta a razão de aspecto da janela (parâmetro aspect) Sempre usar glLoadIdentity() antes Não colocar nada depois Especificar Matriz de visualização com gluLookAt Sempre usar glLoadIdentity () antes Outras transformações usadas para mover / instanciar os objetos aparecem depois

Exemplo void resize( int w, int h ) { glViewport( 0, 0, (GLsizei) w, (GLsizei) h ); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); gluPerspective( 65.0, (GLdouble) w / h, 1.0, 100.0 ); glMatrixMode( GL_MODELVIEW ); gluLookAt( 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 ); }