Baixe o app para aproveitar ainda mais
Prévia do material em texto
Pipeline Visualização Tridimensional Computação Gráfica Adailton José Alves da Cruz FACET/UFGD Sistema de Referência do Universo 3D y xz Três eixos ortogonais Origem (0,0,0) z - regra mão direita Problema: Como a Cena 3D será visualizada e projetada em uma imagem 2D? Processo de vizualização 1 - Definição da cena 2 - Especificação do observador virtual Posição e orientação Câmera Sintética Posição da câmera (x,y,z) do SRU Orientação ponto alvo + vetor up up alvo Projeção Representações bidimensionais de objetos tridimensionais Camera x y z Plano projetante projetante Projeção perspectiva Centro de projeção está a uma distância finita do plano de projeção Camera x y z Projeção paralela Centro de projeção está no infinito Camera x y z Funções OpenGL obs = posição da câmera alv = ponto que define a direção de visão up = direção “vertical” da câmera Câmera Sintética gluLookAt(obsx, obsy, obsz, alvx, alvy, alvz, upx, upy, upz); up alvo obs = posição da câmera alv = ponto que define a direção de visão up = vetor da câmera Projeção Paralela Projeção Perspectiva 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). 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 ); glLoadIdentity(); gluLookAt( 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 ); }
Compartilhar