Universidade Federal do Ma Introduo Computao Grfica Prof

  • Slides: 37
Download presentation
Universidade Federal do Ma Introdução à Computação Gráfica Prof. Anselmo C. de Paiva Depto

Universidade Federal do Ma Introdução à Computação Gráfica Prof. Anselmo C. de Paiva Depto de Informática Fluxo de Visualização Prof. Anselmo C. de Paiva DEINF-UFMA

Roteiro 1. Fluxo de Visualização 2 D 2. Fluxo de Visualização 3 D Prof.

Roteiro 1. Fluxo de Visualização 2 D 2. Fluxo de Visualização 3 D Prof. Anselmo C. de Paiva - DEINF-UFMA 2

Estrutura de uma Aplicação Gráfica Prof. Anselmo C. de Paiva - DEINF-UFMA 3

Estrutura de uma Aplicação Gráfica Prof. Anselmo C. de Paiva - DEINF-UFMA 3

Fluxo de Visualização 2 D Local C. Cada componente do modelo é descrito em

Fluxo de Visualização 2 D Local C. Cada componente do modelo é descrito em seu Sistema local Prof. Anselmo C. de Paiva - DEINF-UFMA 4

Fluxo de Visualização 2 D Local C. -> World C. O WC descreve a

Fluxo de Visualização 2 D Local C. -> World C. O WC descreve a orientação e posição relativa de cada componente do Modelo Prof. Anselmo C. de Paiva - DEINF-UFMA 5

Fluxo de Visualização 2 D Local C. -> World C. Uma window no Wc

Fluxo de Visualização 2 D Local C. -> World C. Uma window no Wc descreve uma região regular que será mapeada no dispositivo Prof. Anselmo C. de Paiva - DEINF-UFMA 6

Fluxo de Visualização 2 D Local C. -> World C. -> Viewing C. Coord.

Fluxo de Visualização 2 D Local C. -> World C. -> Viewing C. Coord. de visualização descrevem a posição e orientação de cada objeto com respeito a uma dada window. Objetos fora da window são recortados Prof. Anselmo C. de Paiva - DEINF-UFMA 7

Fluxo de Visualização 2 D Local C. -> World C. -> Viewing C. ->

Fluxo de Visualização 2 D Local C. -> World C. -> Viewing C. -> NDC O NDC descreve um dispositivo virtual para facilitar compatibilidade com os vários dispositivos físicos. Prof. Anselmo C. de Paiva - DEINF-UFMA 8

Fluxo de Visualização 2 D Local C. -> World C. -> Viewing C. ->

Fluxo de Visualização 2 D Local C. -> World C. -> Viewing C. -> NDC A região retângular do NDC na qual a window é mapeada, recebe o nome de viewport. Prof. Anselmo C. de Paiva - DEINF-UFMA 9

Fluxo de Visualização 2 D Local C. -> World C. -> Viewing C. ->

Fluxo de Visualização 2 D Local C. -> World C. -> Viewing C. -> NDC As coordenadas do dispositivo refletem a proporção e resolução do dispositivo gráfico onde a imagem será exibida Prof. Anselmo C. de Paiva - DEINF-UFMA 10

Fluxo de Visualização 2 D - Resumo Prof. Anselmo C. de Paiva - DEINF-UFMA

Fluxo de Visualização 2 D - Resumo Prof. Anselmo C. de Paiva - DEINF-UFMA 11

Visualização em 3 D • Processo similar a Visualização em 2 D • Tarefas

Visualização em 3 D • Processo similar a Visualização em 2 D • Tarefas adicionais: – Projeção § Mapear a cena 3 D em uma superfície plana – Identificação de partes visíveis – Geração de efeitos de luz e de propriedades das superfícies da cena Prof. Anselmo C. de Paiva - DEINF-UFMA 12

Visualização 3 D • Processo análogo à fotografia – Escolhe posição do observador, onde

Visualização 3 D • Processo análogo à fotografia – Escolhe posição do observador, onde ficará a câmera – Escolhe a direção para onde a câemra estará voltada – Posição a parte de cima da câmera para definir a inclinação em que será feita a foto – Quando tiramos a foto § A cena é capturada de acordo com a janela definida na câmera (abertura da câmera) Prof. Anselmo C. de Paiva - DEINF-UFMA 13

Visualização 3 D Fotografar uma cena envolve seleção da posição e orientação da câmera

Visualização 3 D Fotografar uma cena envolve seleção da posição e orientação da câmera Prof. Anselmo C. de Paiva - DEINF-UFMA 14

Analogia da Câmera Viewing: Posiciona câmera volume de visão Modeling: Posiciona modelo Projection: Escolhe

Analogia da Câmera Viewing: Posiciona câmera volume de visão Modeling: Posiciona modelo Projection: Escolhe a as lentes forma do VV Viewport: Escolhe a tamanho parte da da foto tela Prof. Anselmo C. de Paiva - DEINF-UFMA 15

Modelo de câmera Iluminação Câmara Objetos y x z

Modelo de câmera Iluminação Câmara Objetos y x z

Fluxo de Visualização em 3 D Prof. Anselmo C. de Paiva - DEINF-UFMA 17

Fluxo de Visualização em 3 D Prof. Anselmo C. de Paiva - DEINF-UFMA 17

Fluxo de Visualização em 3 D Prof. Anselmo C. de Paiva - DEINF-UFMA 18

Fluxo de Visualização em 3 D Prof. Anselmo C. de Paiva - DEINF-UFMA 18

Parâmetros de Visualização • Parâmetros que definem a posição e orientação da câmera, assim

Parâmetros de Visualização • Parâmetros que definem a posição e orientação da câmera, assim como as demais características da visualização posição do observador: P 0 VUP: define yview Zview: posição do plano de projeção Prof. Anselmo C. de Paiva - DEINF-UFMA 19

De WC para Coordenadas projetadas: 1. Define uma janela 3 -D, ou volume de

De WC para Coordenadas projetadas: 1. Define uma janela 3 -D, ou volume de visão. 2. Transforma para as coordenadas de visualização. 3. Recorta objetos gráficos fora do volume de visão. 4. Aplica uma transformação de projeção para obter as coordenadas projetadas. Prof. Anselmo C. de Paiva - DEINF-UFMA 20

Projeções • Reduz a dimensão de um espaço (e. g. 3 para 2). •

Projeções • Reduz a dimensão de um espaço (e. g. 3 para 2). • Várias projeções foram definidas. • Tratamos somente de projeções geométricas planas (realizadas em um plano usando linhas retas como projetores). • Outros tipos: – projeção em superfícies não planas (e. g. a esfera). – Usa outro tipo de curva como projetores (e. g. algumas projeções de mapa) Prof. Anselmo C. de Paiva - DEINF-UFMA 21

Projeções Geométricas Planas • Mapeamento do espaço 3 D em um plano. • Composta

Projeções Geométricas Planas • Mapeamento do espaço 3 D em um plano. • Composta de dois componentes: – Plano de projeção. – Conjunto de raios denominados projetores. • Mapea todos os pontos em cada raio no ponto em que ocorre a interseção do raio com o plano de projeção. • Duas classes básicas: – Perspectiva: § projetores todos passam por um ponto. – Paralela: § projetores são linhas paralelas Prof. Anselmo C. de Paiva - DEINF-UFMA 22

Projeção Perspectiva • Determinada pelo centro de projeção - o ponto por onde passam

Projeção Perspectiva • Determinada pelo centro de projeção - o ponto por onde passam todos os projetores. • Similar a câmeras e sistema visual humano. • Parece imagem mais realista. L Não preserva escala L Não preserva ângulos Prof. Anselmo C. de Paiva - DEINF-UFMA 23

Projeção Perspectiva • Não permite medidas diretas • Objeto parecem menores quando mais longes.

Projeção Perspectiva • Não permite medidas diretas • Objeto parecem menores quando mais longes. • Retas paralelas se encontram em um ponto (ponto de fuga) • Perspectivas com 1, 2, ou 3 pontos de fuga, dependendo de quantos eixos tem interseção com o plano de projeção. Prof. Anselmo C. de Paiva - DEINF-UFMA 24

Projeção Paralela • Determinada pela direção de projeção. • Não é tão realista qto

Projeção Paralela • Determinada pela direção de projeção. • Não é tão realista qto a perspectiva, mas permite realização de certas medidas • Duas grandes classes: – ortográficas § plantas § elevações § iso-métrica – oblíquas § cavaleiras § cabinet Prof. Anselmo C. de Paiva - DEINF-UFMA dp // n dp não é paralela a n 25

Projeções Paralelas Ortográfica Prof. Anselmo C. de Paiva - DEINF-UFMA Oblíqua 26

Projeções Paralelas Ortográfica Prof. Anselmo C. de Paiva - DEINF-UFMA Oblíqua 26

Projeções de um cubo • Paralelas 1/2 1 1 1 a a planta ou

Projeções de um cubo • Paralelas 1/2 1 1 1 a a planta ou elevação iso-métrica Cabinete (a=45 ou 90) • Cônicas 1 pto de fuga 2 ptos de fuga Cavaleira (a=45 ou 90)

Hierarquia das Projeções Geométricas Planas Prof. Anselmo C. de Paiva - DEINF-UFMA 28

Hierarquia das Projeções Geométricas Planas Prof. Anselmo C. de Paiva - DEINF-UFMA 28

Visualização 3 D e Open. GL • Definir parâmetros de visualização – Opengl computa

Visualização 3 D e Open. GL • Definir parâmetros de visualização – Opengl computa uma matriz e concatena com a matriz MODELVIEW – MODELVIEW § transforma objetos do WC pro VC § É combinada com as transf. Geométricas – gl. Matrix. Mode(GL_MODELVIEW) Prof. Anselmo C. de Paiva - DEINF-UFMA 29

Visualização 3 D e Open. GL • Funções GLU - Projeção Perspectiva glu. Look.

Visualização 3 D e Open. GL • Funções GLU - Projeção Perspectiva glu. Look. At (x 0, y 0, z 0, xref, yref, zref, Vx, Vy, Vz) – P 0 -> origem do sistema de visualização – Pref -> posição de referência – V -> vetor pra cima (view up) – N = Po –Pref Prof. Anselmo C. de Paiva - DEINF-UFMA 30

Glu. Look. At Prof. Anselmo C. de Paiva - DEINF-UFMA 31

Glu. Look. At Prof. Anselmo C. de Paiva - DEINF-UFMA 31

Visualização 3 D e Open. GL • Funções GLU - Projeção Perspectiva glu. Perspective(GLdouble

Visualização 3 D e Open. GL • Funções GLU - Projeção Perspectiva glu. Perspective(GLdouble fovy, GLdouble aspect, GLdouble near, GLdouble far); – Fovy – ângulo do campo de visão – Aspect – razão de aspecto do frustum – Near e far ->distância dos planos da frente e de trás a posição do observado Prof. Anselmo C. de Paiva - DEINF-UFMA 32

Glu. Perspective Prof. Anselmo C. de Paiva - DEINF-UFMA 33

Glu. Perspective Prof. Anselmo C. de Paiva - DEINF-UFMA 33

Visualização 3 D e Open. GL • Funções GLU - Projeção Perspectiva gl. Frustum(GLdouble

Visualização 3 D e Open. GL • Funções GLU - Projeção Perspectiva gl. Frustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top GLdouble near, GLdouble far); – Define as posições dos planos de clip § Left ->à esquerda § Right -> à direita § Bottom -> de baixo § Top -> de cima § Near -> da frente § Far -> de trás Prof. Anselmo C. de Paiva - DEINF-UFMA 34

gl. Frustum Prof. Anselmo C. de Paiva - DEINF-UFMA 35

gl. Frustum Prof. Anselmo C. de Paiva - DEINF-UFMA 35

Trabalho de Implementação • Implementar um Sistema Visualizador de objetos representados por malhas de

Trabalho de Implementação • Implementar um Sistema Visualizador de objetos representados por malhas de polígonos (triângulos). • Funcionalidades obrigatórias: – ler arquivo descrevendo objetos e permitir a aplicação usando o mouse de transformações de translação e rotação da câmera; – possibilidade de visualização do objeto em modelo aramado e por faces; – Interação via teclado: § setas indicam rotação da câmera; § Tecla A muda o objeto para modelo aramado; § Tecla F muda objeto para modelo por faces; • Escrito em C++ usando Open. GL e Fox. Prof. Anselmo C. de Paiva - DEINF-UFMA 36

Formato dos Arquivos • Arquivos obj – formato desenvolvido pela Wavefront (www. aw. sgi.

Formato dos Arquivos • Arquivos obj – formato desenvolvido pela Wavefront (www. aw. sgi. com) – Apresenta inicialmente uma lista de vértices seguida de uma lista de faces que apontam para os vértices que a compõe. • Página com outros objetos: http: //inf. unisinos. br/~marcelow/ ensino/grad/cg/listaobj. html Prof. Anselmo C. de Paiva - DEINF-UFMA v -0. 5 # Lista de vertices v -0. 5 v 0. 5 -0. 5 v 0. 5 v -0. 5 v 0. 5 -0. 5 f 1 2 3 # Lista de faces f 876 f 437 f 514 f 562 f 267 f 134 f 865 f 478 f 548 f 521 f 273 37