Está en la página 1de 47

2002 J.C.

Drsteler - UPF- IUA


Infografa I
Visualizacin 3D
Proyecciones
Vistas
2002 J.C.Drsteler - UPF- IUA
Introduccin
En 2D especificamos una ventana en el mundo
2D y un viewport sobre la superficie de visin
La complejidad extra de la visualizacin 3D
proviene de
La dimensin aadida
El hecho de que la superficie de representacin
sigue siendo 2D
Ello nos obliga a la proyeccin del mundo 3D
sobre el 2D
2002 J.C.Drsteler - UPF- IUA
Estrategias
Existen 2 estrategias fundamentales
Trazado de rayos (screen to world)
Para cada pxel de la pantalla se traza un rayo que
parte de la posicin del observador, pasa por el pxel
y va a parar a la escena.
Proyeccin de primitivas (world to screen)
Las escenas se componen de primitivas que son
proyectadas sobre la pantalla.
2002 J.C.Drsteler - UPF- IUA
Estrategia (proyeccin)
En la visualizacin 3D se especifica
un volumen de visualizacin 3D en el mundo
una proyeccin sobre un plano
un viewport sobre la superficie de visualizacin
El contenido de la proyeccin del volumen sobre
el plano de proyeccin (la ventana) se
transforma sobre el viewport para su
presentacin
Las estrategias varan segn los sistemas y las
simplificaciones que se hacen.
2002 J.C.Drsteler - UPF- IUA
Estrategia
Coordenadas
mundo 3D
Recortado Proyeccin Viewport
Coordenadas
mundo 3D
recortadas
Coordenadas
normalizadas
2D
Coordenadas
del dispositivo
2D
2002 J.C.Drsteler - UPF- IUA
Proyecciones
Una proyeccin transforma puntos en un sistema de
coordenadas de dimensin n en otro de dimensin
m < n
Nos limitaremos a la proyeccin 3D -> 2D
Una proyeccin se define mediante unos rayos
llamados proyectores que
emanan del centro de proyeccin
pasan por cada punto del objeto
intersecan el plano de proyeccin.
Factor de reduccin: razn entre la longitud de
la lnea proyectada respecto a su valor real
2002 J.C.Drsteler - UPF- IUA
Proyecciones
Perspectiva
Centro de
proyeccin
Paralela
Direccin de
proyeccin
2002 J.C.Drsteler - UPF- IUA
Proyecciones
Perspectiva
Efecto parecido al de la fotografa o el sistema
visual humano
El tamao vara inversamente con la distancia del
objeto al centro de proyeccin
Realista
No permite la medicin precisa
Los ngulos, en general no se preservan
Los ngulos slo se mantienen en las caras
paralelas al plano de proyeccin.
2002 J.C.Drsteler - UPF- IUA
Proyecciones
Paralela
No tan realista
El tamao no vara inversamente con la distancia del
objeto al centro de proyeccin
Pueden haber reducciones constantes de tamao para
cada eje
Permite la medicin precisa.
El paralelismo permanece para todas las lneas.
Los ngulos, en general, no se preservan como en
la perspectiva.
2002 J.C.Drsteler - UPF- IUA
Proyecciones planas
Perfil Alzado Planta
Trimtrica Dimtrica Isomtrica
Axonomtrica
Ortografica
Caballera Cabinet
Oblicua
Paralela
Un punto Dos puntos Tres puntos
Perspectiva
Proyecciones geomtricas planas
2002 J.C.Drsteler - UPF- IUA
Perspectiva
Puntos de fuga.
Puntos donde convergen los conjuntos de rectas
paralelas que no son paralelas al plano de
proyeccin.
Se pueden considerar proyecciones de puntos en el
infinito.
Existen infinitos puntos de fuga, uno para cada
direccin posible de la recta.
Si el conjunto de lneas es paralelo a uno de los ejes
se denomina punto de fuga axial
Hay como mximo 3 de ellos, uno por eje coordenado.
2002 J.C.Drsteler - UPF- IUA
Perspectiva
Z
X
Y
2002 J.C.Drsteler - UPF- IUA
Perspectiva
2002 J.C.Drsteler - UPF- IUA
Perspectiva
Z
X
Y
2002 J.C.Drsteler - UPF- IUA
Proyeccin Paralela
Clasificacin en funcin de la relacin entre la direccin
de proyeccin y la normal al plano de proyeccin
Axonomtrica
Direcciones paralelas
El plano de proyeccin
no ortogonal a ningn
eje coordenado
Trimtrica
Dimtrica
Isomtrica
Ortogrfica
Direcciones paralelas
Plano de proyeccin
ortogonal a algn eje
coordenado
Planta
Alzado
Perfil
Oblicua
Direcciones no paralelas
Caballera
Cabinet
2002 J.C.Drsteler - UPF- IUA
Ortogrfica
Alzado
Plano de proyeccin ortogonal a z
Visto desde enfrente
Planta
Plano de proyeccin ortogonal a y
Visto desde arriba
Perfil
Plano de proyeccin ortogonal a x
Visto de lado
(
(
(
(

=
1 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1
z
P
(
(
(
(

=
1 0 0 0
0 1 0 0
0 0 0 0
0 0 0 1
y
P
(
(
(
(

=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 0
x
P
2002 J.C.Drsteler - UPF- IUA
Ortogrfica
Planta


Perfil


Alzado
2002 J.C.Drsteler - UPF- IUA
Proyeccin Ortogrfica
Z
X
Y
X
Z
Planta
Z
Y
Perfil
X
Y
Alzado
2002 J.C.Drsteler - UPF- IUA
Axonomtricas
El plano de proyeccin no es ortogonal a ningn
eje coordenado
Ensean mltiples caras del objeto
Se parecen a una perspectiva, salvo en que el
empequeecimiento es constante, no depende de
la distancia.
Se preserva el paralelismo pero no los ngulos
2002 J.C.Drsteler - UPF- IUA
Proyeccin trimtrica y
dimtrica
Trimtrica: Es la proyeccin axonomtrica menos
restrictiva
Se forma mediante
la concatenacin arbitraria de giros alrededor de cualesquiera
de los tres ejes
seguida de la proyeccin sobre el eje Z
El factor de reduccin es diferente para cada eje
No hay una frmula general
T matriz de concatenacin, U matriz de los vectores
unitarios
| || | | |
(
(
(
(

=
(
(
(
(

=
1 1 1
0 0 0
1 1 1
1 0 0
0 1 0
0 0 1
z y x
z y x
y y y
x x x
T U T
2 2
2 2
2 2
z z z
y y y
x x x
y x f
y x f
y x f
+ =
+ =
+ =
2002 J.C.Drsteler - UPF- IUA
Proyeccin trimtrica y
dimtrica
Dimtrica: Caso particular de la Trimtrica
Se forma mediante
una rotacin en torno al eje Y seguida de una rotacin
en torno a X
seguida de la proyeccin sobre el eje Z
Dos de los factores de reduccin son iguales
| | | || || |
y x z
R R P T =
| |
(
(
(
(


(
(
(
(

(
(
(
(

=
1 0 0 0
0 ) cos( 0 ) sin(
0 0 1 0
0 ) sin( 0 ) cos(
1 0 0 0
0 ) cos( ) sin( 0
0 ) sin( ) cos( 0
0 0 0 1
1 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1


u u
u u
T
2002 J.C.Drsteler - UPF- IUA
Proyeccin dimtrica
| | | || || |
y x z
R R P T =
| |
(
(
(
(


(
(
(
(

(
(
(
(

=
1 0 0 0
0 ) cos( 0 ) sin(
0 0 1 0
0 ) sin( 0 ) cos(
1 0 0 0
0 ) cos( ) sin( 0
0 ) sin( ) cos( 0
0 0 0 1
1 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1


u u
u u
T
| |
(
(
(
(



=
1 0 0 0
0 0 0 0
0 ) cos( ) sin( ) cos( ) sin( ) sin(
0 ) sin( 0 ) cos(
u u u

T
| || |
(
(
(
(



=
(
(
(
(

(
(
(
(



=
=
1 1 1
0 0 0
) cos( ) sin( ) cos( ) sin( ) sin(
) sin( 0 ) cos(
1 1 1
1 0 0
0 1 0
0 0 1
1 0 0 0
0 0 0 0
0 ) cos( ) sin( ) cos( ) sin( ) sin(
0 ) sin( 0 ) cos(
*
u u u

u u u

U T U
) ( sin ) ( sin ) ( cos ) (
2 2 2
2
*
2
* 2
u + = + =
x x x
y x f
) ( cos ) (
2
2
*
2
* 2
u = + =
y y y
y x f
) ( sin ) ( cos ) ( sin ) (
2 2 2
2
*
2
* 2
u + = + =
z z z
y x f
2002 J.C.Drsteler - UPF- IUA
Proyeccin dimtrica
) ( sin ) ( sin ) ( cos ) (
2 2 2
2
*
2
* 2
u + = + =
x x x
y x f
) ( cos ) (
2
2
*
2
* 2
u = + =
y y y
y x f
) ( sin ) ( cos ) ( sin ) (
2 2 2
2
*
2
* 2
u + = + =
z z z
y x f
) y ( factores dos igualando
2 2
y x
f f
) ( cos ) ( sin ) ( sin ) ( cos
2 2 2 2 2 2
u u = + =
y x
f f
) ( sin 1 ) ( cos
) ( sin 1 ) ( cos
2 2
2 2
u u

=
=
) ( sin 1
) ( sin
) ( sin
2
2
2
u
u

=
) ( sin ) ( cos ) ( sin
2 2 2 2
u + =
z
f factor tercer el con combinando
0 )) ( sin 1 ( ) ( sin 2 ) ( sin 2
2 2 4 2
=
z
f u u u 0 ) ( sin ) 2 ( ) ( sin 2
2 2 2 4
= + +
z z
f f u u
son solucines cuyas 1 ,
2
) ( sin
2
2 z
f
= u
|
|
.
|

\
|

=
|
.
|

\
|
=

2
1
1
2
sin
2
sin
z
z
z
f
f
f

( 1 ) sin
2
= s descartamo
2002 J.C.Drsteler - UPF- IUA
Proyeccin isomtrica
Es la proyeccin axonomtrica ms restrictiva
La normal al plano de proyeccin subtiende
ngulos iguales con cada eje principal
Si la normal es
) , , (
z y x
N N N
z y x
N N N = =
Entonces la condicin de isometra es
z y x
N N N = =
Hay 8 direcciones que lo cumplen. Una por cada
octante.
Permite realizar medidas en todos los ejes con la
misma escala ya que todos los ejes disminuyen por
igual
120
120
120
Proyeccin isomtrica de
los vectores unitarios
2002 J.C.Drsteler - UPF- IUA
Axonometricas
Trimtrica
Los tres factores de
reduccin diferentes
2002 J.C.Drsteler - UPF- IUA
Axonometricas
Dimtrica
Axonomtrica con dos de los tres factores de
reduccin iguales
2002 J.C.Drsteler - UPF- IUA
Axonometricas
Isomtrica
Los tres factores iguales
Cuatro de las ocho
proyecciones posibles
2002 J.C.Drsteler - UPF- IUA
Proyecciones oblcuas
En las proyecciones oblicuas
La normal al plano de proyeccin y la direccin de
proyeccin no son paralelas.
Muestran varias caras del objeto
Solo las caras paralelas al plano de proyeccin se
muestran en su tamao y forma correctos
Los ngulos y las longitudes solo se preservan
para estas caras.
Las caras no paralelas al plano de proyeccin son
distorsionadas
2002 J.C.Drsteler - UPF- IUA
Proyecciones oblcuas
Perspectiva Caballera
La normal al plano de proyeccin y la direccin de
proyeccin forman un ngulo de 45.
La proyeccin de una lnea perpendicular al plano
de proyeccin tiene la misma longitud que el
original.
Son fciles de construir
1
1
1
1
1
1
1
1
o=45
o=30
2002 J.C.Drsteler - UPF- IUA
Proyecciones Oblcuas
Cabinet
El ngulo que forman la direccin de proyeccin y
la normal al plano de proyeccin es
arctan(2)=63,4
Esto hace que la longitud de un segmento
perpendicular al plano de proyeccin se acorte en
1/2

1/2
1
1
1
2002 J.C.Drsteler - UPF- IUA
Proyecciones planas
Recordemos...
Perfil Alzado Planta
Trimtrica Dimtrica Isomtrica
Axonomtrica
Ortografica
Caballera Cabinet
oblicua
Paralela
Un punto Dos puntos Tres puntos
Perspectiva
Proyecciones geomtricas planas
2002 J.C.Drsteler - UPF- IUA
Proyecciones geomtricas
planas
Elementos matemticos
Suposiciones
Proyeccin:
El plano de proyeccin es normal a z
Esta a una distancia d
Paralela
El plano de proyeccin es el plano z=0.
2002 J.C.Drsteler - UPF- IUA
Perspectiva
d
P(x,y,z)
P
p
(x
p
,y
p
,z
p
)
Z
Y
X
P(x,y,z)
d
x
p

X
Z
d
P(x,y,z)
y
p

Z
Y
z
x
d
x
p
=
z
y
d
y
p
=
d z
x
z
x d
x
p
/
=

=
d z
y
z
y d
y
p
/
=

=
(
(
(
(

=
0 / 1 0 0
0 1 0 0
0 0 1 0
0 0 0 1
d
M
per
d z
p
=
2002 J.C.Drsteler - UPF- IUA
(
(
(
(

=
(
(
(
(

(
(
(
(

(
(
(
(

=
(
(
(
(

=
(
(
(
(

d z
z
y
x
h
z
y
x
z
y
x
d
z
y
x
M
h
z
y
x
per
/
'
'
'
1 0 / 1 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1
'
'
'
Perspectiva
Lo que nos da, dividiendo por h y pasando a 3D

(
(
(
(

=
(
(
(
(
(
(

=
(
(
(
(
(
(
(

1
1
/
/
1
'
'
'
p
p
p
z
y
x
d
d z
y
d z
x
w
z
w
y
w
x
) ,
/
,
/
( ) , (
,
d
d z
y
d z
x
z y x
p p p
=
2002 J.C.Drsteler - UPF- IUA
Perspectiva
Formulacin alternativa
d
P(x,y,z)
P
p
(x
p
,y
p
,z
p
)
Z
Y
X
P(x,y,z)
d
x
p

X
Z
d
P(x,y,z)
y
p

Z
Y
d z
x
d
x
p
+
=
d z
y
d
y
p
+
=
1 ) / ( +
=
+

=
d z
x
d z
x d
x
p
1 ) / ( +
=

=
d z
y
z
y d
y
p
(
(
(
(

=
1 / 1 0 0
0 0 0 0
0 0 1 0
0 0 0 1
'
d
M
per
0 =
p
z
2002 J.C.Drsteler - UPF- IUA
Proyecciones
Ortogrfica sobre el
plano z=0

Estas formulas aplican slo
en casos particulares
M
per
si el centro de
proyeccin est en el
origen
M
orto
si la direccion de
proyeccin es paralela a z
Estudiaremos una
formulacin ms general
integra ambas en una sola
matriz
(
(
(
(

=
1 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1
orto
M
0 , , = = =
p p p
z y y x x
orto per
d
M M lim =

) (
2002 J.C.Drsteler - UPF- IUA
Proyecciones
Distancia del plano al origen =z
p

CP, centro de proyeccin, a
distancia D de (0,0, z
p
)
El vector (d
x
,d
y
,d
z
) normalizado da
la direccin de (0,0, z
p
) a CP
P
p
est en la lnea entre P y CP
La lnea en paramtricas se escribe
1 0 , ) ( s s + t t CP P CP
P(x,y,z)
) ' , ' , ' ( ' z y x P =
Un punto P cualquiera de la lnea
) , , ( ) , 0 , 0 (
z y x p
d d d D z CP + =
t Dd z z Dd z z
t Dd y Dd y
t Dd x Dd x
z p z p
y y
x x
)) ( ( ) ( '
, ) ( '
, ) ( '
+ + + =
+ =
+ =
La proyeccin P
p
de P est en la
interseccin de la lnea con el plano
=> z=z
p
Sustituimos z por z
p
y
resolvemos en t
) (
) (
z p
z p p
Dd z z
Dd z z
t
+
+
=
D (0,0,z
p
)
X Y
Z
CP
P
p
(x
p
,y
p
,z
p
)
(d
x
,d
y
,d
z
)
2002 J.C.Drsteler - UPF- IUA
Proyecciones
Sustituimos t en x e y que pasan a ser x
p
e y
p
.

Dividimos por -Dd
z

, ) ( '
, ) ( '
t Dd y Dd y
t Dd x Dd x
y y
x x
+ =
+ =
) ( ) (
) (
z p
z
z p
z p p
Dd z z
Dd
Dd z z
Dd z z
t
+

=
+
+
=
) (
) )( (
) (
z p
z x
x x x p
Dd z z
Dd Dd x
Dd t Dd x Dd x
+

+ = + =
) ( ) (
) )( ( )) ( (
z p
z x z z x p x x
z p
z x z p x
p
Dd z z
Dd Dd x Dd Dd Dd z Dd z Dd
Dd z z
Dd Dd x Dd z z Dd
x
+
+
=
+
+ +
=
1
) (
+

+
=

+


=
z
p
z
x
p
z
x
z
z p
z
z p x x
p
Dd
z z
d
d
z
d
d
z x
Dd
Dd z z
Dd
x Dd z Dd z Dd
x
D (0,0,z
p
)
X Y
Z
CP
P
p
(x
p
,y
p
,z
p
)
(d
x
,d
y
,d
z
)
2002 J.C.Drsteler - UPF- IUA
Proyecciones
Anlogamente para y.

Para zp podemos hacer
1 +

+
=
z
p
z
x
p
z
x
p
Dd
z z
d
d
z
d
d
z x
x
1 +

+
=
z
p
z
y
p
z
y
p
Dd
z z
d
d
z
d
d
z y
y
1 1 1
) 1 (
1
1
2
+

+
+
=
+

=
+

=
+

=
z
p
z
z p p
z
p
z
p
p
z
p p p
z
p
z
p
p
z
p
z
p
p p
Dd
z z
Dd
Dd z z
Dd
z
z
Dd
z z
z
Dd
z z z z
Dd
z z
Dd
z z
z
Dd
z z
Dd
z z
z z
D (0,0,z
p
)
X Y
Z
CP
P
p
(x
p
,y
p
,z
p
)
(d
x
,d
y
,d
z
)
2002 J.C.Drsteler - UPF- IUA
Proyecciones
Tomamos el comn denominador como la coordenada h de las
coordenadas homogneas del punto (x
p
, y
p
, z
p
)

1 +

+
=
z
p
z
x
p
z
x
p
Dd
z z
d
d
z
d
d
z x
x
1 +

+
=
z
p
z
y
p
z
y
p
Dd
z z
d
d
z
d
d
z y
y
1
2
+

+
+
=
z
p
z
z p p
z
p
p
Dd
z z
Dd
Dd z z
Dd
z
z
z
(
(
(
(
(
(
(
(
(
(

+
+

=
1
1
0 0
0 0
1 0
0 1
2
gra
z
p
z
p
z
p
z
p
z
y
p
z
y
z
x
p
z
x
l
Dd
z
Dd
z
Dd
z
Dd
z
d
d
z
d
d
d
d
z
d
d
M
(
(
(
(

=
(
(
(
(

1
'
'
'
gra
z
y
x
M
h
z
y
x
l
2002 J.C.Drsteler - UPF- IUA
Proyecciones
M
gral
se convierte en M
per
M
per
y M
orto
bajo las
condiciones siguientes:
M
per
si zp = d, D=d , d
x
=0, d
y
=0, d
z
=-1
M
per
si zp = 0, D=d , d
x
=0, d
y
=0, d
z
=-1
M
orto
si zp = 0, D= , d
x
=0, d
y
=0, d
z
=-1

Si D no es infinito M
gral
define una proyeccin con un
punto de fuga
Se puede ver que M
gral
produce la perspectiva
Caballera si zp = 0, D= , d
x
=coso, d
y
=sino, d
z
=-1
Cabinet si zp = 0, D= , d
x
=coso/2, d
y
=sino/2, d
z
=-1

Ntese que en todos estos casos el plano de
proyeccin es perpendicular al eje z.
(
(
(
(
(
(
(
(
(
(

+
+

=
1
1
0 0
0 0
1 0
0 1
2
gra
z
p
z
p
z
p
z
p
z
y
p
z
y
z
x
p
z
x
l
Dd
z
Dd
z
Dd
z
Dd
z
d
d
z
d
d
d
d
z
d
d
M
2002 J.C.Drsteler - UPF- IUA
Visualizacin 3D
Proyeccin
Los objetos se describen en coordenadas del mundo
Las transformaciones geomtricas nos permiten
posicionarlos y moverlos.
Adems hay que establecer la proyeccin que nos
permita captar la vista. Situar la cmara.
Para representar una primitiva hay que
Aplicar al objeto una transformacin geomtrica que lo sita
en el espacio.
Dependiendo de la posicin y orientacin del espectador se
transforman las coordenadas al espacio visual
Se proyecta sobre la pantalla
2002 J.C.Drsteler - UPF- IUA
Vistas 3D
La visualizacin 3D
precisa
Definicin de los
parmetros
Recortado contra un
volumen 3D
Cambio de sistema de
coordenadas
Proyeccin sobre el
plano
PHIGS
Punto de referencia (View
reference Point VRP)
R = (R
x
,R
y
,R
z
)
Normal al plano de
proyeccin (View Plane
Normal VPN) N = (N
x
,N
y
,N
z
)
Distancia al plano de
proyeccin (View Plane
Distance VPD), D
Vector vertical (View Up
Vector VUP) define la vertical
V = (V
x
,V
y
,V
z
)
2002 J.C.Drsteler - UPF- IUA
Especificacin
gluLookAt(ojo(x,y,z),centro(R
x
,R
y
,R
z
),vert ((V
x
,V
y
,V
z
)))
glfrustum(izq, der, arriba, abajo, cerca, lejos)
glortho (izq, der, arriba, abajo, cerca, lejos)

R
Ojo,
Camara
Vertical
2002 J.C.Drsteler - UPF- IUA
Especificacin
gluLookAt(ojo(x,y,z),centro(R
x
,R
y
,R
z
),vert ((V
x
,V
y
,V
z
)))
glfrustum(izq, der, arriba, abajo, cerca, lejos)
glortho (izq, der, arriba, abajo, cerca, lejos)

Arriba
Abajo
Izquierda
Derecha
2002 J.C.Drsteler - UPF- IUA
Especificacin
gluLookAt(ojo(x,y,z),centro(R
x
,R
y
,R
z
),vert ((V
x
,V
y
,V
z
)))
glfrustum(izq, der, arriba, abajo, cerca, lejos)
glortho (izq, der, arriba, abajo, cerca, lejos)

Arriba
Abajo
Izquierda
Derecha
2002 J.C.Drsteler - UPF- IUA
Tubera de trazado
Coordenadas
objeto 3D
Posicionado
Visualizacin
Proyeccin
Recorte
Viewport
Coordenadas 2D o 3D
para Z-buffer)
recortadas y
proyectadas
Coordenadas
normalizadas 2D
Coordenadas del
dispositivo 2D
Coordenadas
observador
Conversion
a NDC