Alberto B. Raposo e Marcelo Gattass INF 1366 – Computação Gráfica Interativa Câmeras e Transformações Projetivas Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br 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 Afins Similaridades Linear Euclidianas Escalamento Identidade Translação Escalaento Isotrópico Reflexão Rotação Shear Alberto Raposo – PUC-Rio Perspectiva
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... Alberto Raposo – PUC-Rio 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âmara escura - Leonardo da Vinci -1545 Câmeras fotográficas O fato dos quadros renascentistas terem elemenots da geoemetria projetiva não quer dizer que eles conheciam técnicas precisas de desenho geométrico. Muitos trabalhos foram feitos por mera intuição ou com auxilio de câmeras escuras onde o pintor via sobre o canvas uma imagem da cena que ele desejava pintar como ilustra a figura. Podemos encontrar referências a câmeras escuras nos trabalhos de Leonardo da Vinci de 1545. A câmera fotográfica, como conhecemos hoje, foi inventada pelo Mandé Daguerre (1789-1851) e seus principios podem ser ilustrados com artefatos bem simples como a câmera tipo “pinhole”. 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 caixa filme objeto pinhole raios de luz imagem Câmera plano de projeção centro de projeção Projeção cônica Alberto Raposo – PUC-Rio
Plano e Janela de Projeção Plano de projeção: Plano onde é projetada a imagem Infinito 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) plano de projeção centro de projeção Projeção cônica Alberto Raposo – PUC-Rio
Projeção cônica f Alberto Raposo – PUC-Rio
Taxonomia de Projeções Alberto Raposo – PUC-Rio
Projeções Planas Cônicas Ap B Bp realista não preserva escala não preserva ângulos
Projeções Planas Paralelas Ap B Bp pouco realista preserva paralelismo possui escala conhecida
Perspectiva vs. Paralela 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 Side Alberto Raposo – PUC-Rio Top
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 x´ y´ z´ 1 1 1 1 x y z 1 = Alberto Raposo – PUC-Rio
Projeções Oblíquas DOP não é perpendicular ao view plane Cavalier (DOP = 45o) tan(a) = 1 Cabinet (DOP = 63.4o) tan(a) = 2 Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia
Projeções Cavaleiras (Cavalier) e Cabinetes (Cabinet) y y M 1 (1,1,1) a k 1 x x z Â3 Â2 T(1,0,0) = (1,0,0) T(0,1,0) = (0,1,0) T(0,0,1) = ( -k cos a, -k sin a , 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 Cônicas a 1/2 a 1 planta ou elevação iso-métrica Cabinete (a=45 ou 30) Cavaleira (a=45 ou 60) Cônicas 1 pto de fuga 2 ptos de fuga
Projeções Clássicas D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio
Projeção Perspectiva Quantos pontos de fuga? 3-Point Perspective D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio
Perspectiva na pintura Filippo Lippi, La Anunciación (1442) (sem perspectiva) (com perspectiva) Alberto Raposo – PUC-Rio
Projeções Cônicas e Ponto de Fuga Vermeer, “La lección de música” Alberto Raposo – PUC-Rio
Projeção cônica f Alberto Raposo – PUC-Rio
Projeção Perspectiva P (x, y, z) X Z (0,0,0) x’ = ? n View plane D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio
Projeção cônica simples x y z P Pp zp = -n Alberto Raposo – PUC-Rio
Projeção cônica simples xe ye ze P Pp Alberto Raposo – PUC-Rio
Outra representação para matriz de transformção perspectiva D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio
Matriz de Projeção Perspectiva Exemplo: Ou: D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio
No limite, n → ∞ 1 1 1/n 1 1 1 1 A matriz de projeção perspectiva... ...é a de projeção ortográfica 1 1 1/n 1 1 1 1 → MIT EECS 6.837, Durand and Cutler Alberto Raposo – PUC-Rio -n
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 View plane Posição dos olhos (ponto focal) Alberto Raposo – PUC-Rio 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) (ou janela de visualização) Plano do filme “Look at” point View plane normal View Plane Up direction “Look at” Point back View direction right Eye Position Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia
Movimentando a câmera Up Back Towards Right View Frustum (cone de visão) Alberto Raposo – PUC-Rio
Câmera Alberto Raposo – PUC-Rio
Projeção Cônica (Perspectiva) void glPerspective( GLdouble fovy, GLdouble aspect, GLdouble near_, GLdouble far_ ); (OpenGL) ye w aspect = w/h ze h xe near far fovy xe ze Alberto Raposo – PUC-Rio
Projeção Cônica (Frustum) void glFrustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ ); (OpenGL) ze xe ye Obs.: near e far são distâncias( > 0) xe ze near l r far view frustum near ye ze far t b Alberto Raposo – PUC-Rio
Glu Look At void gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz); (OpenGL) 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 Coordenadas do Olho Alberto Raposo – PUC-Rio
Projeção Paralela (Ortho) near ye top far bottom ze A xe left right void glOrtho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ ); (OpenGL) void gluOrtho2D( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top ); Alberto Raposo – PUC-Rio
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 (câmera apontando para –z) Alberto Raposo – PUC-Rio
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