1 Este trabajo, se limita específicamente ... representación y aplicación de la ...

Anuncio
1
Orientation & Quaternions
Guillermo Heuer, Reinaldo Chacón.

Abstract—El presente informe resume los conceptos más
importantes para hablar del tema de rotaciones en animaciones
3D donde los metodos mas importantes son angulos de euler,
matrices de rotacion, slerp y quaternions.
I. INTRODUCTION
E
el mundo de las animaciones 3D se necesitan
representar la mayor cantidad de movimientos que pueden
hacerse en la realidad y con la mejor aproximación posible;
uno de los movimientos más importantes es rotar un objeto
como por ejemplo un avión alrededor de diferentes ejes.
N
Durante el presente informe se explicaran los distintos
métodos existentes para representar rotaciones en tres
dimensiones y la mejor manera para interpolarlas y permitir
rotaciones deseadas lo mejor ajustadas a la realidad .
II. ANIMACION
La animación ha sido históricamente de dos maneras: la
primera es la de los artistas, la creación de una sucesión de
cuadros de dibujos animados que se combinan en una película;
y la segunda forma es mediante el uso de modelos físicos, por
ejemplo King Kong, el cual se posiciona en un lugar, se le
realiza un movimiento al modelo, la imagen de graba y el
proceso se vuelve a realizar.
Es del segundo método del cual nos vamos a interesar.
Dentro de este, hay que resaltar el uso de la técnica de los
fotogramas claves (key framing, el cual se empezó a utilizar
en 1971 para animación de modelos en 3D). Un fotograma
clave marca el punto en el que se especifica un valor, como
por ejemplo la posición en el espacio. Los valores entre los
fotogramas clave se interpolan. Al utilizar fotogramas clave
para crear un cambio a lo largo del tiempo, se debe utilizar
como mínimo dos fotogramas clave: uno para el estado al
comienzo del cambio y otro para el nuevo estado al final del
cambio.
La técnica del los fotogramas claves fue el avance que dio
el uso de computadora en la animación, pues ahora el cálculo
de los fotogramas intermedios que antes se dibujaban, serían
calculados por interpolación de forma automática, sólo
colocando los estados necesarios.
Este trabajo, se limita específicamente a los métodos de
representación y aplicación de la rotación en la animación,
haciendo especial énfasis en el método de cuaterniones
(quaternions).
III. ORIENTACION
Para poder definir la rotación de un objeto es necesario
definir dos cosas: la posición en la cual se encuentra y la
orientación que llevara a cabo esta transformación geométrica,
pues realmente esta dependerá de la parametrización espacial
de todas las posibles orientaciones del objeto.
La orientación de un objeto en el espacio es cada una de las
posibles elecciones para colocarlo sin cambiar un punto fijo de
referencia. Puesto que el objeto con un punto fijo puede
todavía ser rotado alrededor de ese punto fijo, la posición del
punto de referencia no especifica por completo la posición,
por tanto para especificar completamente la posición
necesitamos especificar también la orientación. La orientación
puede visualizarse añadiendo una base vectorial ortogonal al
punto de referencia del objeto, diferentes bases representarían
diferentes orientaciones.
IV. ANGULOS DE EULER
Históricamente, la más popular parametrización de
orientación espacial fue establecida en términos de los ángulos
de Euler, donde una rotación general se describe como una
secuencia de rotaciones alrededor de tres ejes de coordenadas
mutuamente ortogonales fijo en el espacio, teniendo en cuenta
que las rotaciones se aplican al espacio y no a los ejes, en
palabras más sencillas, que cualquier rotación o conjunto de
rotaciones sucesivas puede expresarse siempre como una
rotación alrededor de una única dirección o eje de rotación
principal. De este modo, toda rotación (o conjunto de
rotaciones sucesivas) en el espacio tridimensional puede ser
especificada a través del eje de rotación equivalente definido
vectorialmente por tres parámetros y un cuarto parámetro
representativo del ángulo rotado. Generalmente se denominan
a estos cuatro parámetros grados de libertad de rotación. Este
método posee 3 ángulos de libertad.
Esto significa que puede representar una orientación con 3
números. Suponiendo que nos limitamos a 3 rotaciones sin
rotaciones sucesivas sobre el mismo eje, se podría utilizar
2
cualquiera de los siguientes secuencias: XYZ, XZY, XYX,
XZX, YXZ, YZX, YXY, YZY, ZXY, ZYX, ZXZ, ZYZ. Esto
nos da 12 formas redundantes para almacenar una orientación
utilizando los ángulos de Euler.
V. SLERP
Se refiere al movimiento de velocidad constante a lo largo
de una unidad de radio de arco de círculo máximo, habida
cuenta de los extremos y un parámetro de interpolación entre 0
y 1. Es un método de interpolación entre dos puntos de una
esfera unitaria.
Esta tal vez es el mejor método que hay para generar la
interpolación de la rotación, sin embargo el problema que
posee es lo lento que se ve la rotación por el nivel de detalle
generado por esta rotación.
VI. MATRICES DE ROTACION
Cambiar la orientación es equivalente a girar los ejes
coordenados.
Sin embargo, el uso de ángulos de Euler en la rotación de
objetos en 3D posee dos problemas: el primer problema es el
de establecer una orientación arbitraria utilizando ángulos de
Euler, esto no es posible, y el segundo es más un profundo
problema matemático el momento de realizar una
interpolación de orientación.
El uso de matrices de 3x3 para representar una orientación
genera 9 números en lugar de los 3 que generan los ángulos de
Euler, y por lo tanto, disponemos de 6 grados de libertad extra,
lo cual da la posibilidad de establecer más ángulos arbitrarios
que no eran posibles con el método de Euler.
Gimbal Lock: Es la pérdida de un grado de libertad que se
produce cuando dos de los ejes se colocan en un mismo lugar,
lo cual no puede compensar la rotación alrededor de un eje en
un espacio tridimensional. Aunque los tres ejes todavía pueden
girar libremente, debido a la orientación en paralelo de dos de
los ejes en gimbal lock, no hay eje de rotación disponible para
rotar en la dirección que falta.
Interpolación con angulos de Euler: Al momento de
realizar interpolaciones es necesario indicar las orientaciones
inicial y final del objeto, todo esto en base a un eje de
referencia que puede ser distinto al del objeto y más aun puede
tener una orientación distinta por lo cual al momento de
realizar la interpolación los cálculos pueden resultar en algo
inesperado debido a los cambios de orientación aleatorios que
pueden resultar de escoger un eje de referencia mal ubicado.
En angulos de Euler este problema se acentúa debido a que
es necesario los ejes de rotación ya que el método los utiliza y
es a través de estos por los cuales rota.
Las matrices son usualmente la forma más eficiente
computacionalmente para aplicar rotaciones a los datos
geométricos, pero estas traen problemas de almacenamiento y
más aun generan un cambio de la malla, y por ende del
tamaño, del objeto.
VII. QUATERNIONS
El método que permite solucionar los problemas hasta ahora
planteados fue el inventado por W. R. Hamilton en 1843, los
cuaterniones. Un cuaternión se forma como un vector de
cuatro dimensiones cuya base son los números complejos (1, i,
j, k), entonces, un cuaternión es una combinación lineal q = ai
+ bj + ck +d, donde a,b,c (componentes imaginarios) y d
3
(componente real) son escalares.
La ventaja que tienen los cuaterniones con respecto a los
métodos antes mencionados son:
1.- La representación de una rotación es más compacta en
un cuaternión (4 números) que en una matriz ortogonal (9
números).
2.- Más sencillo de interpretar.
3.- Permite hacer “rotaciones suaves”.
4.- Robusto a errores de redondeo en la concatenación de
rotaciones.
5.- No hay “gimbal lock”.
6.- La operación de multiplicación es conmutativa, cosas
que las matrices no es posible.
VIII. COMPARACION DE RENDIMIENTO
En esta sección se mostraran cuadros que comparan los
métodos desde el punto de vista computacional con criterios
de almacenamiento y operaciones que cada uno debe realizar
para movimientos de rotación.
1.- Requerimientos de almacenaje
Los cuaterniones trabajan en cuatro dimensiones sobre un
espacio de rotación llamado hiperesfera construido de la
siguiente manera, primero se tiene una rotación de cero grados
llamada rotación identidad representada como un punto en el
centro del espacio de rotaciones, luego cualquier rotación
siguiente diferente a cero grados construyen pequeñas esferas
concéntricas alrededor de la rotación identidad donde el radio
de la esfera está relacionado con la magnitud de la rotación, a
mayor ángulo de rotación más alejado se estará de la rotación
identidad.
Método
Almacenaje
Matrices de Rotación 9
Cuaternion
4
Angulos de Euler
4*
4
2.- Operaciones de rotación en cadena.
REFERENCES
[1]
Método
Multiplicaciones Sumas/Restas Total
[2]
[3]
[4]
Matriz de Rotación 27
18
45
Cuaternion
12
28
16
3.- Operaciones de rotación con vectores.
Método
Matriz de
Rotación
Multiplicaciones Sumas/Restas Sin/Cos Total
9
6
0
15
Cuaternion 21
18
0
39
Euler
16
2
41
23
IX. CONCLUSIONES
Luego de estudiar los distintos métodos para representar
rotaciones en tres dimensiones se puede apreciar las grandes
diferencias entre cada uno tanto en la forma de realizar los
cálculos como la forma grafica de realizar los cambios de
orientación.
Los angulos de euler son el primer método que se utilizo
para realizar rotaciones siendo estas fáciles de representar pero
solo permitiendo rotar en los tres ejes y puede traer problemas
de gimbal lock asi como que la interpolación lineal puede
tener cambios de velocidad notables lo cual soluciona el
método de slerp manteniendo constante la velocidad de
rotación a través de toda la interpolación.
Otro método también muy utilizado son las matrices de
rotación por su eficiencia computacional pero almacenan
muchos datos comparado con otros métodos.
Los cuaterniones proporcionan una forma compacta y
eficiente numéricamente de realizar rotaciones arbitrarias con
solo la dirección y el numero de grados necesarios siendo una
de las técnicas más utilizadas en la actualidad para mecánica,
realidad virtual y animaciones entre otros.
[5]
[6]
Watt Alan, Watt Mark. “Advance Animation and Rendering
Techniques” Ed. Addison-Wesley.
Quaternion, http://en.wikipedia.org/wiki/Quaternion, 2010.
Quaternion & Spacial Rotation.
http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation, 2010.
Dam Erik, Koch Martin, Lillholm Martin. “Quaternions, Interpolation
and Animation”. July 17, 1998.
Rotenberg Steve. “Orientation & Quaternions”. 2005.
McMillan Leonard, Popovic Jovan. “Computer Animation II”. 2003.
Descargar