Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Animación Computarizada
Hoy en día ignoramos que las matemáticas están implícitas en cualquier aspecto de nuestra vida diaria,
desde que nos levantamos y consultamos la hora del reloj despertador, hasta que nos vamos a dormir y como
estudiantes calculamos las horas que quedan de sueño.
En la ingeniería sin embargo las matemáticas van más allá, puesto que para obtener y utilizar la tecnología,
de debe contar en un principio por estas poderosas herramientas.
Un caso particular y en el cual nos concentraremos será en las animaciones por computadora. Usted se
preguntaría ¿qué tienen que ver las matemáticas con la animación? Y la respuesta es : todo.
Una rama particular de las matemáticas, permite realizar diseños de personajes tridimensionales en un plano
bidimensional y con herramientas de programación hacer que dichos diseños tengan movimiento, y esta rama
es el Álgebra lineal.
La animación computarizada es una ciencia ecléctica que combina de manera singular: matemática, ciencia
de la computación, arte, animación clásica, física, biomecánica y anatomía, por nombrar sólo algunos
campos. Los algoritmos dependen fuertemente en técnicas de computación científica, estadística,
procesamiento de señales, álgebra lineal, teoría de control, y geometría computacional.
Animar objetos en su forma más básica consistirá en multiplicar matrices, y algo muy importante es el orden
en el que realicemos estas multiplicaciones. Si no realizamos las multiplicaciones en el orden correcto,
nuestro modelo 3D sin duda se moverá de forma cuanto menos "rara" o inesperada. Este problema se
soluciona recordando el orden que hay que aplicar, que siempre va a ser el mismo, partiendo de la matriz
identidad:
Escalar el modelo
Rotar el modelo sobre su propio eje
Rotar el modelo sobre un punto externo
Trasladar el modelo
Toda la geometría que se despliega en las aplicaciones Open GL está basada en los conceptos de Matrices y
Vectores y las operaciones aritméticas aplicables a estas estructuras.
En Open GL existen básicamente tres matrices principales:
Una matriz de proyección llamada GL_PROJECTION, la cual nos permite determinar la perspectiva que
usaremos para observar la escena generada, así como el tipo de proyección a usar (esto tiene que ver mucho
con cuestiones de óptica y de geometría, y abordaremos este tema en otra ocasión más específicamente, ya
que es bastante extenso y complejo). Esta matriz tiene una gran relación con otro concepto también muy
interesante llamado clipping, que consiste en recortar u ocultar todo aquello que
“está pero no se ve”, es decir lo que queda fuera del foco de nuestra cámara o nuestro campo visual activo,
este es un proceso que se hace automáticamente una vez, habiendo inicializado pertinentemente esta matriz.
Una matriz de Modelado llamada GL_MODELVIEW, donde ésta es la matriz que usaremos para aplicar a
nuestra escena operaciones de rotación, traslación o escalamiento, o bien para manipular la posición y
orientación de la cámara, para obtener así las animaciones. La figura 2 muestra algunos ejemplos de matrices
de transformación lineal para el caso de sistemas de 3 dimensiones
Y una última matriz para el manejo de Texturas llamada GL_TEXTURE, sobre la cual también podemos
aplicar las transformaciones lineales de rotación, traslación y escalamiento para manipular las texturas a
utilizar en las figuras de nuestra escena, cuando estemos más avanzados explicaremos mas a detalle el
manejo de texturas en nuestros programas
Los vectores son un conjunto de valores que nos permiten definir dentro de nuestra escena, desde los
vértices de las figuras, hasta los colores, los materiales y las luces, entre otras muchas cosas. Existen
básicamente dos formas de trabajar con vectores en Open GL, con sus elementos como variables
independientes, o manejarlos como una estructura de datos. Cuando trabajamos sus elementos de forma
independiente cada vector es descompuesto en 3 ó 4 valores según sea el caso. Y cuando se maneja como
una estructura estos valores están contenidos en una estructura de datos que bien puede ser un arreglo o un
registro.
A continuación se muestra una ligera explicación de la creación de un conocido personaje de la saga Star
Wars utilizando herramientas del álgebra lineal y un programa llamado
MAPLE. Maple da un toque “fuera de este mundo” a la enseñanza
matemática. Software matemático utilizado para digitalizar al personaje
de Yoda en la guerra de las galaxias.
Las potentes capacidades interactivas de los gráficos 3D en Maple añaden más dimensiones a la exploración.
Los usuarios pueden rotar, escalar o trasladar la imagen interactivamente, pueden tratar diferentes modelos
de iluminación, niveles de brillo y transparencia para hacer tu modelo personalizado de Yoda.
La Digitalización de Yoda
Yoda apareció por primera vez en la saga de Star Wars en 1980, The Empire Strikes Back. En esta película,
Yoda estaba representado por un muñeco, su voz y
movimientos estaban controlados por Frank Oz. Más
recientemente el personaje fue producido mediante una
animación computarizada, empleando conceptos matemáticos
pertenecientes a las ramas del álgebra lineal, cálculo,
ecuaciones diferenciales y análisis numérico.
Cuando se desea realizar una proyección tridimensional de alguna figura, se debe de considerar la
pantalla de proyección como el plano bidimensional (x,y); y en base a este colocar un sistema de
coordenadas tridimenssional (x,y,z) ,cuya orientación coincida con la del primero; es decir, con z
dirigido hacia afuera de la pantalla.
Debido a que una figura está formada de diversos segmentos de recta unidos enntre sí, es
necesario conocer las coordenadas de dichas uniones que se almacenan en la memoria del
sistema.
Esta matriz puede transformarse en otras dependiendo de la vista que quisiéramos. Debemos
notar que los segmentos de recta que conectan los diferentes puntos se mueven con los puntos
cuando estos últimos son transformados. De esta forma, cada vista tiene su matriz única.
Existen diversos tipos de transformaciones:
Escalamiento
Ejemplo.
Usando la matriz de coordenadas P, que contiene las coordenadas de todos los n puntos de la
vista original como sus columnas, es posible transformar estos n puntos simultáneamente para
producir la matriz coordenadas P’ de la vista escalada como sigue:
La nueva matriz de coordenadas se puede introducir entonces en el sistema de despliegue de
video para producir la nueva vista del objeto. Como un ejemplo, la vista 2 es la vista 1 escalada al
hacer =1.8, 0.5 y =3.0. Advertir que el escalamiento =3.0 a lo largo del eje z no es visible en
la vista 2, ya que lo único que se ve es la proyección del objeto sobre el plano xy.
Traslación.
Es posible trasladar los n puntos de la vista determinada por la matriz de coordenadas P por suma
de matrices mediante la ecuación
P’ = P + T
La matriz de coordenadas P’ especifica entonces las nuevas coordenadas de los n puntos. Por
ejemplo, si se quiere trasladar la vista 1 de acuerdo con el vector de traslación.
El resultado es la vista 3. Advertir, de nueva cuenta, que la traslación z0=1.7 a lo largo del eje z no
aparece explícitamente en la vista 3.
Rotación
Un tipo más complicado de transformación es la rotación de una vista alrededor de uno de los tres
ejes de coordenadas. Se empieza con una rotación alrededor del eje z (el eje perpendicular a la
pantalla) a través del ángulo t. Dado un punto P, en la vista original con coordenadas (xi, yi, zi) se θ
quiere calcular las nuevas coordenadas (xi’, yi’, zi’) del punto rotado Pi’. De acuerdo con la
siguiente figura podemos deducir lo siguiente:
zi’= zi
P’ = RP
Las rotaciones alrededor de los ejes x y se pueden llevar a cabo de manera análoga, y las matrices
de rotación resultantes se dan en las vistas 4, 5, 6. Estas tres nuevas vistas de la pirámide truncada
corresponden a rotaciones de a vista 1 alrededor de los ejes x, y, z respectivamente, cada una de
ellas a través de un ángulo de 90°.
Las rotaciones alrededor de los tres ejes de coordenadas se pueden combinar para obtener vistas
oblicuas de un objeto. Por ejemplo, la vista 7 es la vista 1 rotada 30° alrededor del eje x, después -
70° alrededor del eje y, por último, -27° alrededor del eje z. matemáticamente, estas tres
rotaciones sucesivas se pueden sintetizar en la ecuación de la trasformación P’ = RP, donde R es el
producto de las tres matrices de rotación individuales:
En el orden:
Ejemplos:
Figura 1
a) b)
c)
d)
2)
a) ¿Cuáles son las coordenadas de los cuatro vértices del cuadrado con el deslizamiento cortante
de la figura 2?
Figura 2
con respecto al a coordenada x. Trazar una vista del cuadrado de la figura 1 después de someterlo
al deslizamiento cortante descrito y encontrar las nuevas coordenadas de los cuatro vértices
a) (0,0,0),(1,0,0),(1½,1,0) y (½,1,0)
b) (0,0,0),(1,6,0),(1,1,6,0) , (0,1,0)
3) a) La reflexión respecto al plano xz se define como la transformación que lleva un punto (x i, yi,
zi) al punto (xi,-yi, zi). Si P y P’ son las matrices de coordenadas de una vista y su reflexión respecto
al plano xz, respectivamente, encontrar una matriz M tal que P’=MP.
[1 0 0] [-1 0 0]
a) [0 -1 0] b) [0 1 0]
[0 0 1] [0 0 0]
[1 0 0]
c) [0 1 0]
[0 0 -1]
Construir las 5 matrices M1, M2, M3, M4, M5 asociadas con estas 5 transformaciones.
[½ 0 0]
M1= [0 2 0]
[0 0 ⅓]
[½ ½ .... ½]
M2= [0 0 ... 0]
[0 0 ... 0]
[1 0 0 ]
[0 sen20º cos20º]
M4= [ 0 1 0 ]
M5= [1 0 0]
[0 0 1]