Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações...
Transcript of Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Câmeras e Transformações...
Alberto Raposo – PUC-Rio
INF 1366 – Computação Gráfica Interativa
Câmeras e Transformações Projetivas
Alberto B. Raposo e Marcelo Gattass
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çõesProjetivas
Projetivas
Perspectiva
Afins
TranslaçãoRotação
EuclidianasLinear
Similaridades
EscalaentoIsotrópico
IdentidadeEscalamento
Shear
Reflexão
Alberto Raposo – PUC-Rio
Visualização e Projeção
viewport
Modelos 3Dcamera setup
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
Luis-Jacques-Mandé Daguerre (1839)
Câmara escura - Leonardo da Vinci -1545
Alberto Raposo – PUC-Rio
Câmeras atuais
Alberto Raposo – PUC-Rio
Pinhole
Alberto Raposo – PUC-Rio
Geometria da projeção cônica
plano de projeção
centro de projeção
Projeção cônica
caixa
filme
objetopinhole
raios de luz
imagem
Câmera
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
TT fyxpyxp
Z
Yfy
Z
Xfx
],,[],[
,
f
Alberto Raposo – PUC-Rio
Taxonomia de Projeções
Projeções Planas Cônicas
A
BAp
Bp
realista
não preserva escala não preserva ângulos
Projeções Planas Paralelas
A
B
Ap
Bp
preserva paralelismo possui escala conhecida
pouco realista
N
Alberto Raposo – PUC-Rio
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
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
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
DOP
ViewPlane
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Projeções Ortográficas
Top Side
Front
• DOP perpendicular ao view plane
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Projeção Ortográfica Simples• Projeta todos os pontos ao longo do eixo z
para o plano z = 0
x´
y´
z´
1
=
x
y
z
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
MIT EECS 6.837, Durand and Cutler
Alberto Raposo – PUC-Rio
Projeções Oblíquas
• DOP não é perpendicular ao view plane
Cavalier
(DOP = 45o)
tan() = 1
Cabinet
(DOP = 63.4o)
tan() = 2
45 4.63
D. Brogan, Univ. of Virginia
Projeções Cavaleiras (Cavalier) e Cabinetes (Cabinet)
k
x
y
z
(1,1,1)
x
y1
1
M
T(1,0,0) = (1,0,0)
T(0,1,0) = (0,1,0)
T(0,0,1) = ( -k cos , -k sin , 0)
000
sin10
cos01
k
k
M
Alberto Raposo – PUC-Rio
Taxonomia de Projeções
Alberto Raposo – PUC-Rio
Transformação Perspectiva
• 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)
MIT EECS 6.837, Durand and Cutler
Projeções de um cubo
planta ouelevação
iso-métrica
1/2
1
Cabinete(=45 ou 30)
Cavaleira(=45 ou 60)
1
1
1
1
• Paralelas
• Cônicas
1 pto de fuga 2 ptos de fuga
Alberto Raposo – PUC-Rio
Projeções Clássicas
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Projeção Perspectiva
3-PointPerspective
2-PointPerspective
1-PointPerspective
• Quantos pontos de fuga?
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
TT fyxpyxp
Z
Yfy
Z
Xfx
],,[],[
,
f
Alberto Raposo – PUC-Rio
Projeção Perspectiva
n
P (x, y, z)X
Z
Viewplane
(0,0,0) x’ = ?
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Projeção cônica simples
x
y
z
P
Pp
zp = -n
z
y
x
P
p
p
p
p
z
y
x
P
n
y
x
zn
zn
z
y
x
z
n
Alberto Raposo – PUC-Rio
Projeção cônica simples
xe
ye
ze
P
Pp
nz
yz
ny
xz
nx
p
ee
p
ee
p
e
eh
eh
eh
zw
znz
yny
xnx
10100
000
000
000
e
e
e
h
h
h
z
y
x
n
n
n
w
z
y
x
Alberto Raposo – PUC-Rio
Outra representação para matriz de transformção perspectiva
0100010000100001
n
M eperspectiv
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Matriz de Projeção Perspectiva
• Exemplo:
• Ou:
10100010000100001
zyx
nnzzyx
n
nz
y
nz
x,,
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
No limite, n → ∞
1
0
0
0
0
1
0
0
0
0
0
1/n
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
→
...é a de projeção ortográfica
A matriz de projeção perspectiva...
MIT EECS 6.837, Durand and Cutler
-n
Alberto Raposo – PUC-Rio
Câmera Virtual – Computação Gráfica
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
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)
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
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
right
back
Up direction
Eye Position
View direction
ViewPlane
“Look at”Point
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Movimentando a câmera
View Frustum (cone de visão)
Right
BackTowards
Up
Alberto Raposo – PUC-Rio
Câmera
Alberto Raposo – PUC-Rio
Projeção Cônica (Perspectiva)
aspect = w/h
xe
ye
ze
void glPerspective( GLdouble fovy, GLdouble aspect, GLdouble near_, GLdouble far_ );
near
far
w
h
xeze
fovy
(OpenGL)
Alberto Raposo – PUC-Rio
Projeção Cônica (Frustum)
zexe
ye
near
ye
ze far
tb
xeze
near
l r
far
void glFrustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ );
Obs.: near e far são distâncias( > 0)
view frustum
(OpenGL)
Alberto Raposo – PUC-Rio
Glu Look At
Dados: eye, center, up (definem o sistema de coordenadas do olho)
Determine a matriz que leva do sistema de Coordenadas dos Objetospara o sistema de Coordenadas do Olho
void gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz);
up eye
center
Coordenadas dosObjetos
Coordenadas doOlho
(OpenGL)
Alberto Raposo – PUC-Rio
xe
ye
ze
Projeção Paralela (Ortho)
leftright
bottom
top near far
A
nearbottomleftA
fartoprightB
void glOrtho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ );
void gluOrtho2D( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top );
(OpenGL)
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
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
2 Passos básicos
• Alinha-se os sistemas de coordenadas (de câmera e do mundo) por rotação
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
2 Passos básicos
• Translação para alinhar as origens
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
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 intuitivosda câmera
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Transformação de visualização
• 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)
D. Brogan, Univ. of Virginia
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
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Transformação de visualização
• Mais um vetor…
• Esse vetor, normalizado, se alinha com [0, 1, 0]T
• Juntando os resultados…
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
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
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
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
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Compondo vetores para formar a matriz V
• Logo, a componente de rotação da matriz de transformação de visualização …
... é simplesmente a transposta
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
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.