INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass [email protected] http://www.tecgraf.puc-rio.br/~abraposo/INF1366 Alberto Raposo – PUC-Rio Cena em Computação Gráfica • 3 etapas – Especificação: • Modelagem geométrica, transformações básicas (rotação, translação, escalamento), etc. – Visualização • Qual porção da cena é vista – Renderização • Como visualizar Alberto Raposo – PUC-Rio Transformações Projetivas Projetivas Afins Similaridades Linear Euclidianas Escalamento Identidade Translação Rotação Alberto Raposo – PUC-Rio Escalaento Isotrópico Perspectiva Reflexão Shear Visualização e Projeção Modelos 3D camera setup viewport John Dingliana, 2004 Alberto Raposo – PUC-Rio Projeção Representação de 3 dimensões em meios 2D John Dingliana, 2004 Alberto Raposo – PUC-Rio No início Alberto Raposo – PUC-Rio Aprimoramentos... http://www.stedwards.edu/hum/randle /s32/SSgotpint/FrameSet.htm http://www.personal.us.es/jcordero/DISTANCIA/cap_09.htm Alberto Raposo – PUC-Rio Câmera escura Alberto Raposo – PUC-Rio Câmeras fotográficas Câmara escura - Leonardo da Vinci -1545 Alberto Raposo – PUC-Rio Luis-Jacques-Mandé Daguerre (1839) Câmeras atuais Alberto Raposo – PUC-Rio Pinhole Alberto Raposo – PUC-Rio Geometria da projeção cônica Câmera imagem objeto caixa pinhole filme raios de luz Projeção cônica plano de projeção Alberto Raposo – PUC-Rio centro de projeção Plano e Janela de Projeção • Plano de projeção: – Plano onde é projetada a imagem – Infinito Projeção cônica plano de projeção • Janela de projeção: – Porção retangular do plano de projeção onde é vista a imagem (é a “janela” por onde se vê o mundo, ou a “tela” do quadro, por exemplo) Alberto Raposo – PUC-Rio centro de projeção Projeção cônica f X Y x f , y f Z Z p [ x, y ]T p [ x, y, f ]T Alberto Raposo – PUC-Rio Taxonomia de Projeções Alberto Raposo – PUC-Rio Projeções Planas Cônicas A Ap B Bp realista não preserva escala não preserva ângulos Projeções Planas Paralelas N A Ap B Bp pouco realista preserva paralelismo possui escala conhecida Perspectiva vs. Paralela • Perspectiva + Tamanho varia inversamente à distância: realista – Distância e ângulos (em geral) não preservados – Linhas paralelas (em geral) não permanecem paralelas • Paralela + + – – Boa para medições precisas Linhas paralelas permanecem paralelas Ângulos (em geral) não são preservados Aparência menos realista Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia Taxonomia de Projeções Alberto Raposo – PUC-Rio Projeção Paralela • Centro de projeção no infinito – Direção de projeção (DOP) é a mesma para todos os pontos View Plane DOP D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio Projeções Ortográficas • DOP perpendicular ao view plane Front D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio Top Side Projeção Ortográfica Simples • Projeta todos os pontos ao longo do eixo z para o plano z = 0 MIT EECS 6.837, Durand and Cutler Alberto Raposo – PUC-Rio x´ y´ z´ 1 = 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 x y z 1 Projeções Oblíquas • DOP não é perpendicular ao view plane 45 Cavalier o (DOP = 45 ) tan() = 1 Alberto Raposo – PUC-Rio 63 .4 Cabinet o (DOP = 63.4 ) tan() = 2 D. Brogan, Univ. of Virginia Projeções Cavaleiras (Cavalier) e Cabinetes (Cabinet) y y M 1 (1,1,1) k 1 x z 3 T(1,0,0) = (1,0,0) T(0,1,0) = (0,1,0) T(0,0,1) = ( -k cos , -k sin , 0) x 2 1 M 0 0 0 1 0 k cos k sin 0 Taxonomia de Projeções Alberto Raposo – PUC-Rio Transformação Perspectiva MIT EECS 6.837, Durand and Cutler • Descoberta por Donatello, Brunelleschi, e DaVinci durante o Renascentismo • Objetos mais próximos parecem maiores • Linhas paralelas convergem em um único ponto (ponto de fuga) Alberto Raposo – PUC-Rio Projeções de um cubo • Paralelas 1 1 1 1/2 1 1 planta ou elevação iso-métrica Cabinete (=45 ou 30) • Cônicas 1 pto de fuga 2 ptos de fuga Cavaleira (=45 ou 60) Projeções Clássicas D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio Projeção Perspectiva • Quantos pontos de fuga? 3-Point Perspective 2-Point Perspective 1-Point Perspective D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio Perspectiva na pintura Filippo Lippi, La Anunciación (1442) (sem perspectiva) Alberto Raposo – PUC-Rio (com perspectiva) Projeções Cônicas e Ponto de Fuga Vermeer, “La lección de música” Alberto Raposo – PUC-Rio Projeção cônica f X Y x f , y f Z Z p [ x, y ]T p [ x, y, f ]T Alberto Raposo – PUC-Rio Projeção Perspectiva View plane X P (x, y, z) x’ = ? (0,0,0) Z n D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio Projeção cônica simples y P Pp z x zp = -n xp Pp y p z p Alberto Raposo – PUC-Rio x n y z z nz x n z y n x P y z Projeção cônica simples xp yp n xe ze n ye ze ye P Pp ze xe z p n x h n xe y h n ye z h n ze w ze Alberto Raposo – PUC-Rio xh n y 0 h z h 0 w 0 0 n 0 0 0 0 n 1 0 xe y 0 e 0 z e 0 1 Outra representação para matriz de transformção perspectiva 1 Mperspective 0 0 0 0 0 1 0 0 1 0 1 n 0 0 0 0 D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio Matriz de Projeção Perspectiva • Exemplo: x 1 y 0 z 0 z n 0 • Ou: Alberto Raposo – PUC-Rio x , z n 0 0 1 0 0 1 0 1 n 0 x 0 y 0 z 0 1 y , n zn D. Brogan, Univ. of Virginia No limite, n → ∞ A matriz de projeção perspectiva... 1 0 0 0 0 1 0 0 0 0 0 1/n ...é a de projeção ortográfica 0 0 0 1 → MIT EECS 6.837, Durand and Cutler Alberto Raposo – PUC-Rio -n 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 Câmera Virtual – Computação Gráfica Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia Modelos de Câmeras Virtuais • Pinhole é a mais comum – Todos os raios de luz capturados chegam por retas até o ponto focal, sem distorção de lentes – Resposta do sensor proporcional à radiância Alberto Raposo – PUC-Rio View plane Posição dos olhos (ponto focal) D. Brogan, Univ. of Virginia Parâmetros de Câmera • O que é necessário saber para modelar uma câmera virtual? Alberto Raposo – PUC-Rio Sistemas de Coordenadas • Do mundo (world coordinates): ponto arbitrário no espaço, a partir do qual o mundo é modelado • De câmera (eye coordinates): centrado na posição do observador, com o eixo “-z” na direção para onde se olha e o eixo “y” naquilo que se define como “para cima” Alberto Raposo – PUC-Rio Parâmetros de Câmera • Posição dos olhos (px, py, pz) • Orientação – View direction (dx, dy, dz) – Up direction (ux, uy, uz) • Abertura – Field of view (xfov, yfov) back (ou janela de visualização) • Plano do filme – “Look at” point right – View plane normal Alberto Raposo – PUC-Rio Up direction View Plane “Look at” Point Eye Position D. Brogan, Univ. of Virginia Movimentando a câmera Up Back Towards Right Alberto Raposo – PUC-Rio View Frustum (cone de visão) Câmera Alberto Raposo – PUC-Rio Projeção Cônica (Perspectiva) void glPerspective( GLdouble fovy, GLdouble aspect, GLdouble near_, GLdouble far_ ); w ye ze (OpenGL) aspect = w/h h xe near far fovy Alberto Raposo – PUC-Rio ze xe Projeção Cônica (Frustum) void glFrustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ ); (OpenGL) ye Obs.: near e far são distâncias( > 0) ze xe far view frustum near ye ze l r Alberto Raposo – PUC-Rio xe t b ze near far Glu Look At void gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz); Dados: eye, center, up (definem o sistema de coordenadas do olho) Determine a matriz que leva do sistema de Coordenadas dos Objetos para o sistema de Coordenadas do Olho up eye center Coordenadas dos Objetos Alberto Raposo – PUC-Rio Coordenadas do Olho (OpenGL) Projeção Paralela (Ortho) near top ye far B right top far bottom ze xe A left right A left bottom near void glOrtho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ ); void gluOrtho2D( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top ); Alberto Raposo – PUC-Rio (OpenGL) Câmera VRML: Viewpoint Alberto Raposo – PUC-Rio Exemplo VRML Alberto Raposo – PUC-Rio Exemplo VRML The Annotated VRML Reference Alberto Raposo – PUC-Rio Exemplo VRML The Annotated VRML Reference Alberto Raposo – PUC-Rio Exemplo VRML The Annotated VRML Reference Alberto Raposo – PUC-Rio Exemplo VRML The Annotated VRML Reference Alberto Raposo – PUC-Rio Exemplo X3D Alberto Raposo – PUC-Rio Transformações de Visualização • Cria-se uma visualização centrada na câmera • Câmera está na origem • Câmera olha para o eixo z no sentido negativo • O ‘up’ é alinhado com o eixo y Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia 2 Passos básicos • Alinha-se os sistemas de coordenadas (de câmera e do mundo) por rotação Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia 2 Passos básicos • Translação para alinhar as origens Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia Espaço de coordenadas da câmera • Especifica-se ponto onde a câmera está localizada (origem do espaço) eye point • Especifica-se ponto onde será o centro da visualizaçãolookat point • Especifica-se o vetor “up” up vector • Movimentos intuitivos da câmera Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia Transformação de visualização D. Brogan, Univ. of Virginia • Vetor da origem até o centro de visualização (look at point) • Normalização do vetor • Rotação para alinhar esse vetor com [0, 0, -1]T Alberto Raposo – PUC-Rio (câmera apontando para –z) Transformação de visualização • Se lookat-vector deve se alinhar com –z e o vup-vector se alinha com y: • Esse vetor, normalizado, deve alinhar-se com [1, 0, 0]T Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia Transformação de visualização • Mais um vetor… • Esse vetor, normalizado, se alinha com [0, 1, 0]T • Juntando os resultados… Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia Compondo vetores para formar a matriz V • Conhecemos os eixos de coordenadas do mundo (x, y, z) • E também os eixos da câmera (r, u, l) • A transfomação de visualização, V, deve converter o sistema do mundo para o sistema da câmera Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia Compondo vetores para formar a matriz V • Cada eixo da câmera é de módulo unitário • Cada eixo é perpendicular aos demais • A matriz de câmera é ortogonal e normalizada – Ortonormal • Matriz ortonormal: M-1 = MT Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia Compondo vetores para formar a matriz V • Logo, a componente de rotação da matriz de transformação de visualização … ... é simplesmente a transposta Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia Compondo vetores para formar a matriz V • Componente de translação D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio Matriz de Transformação de Visualização Para transformar vértices: Alberto Raposo – PUC-Rio Informações Adicionais – – – Peter Shirley. Fundamentals of Computer Graphics, A K Peters, Ltd., Natick, MA, USA, 2002. Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Phlips, L. R., Introduction to Computer Graphics, Addison-Wesley, 1995. D. F. Rogers, J. A. Adams. “Mathematical Elements for Computer Graphics”. 2nd Ed., McGraw-Hill, 1990. Alberto Raposo – PUC-Rio