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 wh 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
Download

CG-transf-proj