Projeções e Transformações em 3D

Documentos relacionados
Transformações Geométricas

Sist. Coordenadas Câmera (SCC)

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 6. Projeções

Sumário. Introdução Câmera sintética Window-to-Viewport Exercício. 29-May-13 Leandro Tonietto!2

Visualização 3D. Soraia Raupp Musse

Visualização. - Aula 4 -

Transformações 3D. Soraia Raupp Musse

Computação Gráfica - OpenGl 02

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Visualização 3D

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

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Visualização 3D

Disciplina: Computação Gráfica Prof. Dr. Paulo R. G. Luzzardi. Universidade Católica de Pelotas Centro Politécnico Ciência da Computação

3D no OpenGL. Visualização e Transformações Perspectiva. Transformações do Modelview. Processo

Algoritmos de Recorte em 2D

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda/Taguspark. 1º Exame 29 Junho de 2010

Computação Gráfica Transformações Projetivas

Câmara Virtual Simples

Computação Gráfica OpenGL 05 3D

Transformações Geométricas

Matriz de transformação

2º Exame. Computação Gráfica

Computação Gráfica Viewing

Câmara Virtual. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 5 Apontamentos CG

Introdução a OpenGL. Renato Rodrigues Oliveira da Silva Danilo Medeiros Eler

7. Projeções Geométricas e Visualização 3D

Transformações geométricas

Viewing Pipeline 2D. Viewing Pipeline 2D/3D. Viewing Pipeline 2D. Viewing (onde estamos no pipeline) Maria Cristina F. de Oliveira Rosane Minghim 2010

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

Transformações Geométricas

aula6 Projeções Planas 2017/2 IC / UFF

Transformações Geométricas e Animação

USP Universidade de São Paulo

Projeções e Visualização

Transformações Geométricas. Transformações Geométricas. Sistemas de Coordenadas. Translação: M.C.F. de Oliveira Rosane Minghim 2006

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

CG 2015/2016 Primeiro Teste LEIC Alameda/Taguspark. Primeiro Teste

modelos rquicos Aula 5 Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto Paulo Gandra de Sousa

Transformações de Pontos. Computação Gráfica Prof. Dr. Paulo Roberto Gomes Luzzardi Aluna: Karina da Silva Salles

Representação de Objetos e Cenas. Soraia Musse

Prova Fundamentos Computação Gráfica

1º Exame. Computação Gráfica

1º Exame. Computação Gráfica

Transformações 3D. Soraia Raupp Musse

Transformações Geométricas

CG 2013/2014 Primeiro Teste LEIC Alameda/Taguspark

Computação Gráfica Módulo III Geometria

APOSTILA 3D (notas de aula)

Coordenadas Homogêneas no Plano e no Espaço

Transformações Geométricas Grafos de Cena

Transformações 3D. Soraia Raupp Musse

Pipeline de Visualização 3D

Transformações Geométricas

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

Computação Gráfica II

aula6 2018/2 IC / UFF Como representar objetos 3D em dispositivos 2D?

Projeto e computação gráfica I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Computação Gráfica - 09

Computação Gráfica - 09

aula9 Coordenadas homogêneas e projeções 2016/2 IC / UFF

Sistemas de coordenadas

Projeções: conceitos. Projetar pontos no espaço d dimensional no plano d-1 dimensional, usando um ponto especial chamado centro de projeção

Modelos Geométricos Transformações

Aula9 e 10. Projeções Planas. Como representar objetos 3D em dispositivos 2D? 2019/1 IC / UFF. Paginas 91 a 101 livro texto de computacao grafica

Computação Gráfica e Áreas Correlatas

Sistema de coordenadas

Revisão. Soraia Raupp Musse

Transformações Geométricas para Visualização 3D

Transformações Geométricas em C.G.

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Pipeline de Visualização Câmara Virtual

Transformações Geométricas 2D e 3D

Introdução ao Processamento e Síntese de imagens - Projeções

Computação Gráfica. Agostinho Brito. Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte

4. Curvas Paramétricas e Transformações 2D

Sumário. Computação Gráfica. Transformações Geométricas. Transformações Geométricas. Translação: Transformações Geométricas

Processamento de Imagens CPS755

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Translação. Sistemas de Coordenadas. Translação. Transformações Geométricas 3D

Primeira Prova 25 de abril de DURAÇÃO DA PROVA: 90m

Transformações 3D. Soraia Raupp Musse

DESENVOLVIMENTO DE UM SOFTWARE DE GERAÇÃO E VISUALIZAÇÃO DE NANOESTRUTURAS

aula 10 Projeções Planas IC/UFF tela de um museu de Montreal

Projeções. Cap 2 (do livro texto) Aula 6 UFF

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos

Visualização e Projeções

Computação Gráfica. Representação e Modelagem

Computação Gráfica e Áreas Correlatas

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

Computaçã. Visão Geral. Sistema Gráfico. Computação Gráfica. Pixels. Sistema Gráfico e o Frame Buffer. Introdução à Computação Gráfica

Pipeline de Visualização Câmara Virtual

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Transformações 2D

Transformações 2D. Prof. Márcio Bueno Fonte: Material do Prof. Robson Pequeno de Sousa e do Prof.

Introdução à Computação Gráfica

Viewing Pipeline 3D. Viewing. Viewing Pipeline (OpenGL) Viewing (onde estamos no pipeline) Pipeline. Maria Cristina F. de Oliveira Rosane Minghim 2010

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos

Visão Computacional CPS754

Desenvolvimento de um Motor Gráfico de Apoio a Ambientes Lúdicos Educacionais

Segunda Prova 20 de junho de DURAÇÃO DA PROVA: 90m

10 Visualização em 3D - Projeções

Desenho técnico I. Faculdade Educacional de Medianeira. Curso: Agronomia. Disciplina: Desenho técnico. Aula 02 - Normatização

Transcrição:

Projeções e Transformações em 3D Computação Gráfica DCC065 Prof. Rodrigo Luis de Souza da Silva, D.Sc.

Sumário O que são projeções Conversão 3D-2D Tipos de Projeção Projeções Paralelas Projeções Isométricas Projeções Perspectivas Transformações em 3D Como transformações funcionam em 3D? Coordenadas homogêneas 3D e transformações baseadas em matrizes Câmera Virtual Projeções no OpenGL 2

Sistema de coordenadas 3D Imagens de Hearn & Baker, Computer Graphics with OpenGL (2004) Lembre-se do que significa trabalharmos em um sistema de coordenadas 3D y y P z x z x Sistema baseado na regra da mão direita 3

O que são projeções? Nossas cenas 3D são integralmente especificadas em coordenadas 3D de mundo Para representarmos essas cenas precisamos gerar uma imagem 2D onde estes objetos serão projetados Plano de Projeção Objetos no mundo Observador Mas como esses objetos podem ser projetados? 4

Conversão 3D 2D A projeção é apenas uma das partes do processo de convertermos objetos em coordenada de mundo para imagens em coordenadas de tela Primitivas 3D em coordenadas de mundo Recorte contra volume de visualização Projeção no plano de projeção Conversão em coordenadas 2D Coordenadas 2D do dispositivo de saída 5

Tipos de Projeção Há duas classes de projeção: Paralela: Tipicamente usada em desenhos na engenharia e arquitetura Perspectiva: Aparência realista, usada em Computação Gráfica Projeção Paralela Projeção Perspectiva 6

Tipos de Projeção Dentro dessas duas classes há várias subclasses. 7

Projeções paralelas Alguns exemplos de projeção paralela Projeções ortogonais Projeção Isométrica 8

Projeções ortogonais Vários softwares profissionais de modelagem usam projeções ortogonais geralmente associadas a uma viewport em perspectiva 3D Studio Max 9

Projeções Isométricas Este tipo de projeção foi ( e ainda é ) bastante usada em jogos de computador Q*Bert Sim City Virtual Magic Kingdom 10

Projeções Perspectivas Projeções perspectivas são muito mais realistas que projeções paralelas 11

Projeções Perspectivas Imagens de Hearn & Baker, Computer Graphics with OpenGL (2004) Há vários tipos de projeções perspectivas Os dois tipos mais comuns são projeções perspectivas com um ou dois pontos de fuga Ponto de fuga Ponto de fuga no eixo z Ponto de fuga no eixo x Um ponto de fuga Dois pontos de fuga 12

Imagens de Hearn & Baker, Computer Graphics with OpenGL (2004) Projeções Perspectivas Lembrando do objetivo principal de trabalharmos com projeção perspectiva 13

Imagens de Hearn & Baker, Computer Graphics with OpenGL (2004) Estabelecendo uma Projeção Perspectiva A projeção perspectiva pode ser estabelecida através da especificação da posição e tamanho do plano de visão e a posição do ponto de referência Mas como fazer isso? 14

Estabelecendo uma Projeção Perspectiva Imagens de Hearn & Baker, Computer Graphics with OpenGL (2004) Estabelecer o ângulo do campo de visão pode ser mais intuitivo para especificar uma projeção perspectiva Esta operação é análoga a especificar a lente de uma câmera Field of view 15

Estabelecendo uma Projeção Perspectiva Aumentar o ângulo do campo de visão aumenta também a altura do plano de projeção. 16

Estabelecendo uma Projeção Perspectiva A mudança de ângulo pode modificar consideravelmente a forma como os objetos serão apresentados 17

Estabelecendo uma Projeção Perspectiva Usar apenas o ângulo de visão para especificar uma projeção perspectiva é insuficiente Adicionaremos a essa especificação a razão de aspecto, que nos dá a relação entre a largura e a altura do plano de corte frontal 18

Projeções - Resumo Projeção Perspectiva Vantagem Aparência realista da projeção. Desvantagem Não preserva distâncias. 19

Projeções - Resumo Projeção Ortogonal Vantagem A projeção pode preservar ângulos e distâncias. Essa característica só se mostra válida para as partes do objeto (faces) paralelas ao plano de projeção. Desvantagem As projeções dos objetos não sofrem alterações quando se movem segundo a direção de observação. Ou seja, dois objetos de mesma dimensão, porém a distâncias diferentes do plano de projeção (segundo a direção de projeção) terão projeções idênticas. 20

Transformações geométricas em 3D Vimos em aulas anteriores como computar as transformações geométricas em 2D As transformações em 3D seguem o mesmo princípio como veremos a seguir 21

Translações em 3D Imagens de Hearn & Baker, Computer Graphics with OpenGL (2004) Para transladar um ponto em três dimensões por dx, dy e dz, simplesmente calcule a nova posição da seguinte forma: x = x + dx y = y + dy z = z + dz (x, y, z) (x, y, z ) Posição original Posição transladada 22

Escala em 3D Escala em três dimensões também é trivial, bastando multiplicar cada ponto pelos fatores sx, sy e sz da seguinte forma: x = sx*x (x, y, z) Posição original y = sy*y z = sz*z (x, y, z ) Posição Scaled Position transladada 23

Rotações em 3D Quando realizamos rotação em duas dimensões, temos a opção de rotacionar somente em relação ao eixo z Em três dimensões nós temos três opções Rotação em x pitch Rotação em y yaw Rotação em z - roll 24

Rotações em 3D Imagens de Hearn & Baker, Computer Graphics with OpenGL (2004) As equações para as rotações em 3D são as seguintes: x = x cosθ - y sinθ y = x sinθ + y cosθ z = z x = x y = y cosθ - z sinθ z = y sinθ + z cosθ x = z sinθ + x cosθ y = y z = z cosθ - x sinθ 25

Coordenadas Homogêneas em 3D De forma análoga ao que fizemos em 2D, nós podemos usar coordenadas homogêneas para realizar as transformações geométricas y em 3D Todas as transformações y podem ser representadas por matrizes P z P(x, y, z) = x z x 26

Matrizes de transformação em 3D Translação Escala

Matrizes de transformação em 3D Rotação em relação ao eixo X Rotação em relação ao eixo Y Rotação em relação ao eixo Z

Visualiazação em 3D Imagens de Hearn & Baker, Computer Graphics with OpenGL (2004) Muitos sistemas 3D trabalham com a ideia de uma câmera virtual 29

Imagens de "OpenGL Programming Guide Seventh Edition" (2009) Analogia Com a câmera real No computador 30

Câmera Virtual O OpenGL fornece recursos para facilitar as transformações de visualização através da definição de uma câmera virtual Essa câmera é definida no mundo através do comando glulookat Este comando especifica a posição da câmera (olho) para onde ela está apontada (foco) e um vetor de orientação (up) que especifica a rotação da câmera em relação ao eixo formado entre o olho e o foco. 31

Câmera Virtual (upx, upy, upz) (olhox, olhoy, olhoz) (focox, focoy, focoz) glulookat(olhox, olhoy, olhoz, focox, focoy, focoz, upx, upy, upz, ) 32

Projeções em OpenGL Vale lembrar que todos os comandos de projeção devem ser aplicados às matrizes corretas. Portanto, antes de utilizá-los, faça uso dos seguintes comandos: glmatrixmode(gl_projection); glloadidentity(); Desta forma, os comandos afetarão apenas a matriz de projeção. 33

Projeções em OpenGL O OpenGL nos fornece comandos para especificar projeções perspectivas e ortogonais. Os comandos disponíveis são os seguintes: glortho glfrustum gluperspective 34

Imagens de "OpenGL Programming Guide Seventh Edition" (2009) Projeção ortogonal em OpenGL void glortho(gldouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far); 35

Imagens de "OpenGL Programming Guide Seventh Edition" (2009) Projeção perspectiva em OpenGL void glfrustum(gldouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far); 36

Imagens de "OpenGL Programming Guide Seventh Edition" (2009) Projeção perspectiva em OpenGL void gluperspective(gldouble fovy, GLdouble aspect, GLdouble near, GLdouble far); 37

Saiba mais! Computer Graphics, C Version Capítulo 9, 11 e 12 Contém um explicação sucinta sobres os modos de projeção no capítulo 9 e uma descrição mais completa no capítulo 12 (seção 12-3). O capítulo 11 trata das transformações 3D numa abordagem mais teórica, incluindo representação de rotações por quaternions e outras transformações geométricas. 38

Saiba mais! Computação Gráfica - Teoria e Prática. Capítulo 2 e 3 Páginas 52 a 59 No capítulo 2 há um breve texto explicando o funcionamento dos tipos de projeção vistos nesta aula. 39

Saiba mais! OpenGL Programming Guide Seventh Edition Capítulo 3 Detalhamento das funções que gerenciam as projeções em OpenGL Na página 148 deste livro há detalhes a respeito da utilização do comando glulookat. As transformações em 3D também são exploradas neste capítulo. 40

Prática Execute o projeto Projection do tutorial do Nate Robins e analise o comportamento dos comandos gluperspective, glortho e glfrustum. 41

Prática - Projeções Baixe o código 10_projection.cpp. Neste código, com o botão esquerdo do mouse você moverá a câmera em torno dos objetos. Com o botão direito do mouse, você alternará entre a projeção perspectiva e a projeção ortogonal. 42

Prática Rotação da câmera Baixe o código camerarotation.cpp. Este exemplo demonstra como fazer a rotação da câmera ao redor de um conjunto de objetos estáticos. As operações de pitch e yaw são computadas e realizadas diretamente sobre o comando glulookat 43

Exercícios 1 Baixe o código 09_3D_View.cpp O exercício consiste na criação de um grid 2D 5 x 5 e de um cubo de lado 1 que será movimentado sobre esse grid através de translações. Crie o grid interativamente (utilize estruturas de repetição). Utilize as setas direcionais do teclado para mover o cubo sobre as unidades do grid. O programa a ser executado ficará parecido com a ilustração abaixo: 44

Exercícios 2 Altere o exercício anterior para que a movimentação do objeto seja suave ao passar de uma unidade para outra do grid. Dica, utilize a função idle. ( exemplo de uso no código 05_triangle_anim.cpp) 45