Vous êtes sur la page 1sur 9

Transformaciones 3D

Introduccin
1. Uso del espacio proyectivo:
A3 -- (w=1) --> P3 -- (transformacin en P3) --> P3 -- (normalizar: 1/w) --> A3
2. Sistemas de coordenadas dextrgiros y levgiros
Transformaciones bsicas
1. Traslacin

2. Escalado centrado en el origen

3. Reflexin respecto del plano XY

4. Cizalla

Rotaciones respecto de los ejes


1. Regla de la mano derecha o del sacacorchos para sentido positivo del ngulo
2. Al rotar un punto, se mantiene en el plano perpendicular al eje de rotacin en que se
encontraba y a la misma distancia del eje
3. Rotacin respecto del eje OZ

4. Rotacin respecto del eje OY

OJO! al signo de

5. Rotacin respecto del eje OX

Rotacin respecto de un eje arbitrario


1. Si eje paralelo a un eje coordenado

2. Si eje arbitrario definido por dos puntos P1 y P2


1. Se traslada eje al origen

2. Se lleva el eje sobre el eje OZ


1. Se lleva eje a plano XZ mediante giro en torno a eje OX

2. Se lleva eje sobre eje OZ mediante giro en torno a eje OY

3. Se efecta la rotacin (respecto de eje OZ)

4. Se lleva el eje a su posicin original


Visualizacion
Introduccin
La visualizacin tridimensional se puede asimilar al proceso que se sigue al hacer una foto,
salvo que resulta ms conveniente considerar que la lente se encuentra detrs de la pelcula en la
cmara.
El clculo de las transformaciones necesarias para llevar a cabo la visualizacin 3D se puede
dividir en tres partes:

1. la definicin de la proyeccin;
2. el cambio de coordenadas para pasar a un sistema referido al plano de proyeccin;
3. la proyeccin respecto a un punto, real (propio) o ideal (impropio), expresada en
coordenadas ligadas al plano de proyeccin.
Definicin de la proyeccin
La proyeccin se define mediante los siguientes parmetros de visin:
1. Punto de referencia (view reference point): un punto del espacio, normalmente
cercano al objeto que se desea visualizar. Lo denotaremos por R=(Rx,Ry,Rz).
2. Normal al plano de proyeccin (view plane normal): el vector normal al plano de
proyeccin que apunta del plano de proyeccin al punto de referencia. Asumimos que
este vector es unitario y lo denominamos N=(Nx,Ny,Nz).
OJO! N ha de ser unitario.
3. Distancia al plano de proyeccin (view distance): la distancia desde el plano de
proyeccin al punto de referencia, que denotaremos por D.
4. Vector "vertical" (view up vector): un vector que define la direccin vertical (de
sentido "hacia arriba") al proyectarse sobre el eje (OY) del plano de proyeccin.
Normalmente este vector se corresponder con lo que se considera que es la direccin
vertical (qu est arriba y qu abajo) del objeto a visualizar. Lo denotaremos por
U=(Ux,Uy,Uz).
Cambio a coordenadas para pasar a un sistema de referencia ligado al plano de proyeccin
Resulta conveniente describir la proyeccin en un sistema de coordenadas referido al plano de
proyeccin. Recurdese que, al cambiar de sistema de coordenadas, las transformaciones sern
las inversas de las descritas en las clases de teora: no se mueven los objetos respecto a los ejes,
sino todo lo contrario.
1. Primero trasladamos el origen a la proyeccin ortogrfica del punto de referencia sobre
el plano de proyeccin: i.e., llevamos el punto de referencia proyectado, (R x-D*Nx,RyD*Ny,Rz-D*Nz,1), al origen. La matriz de traslacin correspondiente es:
2.

3. Despus hacemos coincidir N con la direccin -OZ.


Quiz se vean ms claras las matrices de rotacin pensando en llevar N a +OZ primero,
y en cambiar Ni por -Ni despus, o bien en llevar -N a +OZ.
Para ello:
1. Rotamos en torno al eje (OX) para llevar N al plano (XZ). Esto equivale a
multiplicar por:

donde V=(Ny2+Nz2)1/2 es el mdulo de la proyeccin de N sobre el plano (YZ).


OJO! Si V=0, entonces Qx es la identidad (N es paralelo al eje (OX), y por
tanto ya est en el plano (XZ))
2. Despus llevamos el nuevo N, (Nx,0,V), sobre -OZ, para lo cual rotamos
respecto al eje (OY) multiplicando por:

3.

4. Tras estas transformaciones, tenemos un sistema de coordenadas cuyo plano (XY)


coincide con el plano de proyeccin y cuya direccin -OZ coincide con N, es decir, va
del origen al punto de referencia. Queda ahora por determinar cules son las direcciones
OX e OY (en realidad, con determinar una de ellas basta, dado que {x,y,z} debe ser un
triedro directo o dextrgiro).
5. La direccin +OY viene dada por la proyeccin del vector U sobre el plano de
proyeccin, que se desea est orientada segn el eje (OY) y tenga componente y>0.
Primero debemos encontrar las coordenadas de este vector en el sistema de referencia
ligado al plano de proyeccin: si las denominamos (UVx,UVy,UVz), se debe cumplir:
(UVx,UVy,UVz,0) = (Ux,Uy,Uz,0) * Qx * Qy.
6. Denotando el mdulo de la proyeccin de ese vector sobre (XY) por
RUP=(UVx2+UVy2)1/2, es fcil ver ahora que la rotacin respecto al eje (OZ) necesaria
para llegar al sistema de coordenadas final viene dada por la matriz siguiente (ntese
que (UVx,UVy,UVz) pasa a estar en la direccin positiva de (OY)):

7. La matriz de transformacin al nuevo sistema de coordenadas queda entonces as:


CCM = T * Qx * Qy * Qz.
Proyeccin
Sea (Px,Py,Pz,Pw) el centro de proyeccin (Pw=0 para proyeccin paralela), que debe encontrarse
en el semiespacio, de los dos separados por el plano de proyeccin, que no contiene al objeto
(por eso la analoga de la cmara con la lente tras la pelcula). Es ms conveniente especificar el
centro de proyeccin respecto al nuevo sistema de coordenadas referido al plano de proyeccin;
sus coordenadas en este sistema de referencia son:
(Cx,Cy,Cz,Cw) = (Px,Py,Pz,Pw) * CCM.
Tras cambiar al sistema de coordenadas referido al plano de proyeccin, el producto C w*Cz ser
no negativo y el objeto tendr coordenadas negativas. Si C w=0, debemos asegurarnos de que Cz
sea positiva, multiplicando por -1 el CP en caso necesario (ntese que C z=0 no tiene sentido).
La matriz de proyeccin es entonces:

,
donde, si Cw=0, la componente PM33 debe ser -1.
La tercera columna de la matriz PM no es necesaria para definir la proyeccin propiamente
dicha, ya que la coordenada z ser igualada a 0 al proyectar sobre el plano de proyeccin. Sin
embargo, esta coordenada se mantiene en los clculos para que pueda ser usada por las rutinas
de eliminacin de superficies ocultas, que se basan en que los puntos con una z menor (mayor

en valor absoluto, ya que todas son negativas) se encuentran ms alejados del plano de
proyeccin.
La matriz de transformacin que define la proyeccin completa es, finalmente:
FT = CCM * PM = T * Qx * Qy * Qz * PM.

1. Encontrar la matriz correspondiente a la transformacin que efecta una


reflexin respecto de un punto

Solucin:
Los pasos a seguir son:
1. Trasladar el punto al origen:

2. Reflejar respecto del origen:

3. Volver a dejar el centro de reflexin en su posicin original:

La transformacin total queda entonces:

Se puede comprobar que el centro de reflexin


transformacin.

queda invariante bajo la

2. Calcular el punto de fuga del cubo unidad con vrtices opuestos en el origen
y en el punto

bajo la proyeccin sobre el plano

de proyeccin:

con centro

Solucin:
El punto de fuga es aquel en que convergen las lneas del cubo no paralelas
(perpendiculares) al plano de proyeccin al ser proyectadas.
Para calcularlo basta transformar el punto impropio, o ideal, donde estas lneas
se unen:

La matriz de proyeccin con prewarping es:

Al aplicarle la matriz al punto

que al proyectar al plano

resulta:

queda el punto

Tambin lo podamos haber calculado directamente como la interseccin de la


recta paralela a la direccin
(la de las rectas paralelas que van a
converger al proyectarse) que pasa por el centro de proyeccin con el plano de
proyeccin; es decir, la proyeccin del punto del infinito donde se unen las
rectas del cubo no paralelas al plano de proyeccin. Esta recta pasa por

y tiene por vector director


interseccin con el plano

; es evidente que su

) es el punto

3. Encontar el volumen de visin, antes y despus del prewarping,


correspondiente a una proyeccin sobre el plano

con centro de

proyeccin en el punto
, ngulos de visin horizontal y
vertical de
, y planos de recorte delantero y trasero situados en
y

Solucin:
Ntese que partimos de la situacin en que se ha cambiado de sistema de ejes
coordenados, justo antes de efectuar el prewarping.
El volumen de visin, antes de hacer prewarping, viene dado por la interseccin
de los planos:
1. Izquierdo (L): paralelo al eje
el eje

(el vector normal es

2. Derecho (R): paralelo al eje


el eje

(el vector normal es

3. Superior (T): paralelo al eje


el eje

(el vector normal es

, forma un ngulo de

grados con

), y pasa por

, forma un ngulo de
), y pasa por

, forma un ngulo de
), y pasa por

grados con
:

grados con
:

4. Inferior (B): paralelo al eje


el eje

, forma un ngulo de

(el vector normal es

grados con

), y pasa por

5. Delantero (F):
6. Trasero (Bk):
La interseccin de L con F es una recta paralela al eje

Anlogamente, la de R con F es
de B con F

la de T con F

y la

Las intersecciones con Bk son, en el mismo orden:


,

Hallando las intersecciones de estas rectas se hallan los vrtices del


paraleleppedo que define el volumen de visin:

.
La matriz de prewarping es:

y al aplicrsela a los puntos anteriores quedan:

que evidentemente forman una caja.

Vous aimerez peut-être aussi