Computação Gráfica – Transformações Projetivas Profa. Mercedes Gonzales Márquez Modelo de câmera • • • • 2 Uma câmera pode ser caracterizada matematicamente através de seus parâmetros intrínsecos e extrínsecos. Os parâmetros intrínsecos correspondem aos parâmetros internos da câmera como a distância focal, tamanho do pixel e as distorções de lente. Os parâmetros extrínsecos correspondem a orientação e posição da câmera em relação a um sistema de referência no mundo (isto foi visto nos slides anteriores ao falarmos da gluLookAt). Falaremos a continuação dos parâmetros intrínsecos. Modelo de câmera – câmera de furo • • 3 O modelo que utilizaremos para a definição da câmera virtual é baseado em uma câmera de furo. Neste modelo, a luz passa pelo orifício O em um dos lados de uma caixa e projeta a imagem do plano oposto. Analogia entre o sistema visual humano e a câmera fotográfica 4 Modelo de câmera – câmera de furo pinhole • A geometria do modelo de câmera de furo se reduz a projeção perspectiva ou cônica. • Para evitar que a imagem seja invertida, deslocamos o plano de projeção que é posicionado entre o centro de projeção e o centro de projeção distância focal objeto. • O único parâmetro intrínseco é a distância focal. 5 Especificação de câmera virtual • • 6 Dentre as várias formas de especificar uma câmera virtual que segue o modelo da câmera de furo (pinhole), escolhemos a especificação usada pelo OpenGL. Os parâmetro intrínsecos da câmera são definidos pelo centro de projeção, o eixo óptico e as dimensões da tela virtual (um retângulo de wh pixels). Modelo de câmera virtual • O eixo óptico é determinado pela reta que passa pelo centro de projeção e fura a tela virtual em um ponto denominado centro óptico ou ponto principal. eixo óptico eye centro de projeção 7 centro óptico o janela h pixels altura a janela o w pixels largura b Modelo de câmera virtual • • 8 Um caso bastante comum é aquele em que o eixo óptico é perpendicular à tela virtual e intercepta exatamente seu centro. Nestes casos o tamanho do retângulo e a sua distância ao centro de projeção definem a abertura da câmera ou campo de visão (fov). Modelo de câmera virtual • O eixo óptico e as direções dos lados do retângulo da tela definem três direções que definem os eixos da câmera xeyeze e os eixos da imagem uv. v ye eixo vertical eixo óptico ze 9 eye xe u eixo horizontal Especificação da câmera virtual 10 • A escolha de OpenGL para parametrizar uma câmera é utilizar os parâmetros fov e a razão de aspecto w/h entre a largura e altura da tela. • Estes parâmetros, juntamente com duas distâncias near e far em relação ao centro de projeção são os parâmetros usados pela função da OpenGL : void glPerspective(Gldouble fovy,Gldouble aspect, Gldouble near, Gldouble far); • Os parâmetros descritos determinam um volume de visualização (frustum) na forma de um tronco de pirâmide reta. Projeções e câmera virtual: especificação da câmera virtual ye zeeye xe 11 Especificação da câmera virtual • Precisamos de um conjunto de parâmetros mais gerais quando o eixo ótico não atravessa o centro do plano de projeção. ye zeeye xe far view frustum near ye 12 z top botton left right xe ze near Especificação da câmera virtual • • • 13 Podemos utilizar as coordenadas dos cantos inferior esquerdo (left, bottom) e superior direito (right, top) que definem a tela virtual, juntamente com os planos em –near e –far. Estes parâmetros são utilizados pela função glFrustum da biblioteca OpenGL: void glFrustum(GLdouble left,GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far); Especificação da câmera virtual 14 Projeção ortográfica • • Na projeção ortográfica, os raios projetores não convergem para um centro de projeção. Ao contrário, são paralelos ao eixo z e ortogonais ao plano de projeção z=near. ye near top ze bottom xe left right 15 far Projeção ortográfica • • 16 A função da OpenGL que produzem tal matriz são: glOrtho(GLdouble left,GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far) Tipos de Projeção Resumindo, existem dois tipos de projeção: (a) Projeção Paralela, Ortogonal ou ortográfica (b)Projeção perspectiva Tipos de Projeção Projeção perspectiva e projeção paralela Matriz de Projeção Paralela Se quisermos a projeção ortográfica em relação ao x' 1 0 plano xy (ou z=0), a y ' 0 1 matriz em coordenadas z ' 0 0 homogêneas é 1 0 0 0 0 0 0 0 x 0 y 0 z 1 1 Se no lugar do plano z=0 for escolhido outro plano qualquer z=Tz paralelo a ele, a matriz será x' 1 0 0 0 x y ' 0 1 0 0 y z ' 0 0 0 Tz z 1 0 0 0 1 1 Modelo perspectivo ideal p y x o Plano imagem p1 f P1 z O P y x p1 o Plano imagem O f p P1 z P Matriz de Projeção Perspectiva y Plano de projeção x (x´,y´) (x,y,z) f Centro de projeção Por similaridade de triângulos temos x' 1 y ' 0 z ' 0 1 0 0 0 1 0 0 0 0 1/ f 0 x 0 y 0 z 1 1 x' x f z f y' y f z f