Upload
phamdat
View
219
Download
0
Embed Size (px)
Citation preview
1
Alberto Raposo – PUC-Rio
INF 1366 – Computação Gráfica Interativa
Câmeras e Transformações Projetivas
Alberto B. Raposo e Marcelo [email protected]
http://www.tecgraf.puc-rio.br/~abraposo/INF1366
Alberto Raposo – PUC-Rio
TransformaçõesProjetivas
Projetivas
Perspectiva
Afins
TranslaçãoRotação
EuclidianasLinear
Similaridades
EscalaentoIsotrópico
IdentidadeEscalamento
Shear
Reflexão
2
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õesem meios 2D
John Dingliana, 2004
3
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
4
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
6
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
Projeção cônica
TT fyxpyxpZYfy
ZXfx
],,[],[
,
=⇔=
==
f
7
Alberto Raposo – PUC-Rio
Taxonomia de Projeções
Projeções Planas Cônicas
A
BAp
Bp
☺ realista
não preserva escalanão preserva ângulos
8
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
9
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
10
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
=
xyz1
1000
0100
0000
0001
MIT EECS 6.837, Durand and Cutler
11
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)
α kx
y
z
(1,1,1)
x
y1
1
ℜ3 ℜ2
M
T(1,0,0) = (1,0,0)
T(0,1,0) = (0,1,0)
T(0,0,1) = ( -k cos α, -k sin α , 0) ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−−
=000sin10cos01
αα
kk
M
12
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
13
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
14
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)
15
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 fyxpyxpZYfy
ZXfx
],,[],[
,
=⇔=
==
f
16
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
PPp
zp = -n
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛=
zyx
P
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
=
p
p
p
p
zyx
P⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−= −
−
nyx
zn
zn
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
−=
zyx
zn
17
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
zwznzynyxnx
−====
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
10100000000000
e
e
e
h
h
h
zyx
nn
n
wzyx
Alberto Raposo – PUC-Rio
Outra representação para matriz de transformção perspectiva
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
0100010000100001
n
M eperspectiv
D. Brogan, Univ. of Virginia
18
Alberto Raposo – PUC-Rio
Matriz de Projeção Perspectiva
• Exemplo:
• Ou:
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
10100010000100001
zyx
nnzzyx
⎟⎟⎠
⎞⎜⎜⎝
⎛n
nzy
nzx ,,
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
No limite, n →∞
1000
0100
000
1/n
0001
1000
0100
0000
0001
→
...é a de projeçãoortográfica
A matriz de projeçãoperspectiva...
MIT EECS 6.837, Durand and Cutler
19
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 retasaté o ponto focal, semdistorção de lentes
– Resposta do sensor proporcional à radiância
View plane
Posição dos olhos(ponto focal)
D. Brogan, Univ. of Virginia
20
Alberto Raposo – PUC-Rio
Parâmetros de Câmera
• O que é necessário saber para modelar umacâmera virtual?
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)
• 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
21
Alberto Raposo – PUC-Rio
Movimentando a câmera
View Frustum (cone de visão)
Right
BackTowards
Up
Alberto Raposo – PUC-Rio
Câmera
22
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ãodistâncias( > 0)
view frustum
(OpenGL)
23
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)
25
Alberto Raposo – PUC-Rio
Exemplo VRML
The AnnotatedVRML Reference
Alberto Raposo – PUC-Rio
Exemplo VRML
The AnnotatedVRML Reference
26
Alberto Raposo – PUC-Rio
Exemplo VRML
The AnnotatedVRML Reference
Alberto Raposo – PUC-Rio
Exemplo VRML
The AnnotatedVRML Reference
27
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
28
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 davisualizaçãolookat point
• Especifica-se o vetor “up” up vector
• Movimentos intuitivosda câmera
D. Brogan, Univ. of Virginia
29
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
30
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
31
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
32
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:
33
Alberto Raposo – PUC-Rio
Informações Adicionais
– Peter Shirley. Fundamentals of ComputerGraphics, 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.