View
27
Download
0
Category
Preview:
Citation preview
Edgar Garduño Ángeles C. Computación, I.I.M.A.S.
Coordenadas Homogéneas
■ Por lo tanto agregamos una dimensión más:● En 2D usamos M3×3
● En 3D usamosM4×4
p = v +o = αi
!ei
i=1
n
∑ +o =Eα +o =
e1,1 e2,1 e3,1 o1
e2,1 e2,2 e2,3 o2
e3,1 e3,2 e3,3 o3
0 0 0 1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
α1
α2
α3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
p a=M
Edgar Garduño Ángeles C. Computación, I.I.M.A.S.
Translación
p = v +o =
1 0 0 t10 1 0 t2
0 0 1 t3
0 0 0 1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
v1
v2
v3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
p = v +o =
1 0 0 t10 1 0 t2
0 0 1 t3
0 0 0 1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
v1
v2
v3
0
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
w
Edgar Garduño Ángeles C. Computación, I.I.M.A.S.
Transformaciones Ortogonales
■ Un conjunto de vectores es ortogonal si todos son perpendiculares. Este conjunto es ortonormal si todos los vectores tienen magnitud igual a uno.
■ Las transformaciones ortogonales preservan los ángulos.■ Las transformaciones ortonormales preservan ángulos y
distancias.■ Las rotaciones son ortonormales.
I =RRT .
Edgar Garduño Ángeles C. Computación, I.I.M.A.S.
Varios Sistemas Coordenados Involucrados
■ Espacio del Dispositivo: El sistema coordenado que utiliza el dispositivo de gráficas. Típicamente medido en píxeles.
■ Espacio de la Pantalla: El plano donde se crea la proyección, este plano es el que se mapea al espacio del dispositivo. Típicamente se define como el plano . Donde .
■ Espacio de la Imagen: El sistema coordenado 3D qué contiene al Espacio de la Pantalla. Es una extensión del Espacio de la Pantalla:
. Este espacio se proyecta sobre el de la Pantalla.■ Espacio del Objeto: El sistema de coordenadas de un objeto que se crea. Este
sistema está o estará inmerso en un sistema general conocido como Espacio del Mundo/Universo.
■ Espacio del Mundo: El sistema de la escena que será proyectado en el Espacio de la Imagen. Típicamente, se mapea una región de este espacio.
Px− y
Px− y = p | p ∈2 y -1≤ p1,2 ≤1{ }
C = p | p ∈3 y -1≤ p1,2,3 ≤1{ }
Edgar Garduño Ángeles C. Computación, I.I.M.A.S.
Esquema de Coordenadas Homogéneas
w = 1w = 2
(0, 0, 1) = (0, 0, 2) = …(7, 1, 1) = (14, 2, 2) = …(4, 5, 1) = (8, 10, 2) = …
■ Dividir entre w para normalizar (homogeneizar)■ ¿Qué pasa cuando w = 0?
Edgar Garduño Ángeles C. Computación, I.I.M.A.S.
Marcos de Referencia
■ Dado el espacio afín A de dimensión n. Sea o un punto en éste espacio y sea una base para A. Un “frame” de A es la colección . Un punto relativo al “frame” se puede calcular como sigue
{ei}
{!ei ,o}
v = α i
eii=1
n
∑
p = v +o = αi
!eii=1
n
∑ +o
p = v +o = αi
!eii=1
n
∑ +o =Eα +o
p =!e1!e2!e3 o
0 0 0 1
⎡
⎣
⎢⎢⎢
⎤
⎦
⎥⎥⎥
α1
⎡
⎣⎢
⎤
⎦⎥
o
Representación de un Marco de Referencia
e1e2
en o⎡⎣
⎤⎦
Edgar Garduño Ángeles C. Computación, I.I.M.A.S.
TransformacionesMarco →Marco
e1e2e3 c⎡
⎣⎤⎦
β1
β2
β3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
= u1u2u3 o⎡
⎣⎤⎦
α1
α 2
α3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
FF’
β1
β2
β3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
=
a1,1 a1,2 a1,3 a1,4
a2,1 a2,2 a2,3 a2,4
a3,1 a3,2 a3,3 a3,4
0 0 0 1
⎡
⎣
⎢⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥⎥
α1
α 2
α3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
Coordenadas de Bases en Fcon respecto a F’
e1e2e3 c⎡
⎣⎤⎦
β1
β2
β3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
= e1e2e3 c⎡
⎣⎤⎦
a1,1 a1,2 a1,3 a1,4
a2,1 a2,2 a2,3 a2,4
a3,1 a3,2 a3,3 a3,4
0 0 0 1
⎡
⎣
⎢⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥⎥
α1
α 2
α3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
u1u2u3 o⎡
⎣⎤⎦ =
e1e2e3 c⎡
⎣⎤⎦
a1,1 a1,2 a1,3 a1,4
a2,1 a2,2 a2,3 a2,4
a3,1 a3,2 a3,3 a3,4
0 0 0 1
⎡
⎣
⎢⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥⎥
Edgar Garduño Ángeles C. Computación, I.I.M.A.S.
TransformacionesMarco → Cartesianas
e1e2e3 o⎡
⎣⎤⎦
β1
β2
β3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
= u1u2u3 o⎡
⎣⎤⎦
α1
α 2
α3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
e1e2e3 o⎡
⎣⎤⎦
β1
β2
β3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
=1 0 0 00 1 0 00 0 1 0
⎡
⎣
⎢⎢⎢
⎤
⎦
⎥⎥⎥
α1
α 2
α3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
e1e2e3 o⎡
⎣⎤⎦ =
1 0 0 00 1 0 00 0 1 0
⎡
⎣
⎢⎢⎢
⎤
⎦
⎥⎥⎥
e1,1 e1,2 e1,3 o1
e2,1 e2,2 e2,3 o2
e3,1 e3,2 e3,3 o3
0 0 0 1
⎡
⎣
⎢⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥⎥
1 0 0 00 1 0 00 0 1 0
⎡
⎣
⎢⎢⎢
⎤
⎦
⎥⎥⎥
e1,1 e1,2 e1,3 o1
e2,1 e2,2 e2,3 o2
e3,1 e3,2 e3,3 o3
0 0 0 1
⎡
⎣
⎢⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥⎥
β1
β2
β3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
=1 0 0 00 1 0 00 0 1 0
⎡
⎣
⎢⎢⎢
⎤
⎦
⎥⎥⎥
α1
α 2
α3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
Edgar Garduño Ángeles C. Computación, I.I.M.A.S.
TransformacionesCartesianas →Marco
Suponiendo un vector conocido v
Usando la Regla de Cramer:
1 1 1
2 2 2
3 3 3
a b cD a b c
a b c=
1 1 1
2 2 2
3 3 3
b cb cb cDu
aaa=1 1 1
2 2 2
3 3 3
a ca ca c
Dv
aaa=
1 1 1
2 2 2
3 3 3
a ba ba b
Dw
aaa=
0D ¹ 0uvw
é ùê ú ¹ê úê úë û
Siempre y cuando: y
v = o + ue1 + ve2 + we3
uvw
⎡
⎣
⎢⎢⎢
⎤
⎦
⎥⎥⎥=
a1 b1 c1
a2 b2 c2
a3 b3 c3
⎡
⎣
⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥
α1
α 2
α3
⎡
⎣
⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥
1 0 00 1 00 0 1
⎡
⎣
⎢⎢⎢
⎤
⎦
⎥⎥⎥= e1
e2e3
⎡⎣
⎤⎦
a1 b1 c1
a2 b2 c2
a3 b3 c3
⎡
⎣
⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥
e1e2e3 o⎡
⎣⎤⎦
β1
β2
β3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
=1 0 0 00 1 0 00 0 1 0
⎡
⎣
⎢⎢⎢
⎤
⎦
⎥⎥⎥
α1
α 2
α3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
e1e2e3 o⎡
⎣⎤⎦
β1
β2
β3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
= u1u2u3 o⎡
⎣⎤⎦
α1
α 2
α3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
1 0 0 00 1 0 00 0 1 0
⎡
⎣
⎢⎢⎢
⎤
⎦
⎥⎥⎥= e1
e2e3 o⎡
⎣⎤⎦
a1 b1 c1 o1
a2 b2 c1 o2
a3 b3 c1 o3
0 0 0 1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
e1e2e3 o⎡
⎣⎤⎦
β1
β2
β3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
= e1e2e3 o⎡
⎣⎤⎦
a1 b1 c1 o1
a2 b2 c1 o2
a3 b3 c1 o3
0 0 0 1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
α1
α 2
α3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
Edgar Garduño Ángeles C. Computación, I.I.M.A.S.
Siempre y cuando: y
TransformacionesCartesianas →Marco
Suponiendo un vector conocido v
Usando la Regla de Cramer:
( )1 1 1
2 2 2
3 3 3
,a b c
D a b c a b ca b c
= ´ =
( )
1 1 1
2 2 2
3 3 3 ,
b cb c
b cb cD Du
aa
aa ´= =
( )
1 1 1
2 2 2
3 3 3 ,
a ca c
a t ca cD Dv
aaa ´= =
( )
1 1 1
2 2 2
3 3 3 ,
a ba b
a b ta bD Dw
aaa ´
= =
0D ¹0
uvw
é ùê ú ¹ê úê úë û
Volume cosa b c f= ´
( )1 1 1
2 2 2
3 3 3
,a b c
a b c a b ca b c
´ =
( ) ( ) ( ), , ,a b c b c a c a b´ = ´ = ´
v = o + ue1 + ve2 + we3
uvw
⎡
⎣
⎢⎢⎢
⎤
⎦
⎥⎥⎥=
a1 b1 c1
a2 b2 c2
a3 b3 c3
⎡
⎣
⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥
α1
α 2
α3
⎡
⎣
⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥
1 0 00 1 00 0 1
⎡
⎣
⎢⎢⎢
⎤
⎦
⎥⎥⎥= e1
e2e3
⎡⎣
⎤⎦
a1 b1 c1
a2 b2 c2
a3 b3 c3
⎡
⎣
⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥
Edgar Garduño Ángeles C. Computación, I.I.M.A.S.
Marco para Cámara
t
Marco de Cámara:
Coordenadas Mundo Coordenadas Cámara
(0,0,0)
(0,0,f )
(0,1,0)
(0,1,f )
u = t × w
t × w
v = w× u
g = − w = qow
qow
w = owq
owq
u v w ow
⎡⎣
⎤⎦
ow
ow
ow + f w
ow +v
ow +v + f w
q
e2
e1
e3
Edgar Garduño Ángeles C. Computación, I.I.M.A.S.
Marco para Cámara
Marco de Cámara:
Suponiendo que Mc es ortonormal: Una matriz Pm×n es ortogonal si sus columnas son vectores ortonormales en !m. Para una matriz ortonormal P se cumple PPT=I. Las hileras y las columnas de dicha matriz forman bases ortonormales de !m.
1 0 0 00 1 0 00 0 1 00 0 0 1
⎡
⎣
⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥
ω1
ω 2
ω3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
=u v w ow
0 0 0 1
⎡
⎣⎢⎢
⎤
⎦⎥⎥
c1
c2
c3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
=Mc ow
0T 1
⎡
⎣⎢⎢
⎤
⎦⎥⎥c
c =Mc
−1 −Mc−1ow
0T 1
⎡
⎣⎢⎢
⎤
⎦⎥⎥
ω1
ω 2
ω3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
c =Mc
T −McT ow
0T 1
⎡
⎣⎢⎢
⎤
⎦⎥⎥
ω1
ω 2
ω3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
u v w ow
⎡⎣
⎤⎦
Edgar Garduño Ángeles C. Computación, I.I.M.A.S.
TransformaciónMundo → Cámara
Usando la Regla de Cramer: ( ) ( ) ( ), , ,a b c b c a c a b´ = ´ = ´
Tomando el Punto :
v = ow + au + bv + c w
001
⎡
⎣
⎢⎢⎢
⎤
⎦
⎥⎥⎥= u v w⎡⎣ ⎤⎦
c1
c2
c3
⎡
⎣
⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥
010
⎡
⎣
⎢⎢⎢
⎤
⎦
⎥⎥⎥= u v w⎡⎣ ⎤⎦
b1
b2
b3
⎡
⎣
⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥
100
⎡
⎣
⎢⎢⎢
⎤
⎦
⎥⎥⎥= u v w⎡⎣ ⎤⎦
a1
a2
a3
⎡
⎣
⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥
D = u, v × w( ) = 1
a1 = α , b × c( ) = 1 0 0⎡⎣ ⎤⎦
T, u
a2 = a , t × c( ) = 1 0 0⎡⎣ ⎤⎦
T, v
a3 = a , b × t( ) = 1 0 0⎡⎣ ⎤⎦
T, w
b1 = α , b × c( ) = 0 1 0⎡⎣ ⎤⎦
T, u
b2 = a , t × c( ) = 0 1 0⎡⎣ ⎤⎦
T, v
b3 = a , b × t( ) = 0 1 0⎡⎣ ⎤⎦
T, w
c1 = α , b × c( ) = 0 0 1⎡⎣ ⎤⎦
T, u
c2 = a , t × c( ) = 0 0 1⎡⎣ ⎤⎦
T, v
c3 = a , b × t( ) = 0 0 1⎡⎣ ⎤⎦
T, w
t = 0 0 0⎡⎣ ⎤⎦
T− ow ow
t = 0 0 0⎡⎣ ⎤⎦T− ow = o1
u + o2v + o3
w
o3 = a , b × t( ) = −ow , w
o2 = a , t × c( ) = −ow , v
o1 = t , b × c( ) = −ow , u
Edgar Garduño Ángeles C. Computación, I.I.M.A.S.
Proceso de Rendering
CoordenadasMundo
Transformación M→C
CoordenadasPlano Dispositivo
CoordenadasCámara
!3!3!2
CoordenadasPlano Proyección
Z2
Transformación C→P
c =Mc
T −McT ow
0T 1
⎡
⎣⎢⎢
⎤
⎦⎥⎥
ω1
ω 2
ω3
1
⎡
⎣
⎢⎢⎢⎢⎢
⎤
⎦
⎥⎥⎥⎥⎥
Recommended