Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Animacion 3D
Animacion 3D
Informtica
Universitat de Valncia
TEMA 5 : ANIMACIN 3D
Podemos considerar que una animacin describe el cambio de una imagen a lo largo del tiempo, con
el suficiente nmero de fotogramas por segundo para dar un efecto de continuidad. Existen diversas
tcnicas que intentan conseguir este objetivo. A grandes rasgos podemos dividirlas en dos, las de
animacin clsica y las de animacin de sntesis por ordenador. Esta ltima, a su vez, puede basarse en
una representacin 2D 3D de los objetos (aunque el resultado final ser siempre, obviamente,
bidimensional).
La animacin clsica genera la secuencia de imgenes por mtodos pictricos, lo que entendemos
por una imagen dibujada, formada por pixeles cuya coloracin se asigna manualmente o
semiautomticamente, por mecanismos sencillos guiados de forma manual (por ejemplo, sistemas de
relleno automtico). No emplea ningn tipo de sntesis para conseguir efectos de profundidad y
perspectiva, sino que es labor de los dibujantes conseguir estas sensaciones por tcnicas manuales. Las
imgenes deben generarse una por una, aunque esta tarea suele distribuirse en varios niveles; separando
el dibujo de momentos claves en la accin de los personajes, el dibujo de los fondos (que usualmente no
cambian de un fotograma a otro) y las tareas de interpolacin y coloreado de cada imagen.
La animacin de sntesis por ordenador crea las imgenes por un proceso automtico a partir de
una representacin de los objetos que forman parte de la escena y de su movimiento. Este modelo de los
objetos puede ser bidimensional, con lo cual el resultado se parece ms a la animacin tradicional, o
puede basarse en una representacin 3D, a partir de la cual pueden aplicarse mtodos realistas de
sombreado, simulacin fsica, etc.
En este curso vamos a centrarnos en las distintas tcnicas de animacin sinttica 3D, basndonos en
los conocimientos sobre representacin de objetos y visualizacin que ya hemos desarrollado. Tenemos
que describir, por tanto, qu tcnicas son utilizadas para describir los cambios de todo tipo que sufre una
escena tridimensional a lo largo del tiempo. Una animacin de sntesis siempre funciona evaluando el
estado de la escena y del observador para el instante correspondiente a cada fotograma y calculando la
imagen correspondiente mediante alguno de los mtodos de visualizacin existentes.
Si los fotogramas se van generando a partir de una especificacin previa y se van almacenando en
ficheros (o en un fichero nico para toda la animacin) o en cualquier otro soporte analgico o digital,
hablaremos de una animacin fotograma a fotograma u animacin off-line. Esta es la nica forma de
conseguir animaciones finales de gran calidad, dado que el tiempo de cmputo de cada fotograma puede
oscilar entre unos pocos segundos y varias horas.
Una situacin diferente se produce cuando el proceso que crea la animacin va mostrando los
fotogramas inmediatamente despus de producirlos, permitiendo al usuario responder inmediatamente y
teniendo en cuenta estas respuestas en la sntesis de imgenes. En este caso, que podemos llamar
animacin interactiva o animacin on-line, la frecuencia de presentacin de las imgenes (frecuencia de
refresco o frame rate) viene determinada por la velocidad de cmputo, que a su vez depende de la
potencia del equipo y la complejidad de la escena.
Cuando las restricciones temporales de la animacin interactiva son relativamente estrictas se habla
de animacin en tiempo real, concepto que desarrollaremos en el siguiente tema, y si adems se
desarrolla algn tipo de simulacin encargada de actualizar el estado de la escena en cada momento
teniendo en cuenta posiblemente las acciones del usuario del programa (por ejemplo, mover el ratn para
indicar en qu direccin quiere moverse), entonces hablaremos de simulacin en tiempo real.
77
Tema 5: Animacin 3D
de los objetos y fuentes de luz, sus propiedades, y tambin la posicin y caractersticas del observador o
cmara. Se adapta as la idea de la animacin tradicional en la que el dibujante experto traza en blanco y
negro las siluetas de los personajes en los momentos clave, para que posteriormente los interpoladores se
encarguen de generar las imgenes intermedias. En la animacin de sntesis la interpolacin en el tiempo
se efectuar a partir de los valores que determinan los fotogramas clave (posiciones, orientaciones,
velocidades, propiedades) mediante algn algoritmo automtico. Este proceso de interpolacin es
clave, ya que debe producir un resultado coherente, de apariencia natural, sin que aparezcan saltos
bruscos o cambios extraos (en algunos casos no es fcil realizar una interpolacin correcta, por ejemplo
en los movimientos de figuras articuladas como el cuerpo humano).
Para conseguir aproximarse ms a los efectos deseados, el diseador de la animacin puede insertar
mayor nmero de fotogramas clave (con menos separacin temporal entre ellos). Adems de dar los
valores que definen estticamente cada fotograma clave (p.ej. las posiciones), el diseador puede tambin
indicar cul es el valor de ciertas variables dinmicas (p.ej. velocidades), lo que le otorgar un mayor
grado de control sobre la interpolacin.
La representacin ms formal de una animacin por keyframes sera el llamado diagrama de
movimiento o motion graph: una grfica en la que aparecen los valores de cada una de las variables que
definen la escena y su variacin con el tiempo:
KF1
var x
KF2
var y
t
Asociado al diagrama bsico que muestra la evolucin de las variables con el tiempo podemos tener
otros en los que se relacionan unas variables con otras. Por ejemplo, la trayectoria de un mvil puede
verse nicamente en funcin de sus componentes espaciales (ver figura a la izquierda) o a travs de la
relacin de ambas coordenadas espaciales con el tiempo (ver a la derecha):
x
trayectoria
movimiento
dx dy
, , y su mdulo ser la rapidez de
dt dt
Para construir los valores intermedios de las variables a partir de los keyframes necesitamos una
funcin de interpolacin con buenas propiedades y a la vez poco costosa de evaluar. Se suelen emplear
curvas paramtricas, ya que tienen un comportamiento suave y son controlables (como se coment,
cumplen la propiedad de la envolvente convexa).
78
Dpto. Informtica
Universitat de Valncia
Hagamos un repaso de los tipos de curvas paramtricas para comprobar cules pueden resultar ms
convenientes.
Splines: La caracterstica de las splines es que la curva resultante no tiene que pasar exactamente por
los puntos de control, que en este caso son los valores de los keyframes. Esta caracterstica hace que los
keyframes dejan de representar de forma exacta la situacin de la escena en ciertos instantes, lo que
puede resultar inconveniente.
Keyframes
Puntos intermedios
t
Curvas cbicas de Bzier a trozos: Estas curvas tienen la caracterstica de que cada trozo empieza y
termina en los puntos de control, pasando por los valores correspondientes a los keyframes. Adems, si
aadimos dos puntos de control auxiliares en cada tramo podremos controlar la tangente de la funcin, y
por tanto determinar de forma ms exacta el camino para ir de un punto a otro. Por ejemplo, en el caso de
que la variable representada sea una posicin, este sistema nos permitira controlar la velocidad del
movimiento en el instante definido por el keyframe. Este tipo de curvas es, por tanto, ampliamente
utilizado.
x
Ptos de control para tangencia
Puntos intermedios
t
Adems de estas curvas paramtricas tambin se puede emplear una simple interpolacin lineal
entre los valores de los keyframes. Esto permite resolver la interpolacin mediante un clculo muy
sencillo, pero se trata de un tipo de ecuacin que producir cambios bruscos en la derivada de la variable
y no permite un control detallado si no se aaden suficientes keyframes.
Adems del tipo de interpolacin, resulta fundamental la eleccin correcta de los parmetros a
controlar. Por ejemplo, una interpolacin lineal de la posicin puede ser adecuada para una partcula que
se mueve con una trayectoria suave (ver figura 5.1.(a)). Sin embargo, si deseamos describir la rotacin de
un objeto alrededor de un punto, resultara poco adecuado hacerlo con una interpolacin lineal de la
posicin, siendo mejor hacerlo con una interpolacin, lineal o no, sobre un ngulo que describe el giro
(ver figura 5.1.b).
79
Tema 5: Animacin 3D
y
( x1 , y1 )
y1
x2
y2
x1
( x2 , y2 )
x
t
Interpolacin lineal de posicin
y
1
t
Para determinar los keyframes, el interfaz deber permitirnos dar la secuencia de valores para
una variable dada. Para ello podremos manipular cada objeto y sus propiedades hasta colocarlo
en el estado deseado y luego asignar este estado a un instante de tiempo (keyframe).
b) Dada una asignacin de valores a los diferentes keyframes, podremos representar la situacin de
la escena en cualquier instante, para comprobar si el movimiento de los distintos objetos se aproxima al
efecto que queremos conseguir. Es decir, dispondremos de un modo de previsualizacin conjunta de la
escena, al menos para instantes concretos de tiempo.
A pesar de su flexibilidad y potencia expresiva, este mtodo manual plantea el problema de la
dificultad para reproducir con naturalidad comportamientos de sistemas complejos donde intervienen
actores (personas, animales u objetos animados) o sistemas que obedecen a leyes fsicas.
80
Dpto. Informtica
Universitat de Valncia
5.1.2. ROTOSCOPIA
La rotoscopia es una tcnica que se basa en la grabacin de los movimientos o comportamientos
reales para la generacin de fotogramas clave. Esta tcnica se usa tpicamente para reproducir la
locomocin y otros movimientos de personas y animales. Tradicionalmente, la grabacin se realizaba
mediante fotografa o filmacin y se calcaba a mano sobre los dibujos, adaptando la forma de los
personajes. Este sistema ha sido utilizado por la compaa Disney desde el primer largometraje de
dibujos animados (Blancanieves).
Este mtodo se ha extendido a la animacin por ordenador mediante la captura de movimiento, que
consiste en introducir directamente en el ordenador valores numricas que representan, por ejemplo, las
posiciones de las articulaciones en ciertos puntos seleccionados, medidas mediante dispositivos
mecnicos, pticos o electromagnticos. De este modo se consiguen secuencias muy realistas de
movimiento, que luego pueden mezclarse o deformarse en tiempo real (por ejemplo, los movimientos de
los luchadores o de los jugadores de ftbol en la ltima generacin de videojuegos).
Control en tiempo real de un actor sinttico mediante captura de movimiento utilizando sensores
electromagnticos
Una vez asignados los fotogramas clave, ya hemos visto que la definicin correcta de la
interpolacin implica el control de la velocidad. La velocidad, y su derivada la aceleracin, son factores
muy importantes del movimiento que le confieren caractersticas de ms o menos realismo. Efectos como
la inercia del movimiento o la accin debida a fuerzas (empujones, choques, propulsin) involucran a
la velocidad y la aceleracin.
Para obtener efectos adecuados en la animacin debemos especificar la velocidad y aceleracin,
pero teniendo en cuenta que estas magnitudes se hayan directamente ligadas al diagrama de movimiento.
Si hemos definido una trayectoria x = f ( t ) , el diagrama de velocidad se obtendr derivando esta
funcin y el de aceleracin derivando una vez ms. A su vez, si especificamos una velocidad inicial,
podemos deducir el diagrama de velocidad integrando la funcin de aceleracin, y dando la posicin
inicial calcularemos la trayectoria integrando la funcin de velocidad, de manera que podemos crear
trayectorias que cumplan con determinadas especificaciones de aceleracin o velocidad.
81
Tema 5: Animacin 3D
dx
dt
d x
dt
dy
dt
d y
dt
t
Diagrama de aceleracin
Diagrama de velocidad
X ( t + t ) = f ( X ( t ), t ) .
En los mtodos basados en reglas existe un sistema o conjunto de reglas que determinarn el valor
de los parmetros en cada instante de tiempo. Las reglas suelen tener la forma bsica SI (condicin)
ENTONCES accin, pudiendo activarse o no segn la condicin sea verdadera o falsa, lo que
normalmente depende del valor del tiempo y de los parmetros en un instante anterior. La idea es la
misma que en el caso procedural; definir cmo cambian los valores de la escena con el tiempo, pero
ahora este cambio no se puede expresar mediante una funcin matemtica. Estos mtodos basados en
reglas se emplean cuando aparecen discontinuidades en el tiempo (por ejemplo, un objeto se comporta de
determinada manera hasta que llega cerca de otro, y entonces su movimiento se altera debido a una cierta
decisin), o cuando intervienen variables externas (p.ej. interaccin del usuario). Su aplicacin ms usual
es la representacin de las relaciones complejas, no debidas a meras interacciones fsicas, entre los
distintos objetos o actores de una escena. En algunos casos se llega a hablar de mtodos basados en el
conocimiento o mtodos de inteligencia artificial.
El resultado de un sistema de reglas es difcil de evaluar a simple vista. Habr situaciones en las que
se dispare ms de una regla, y por lo tanto habr que dotar de un orden de preferencia a las reglas o
especificar cmo se combinan los resultados de decisiones diferentes (esto es posible, por ejemplo, en los
sistemas basados en lgica difusa o fuzzy logic). En algunas ocasiones las reglas pueden involucrar la
eliminacin o adicin de nuevos elementos a la escena, lo que tambin puede provocar problemas de
consistencia.
Existen lenguajes de animacin que permiten representar ambos mtodos, tanto el basado en
procedimientos como en reglas, y combinarlos simultneamente. Son los lenguajes de script o guiones.
Con estos mtodos se pueden simular muchos sistemas naturales (nubes, fluidos, humo... ) como
conjuntos de partculas que interactan entre s (analizaremos esta tcnica con ms detalle
posteriormente). Otra posibilidad consiste en el actoring; la simulacin de objetos animados complejos
que pueden representarse mediante un esqueleto articulado (que puede tener modelos asociados) que
sigue ciertas reglas fsicas y conductuales en su movimiento.
82
Dpto. Informtica
Universitat de Valncia
Veamos ahora un ejemplo muy sencillo de animacin procedural. Se trata de un mvil que se
desplaza en una dimensin x a una velocidad constante de diez unidades. Las versiones paramtrica e
incremental de un procedimiento que devolviera la posicin para cada instante seran :
Procedimientos
const
v = 10;
proc_param( t ): real
{ return ( v t ); }
const
v = 10;
proc_increm( x_anterior, t ): real
{ return ( x_anterior + v t ); }
Para representar la persecucin entre un depredador y su presa en una dimensin podramos definir
el siguiente modelo basado en la combinacin de reglas y clculos procedurales:
Reglas
Variables del Depredador :
Xd,Vd
Variables de la Presa : Xp,Vp
Procedimiento actualizar_pos_depredador ( t )
{
si Xd -Xp < 10
(si la presa se acerca a menos de diez unidades)
Vd = ( Vd + Vp ) / 2
se le asigna una velocidad entre la suya y la de la presa
(si la presa est ms lejos)
si Xd -Xp >= 10
Vd = 0
el depredador est parado
si Xd -Xp < 0.001
( si se ha cazado la presa)
Vd = 0; Vp = 0;
ambos se paran
Xp = Xp + Vp t
se actualiza la posicin del depredador
}
Figura 5.2.: Panel de control de parmetros para la animacin procedural de un actor sinttico
83
Tema 5: Animacin 3D
Este tipo de animacin procedural utiliza un modelo matemtico para describir el movimiento y
otros cambios. Se supone que este modelo reproduce con cierta fidelidad la realidad fsica. Un modelo
cintico solamente incluye aceleraciones y velocidades, pero no las fuerzas que se relacionan con el
movimiento, mientras que un modelo dinmico considera estas fuerzas para deducir el valor de los
parmetros cinemticos. Las tcnicas de animacin o simulacin fsica pueden implicar un coste ms o
menos grande segn la complejidad del modelo matemtico que debe evaluarse y el nmero de
interacciones a considerar. Los casos ms elementales son los siguientes.
5.3.1. CINEMTICA DEL PUNTO
En este caso la variable representativa del sistema es la posicin de un punto sin dimensiones (por
tanto no tiene sentido considerar la orientacin y el comportamiento de rotacin, el cuerpo no tiene
momento de inercia ni momento angular). La masa se supone concentrada en ese nico punto. Para
generar la animacin hay que calcular
x( t ) ,
v( t )
y la
aceleracin a( t ) . El movimiento vendr descrito por ecuaciones diferenciales que relacionarn estas
tres funciones. La resolucin se efectuar los mtodos de integracin apropiados.
Consideremos un caso muy sencillo en el que disponemos como dato de la funcin de aceleracin
a(t). A partir de ella podemos calcular la velocidad y la posicin, utilizando, por ejemplo, el mtodo de
integracin de los trapecios.
r
a = f ( t)
r
r
x(0) = xo
r
r
v(0) = vo
r
r r
r r
aB = f(t); vB = vB + (aA + aB ) 2 dt
r
r r
xt = ( vA + vB ) 2 dt
r r r r
La ecuacin bsica es F ( t ) = m. a ( t ) , que indica que a partir de la expresin de las fuerzas puede
calcularse la aceleracin del punto, y por tanto la velocidad y la posicin. La fuerza puede depender a su
vez de la posicin (por ejemplo, las fuerzas elsticas) o la velocidad (fuerzas de rozamiento, fuerzas
magnticas sobre cargas elctricas). Tambin podemos considerar en este modelo fuerzas impulsivas,
debidas a choques o contactos temporales con otros cuerpos que pueden modificar bruscamente la
velocidad y direccin de movimiento del punto. Reorganizando la frmula anterior podemos deducir el
cambio de velocidad producido por una fuerza que acta durante un tiempo
dt :
r
r
r
dv
r
r
F ( t ) = m. a (t ) = m. F ( t ). dt = m. dv
dt
Las fuerzas no impulsivas suelen considerarse generadas por un campo de fuerzas que acta sobre
alguna magnitud activa (masa, carga) del objeto, por ejemplo el campo gravitatorio generado por otros
cuerpos.
5.3.3. CINEMTICA DEL SLIDO RGIDO
84
Dpto. Informtica
Universitat de Valncia
r r r
M = F r
r
r
r
r
M = I = I -1 M
r
M momento de fuerza
I momento de inercia
M
I
1 2
mv .
2
De esta manera, en un sistema donde solamente hay colisiones elsticas no se pierde energa y los objetos
siguen movindose indefinidamente.
En una colisin inelstica s existe perdida de energa cintica, que es absorbida por los cuerpos que
chocan. Las colisiones reales siempre suponen la prdida de alguna energa.
Resulta complicado desarrollar un buen modelo de colisin, ya que ste implica calcular con
precisin el punto de contacto entre los cuerpos y resolver las condiciones impuestas por los principios de
conservacin y la posible prdida de energa (incluyendo en el caso real las deformaciones que pueden
sufrir los cuerpos). Si suponemos un comportamiento elstico y un punto de contacto en el que uno de los
objetos puede aproximarse como una superficie localmente plana y el otro como un punto, podemos
desarrollar un modelo sencillo (que servira, por ejemplo, para representar el rebote de una pelota contra
una pared o suelo).
85
Tema 5: Animacin 3D
r
N : vector normal del plano
r
v : direccion inicial de la pelota
r
v : direccion resultante de la pelota
r
r
r r r
v = v 2 v N N
Existen sistemas donde la interaccin es mucho ms compleja y no puede reducirse a una colisin
de tipo clsico. Un ejemplo es el comportamiento de una tela que cubre a un cuerpo humano. Su
movimiento depende de la fuerza de la gravedad, del contacto con la forma geomtrica del cuerpo y de
las caractersticas elsticas de la superficie de la tela, y se requiere el desarrollo de modelos matemticos
especiales.
5.3.5. SISTEMAS DE PARTCULAS
Independientemente del modelo fsico que utilicemos para representar los objetos individuales,
podemos considerar cmo aproximarnos al comportamiento fsico de aquellos sistemas que estn
formados por un conjunto de cuerpos (por ejemplo, los planetas del Sistema Solar). Al igual que en los
modelos de objetos aislados que hemos visto, deberemos llegar a un compromiso entre la fidelidad de la
representacin y el coste computacional, recurriendo a diferentes tipos de simplificaciones.
Sistemas de partculas independientes
Esta sera la aproximacin ms sencilla y menos costosa, en la que consideramos que los diferentes
objetos no se relacionan entre s, o que lo hacen solamente en momentos determinados. Incluso con un
mtodo tan sencillo es posible representar de forma realista fenmenos complejos, como ciertos procesos
naturales (gases, humo, ciertos flujos de lquidos).
Por ejemplo, si queremos simular una fuente de agua podemos suponer que cada partcula se
comporta como un punto material, y generar un gran nmero de stas de forma aleatoria a partir de un
punto. Para realizar la generacin aleatoria tendramos que caracterizar la fuente mediante varias
distribuciones estadsticas que nos den la probabilidad de los ngulos de salida y la velocidad inicial a
partir del punto: P(), P(), P(v0)
v0
r
Fuente de
partculas
86
Dpto. Informtica
Universitat de Valncia
P( V0 )
P()
P()
V0
Es fcil comprender que en los sistemas de partculas independientes el coste computacional sera
de orden lineal con el nmero de partculas, puesto que el clculo del modelo individual se repite para
cada uno de los componentes.
Sistemas de partculas con ligaduras flexibles
Diremos que dos partculas estn relacionadas mediante una ligadura flexible cuando existe una
fuerza entre ellas, pero no hay una restriccin en los grados de libertad de la posicin de ambas. Veremos
ms adelante que existen otro tipo de ligaduras no flexibles, en las que los cuerpos pueden estar unidos
mediante articulaciones, apareciendo restricciones en el movimiento.
a) Inestructuradas :
Cada una de las partculas interacta con todas las dems. Esto sucede con la fuerza
gravitatoria y otras fuerzas de largo alcance. En una simulacin del Sistema Solar tendramos en
principio que considerar las fuerzas que actan entre cada par de cuerpos i, j:
r
mi m j r
Fij = G r 3 rij
rij
r ij
r
r r
r
Fij = k ( ri rj ) = k . rij
Ejemplo : Estructura molecular no rgida con potencial atractivo-repulsivo. Un ejemplo de este
tipo seran los sistemas como geles, espuma, gelatina, lquidos viscosos, en los que estas fuerzas
van haciendo evolucionar la distribucin de las partculas con el tiempo. El conjunto de particulas
vecinas deber, por tanto, actualizarse cada cierto tiempo.
87
Tema 5: Animacin 3D
V(r)
Repulsin
Repulsin
equilibrio
r
Atraccin
Atraccin
trasladar z
giro x
trasladar z
giro alrededor de x
En este ejemplo, a partir del giro del cilindro se determinara mediante una funcin el valor de la
translacin en z del cubo.
Las ligaduras establecidas mediante una funcin de transferencia sern reversibles cuando la
funcin sea estrictamente creciente o decreciente, existiendo una correspondencia biunvoca entre los dos
grados de libertad ligados. En nuestro ejemplo significara que a partir de trasladar z se pueda obtener
giro x y tambin a la inversa. Pero tambin pueden ser no reversibles, en el caso de que la funcin no sea
siempre creciente o decreciente, como sucede en la grfica del ejemplo, ya que no podemos hallar la
relacin inversa; a un determinado valor de trasladar z podran corresponder dos valores diferentes de
giro x.
88
Dpto. Informtica
Universitat de Valncia
Pero establecer una relacin de ligadura no especifica los valores absolutos que ambas variables van
a adquirir con el tiempo. Por esta razn a las funciones de transferencia se suelen aadir los llamados
generadores de funciones temporales, que podemos imaginar como procedimientos cuya salida es un
valor que cambia en funcin del tiempo (por ejemplo, siguiendo una funcin lineal o sinusoidal). En
algunos entornos para el desarrollo de animaciones se puede trabajar con una representacin grfica de
las funciones de transferencia y de los generadores temporales como bloques que se conectan entre s y
tambin con los grados de libertad de los objetos (como muestra la siguiente figura). En otros sistemas no
existe un entorno grfico, pero s las estructuras y funciones necesarias para crear estos objetos (como en
el entorno de desarrollo dVise de Division Ltd. o en la librera grfica IRIS Inventor).
Otra tcnica utilizada para establecer ligaduras rgidas es definir parmetros virtuales. En lugar
de establecer una correspondencia entre dos variables de objetos de la escena, como se hace en una
funcin de transferencia, se crea un nuevo parmetro que no corresponde a ningn objeto particular pero
que sirve para controlar a dos o ms grados de libertad de los objetos. Esta es una manera sencilla de
coordinar los movimientos de diferentes partes de un objeto o de relacionar un objeto con otro. Las
ligaduras por medio de parmetros virtuales pueden anidarse, crendose una jerarqua de ligaduras, de
manera que con pocas variables pueden controlarse un gran nmero de grados de libertad de la escena.
En la figura de ejemplo se han definido dos parmetros virtuales (p1 y p2) que permiten, a travs de
cuatro funciones, controla de forma coordinada las posiciones de los dos ojos y la boca mediante el valor
de p1.
z
tra s la d a x
g iro z
tra s la d a x
g iro z
LIGADURA
g iro z
g iro z = f ( t )
F ( t ) = sen t
t d e l s is te m a
p1
f1
p2
f2
ojo
f4
f3
ojo
boca
89
Tema 5: Animacin 3D
Articulacin
Segmentos
rgidos
B1
B2
(RAZ DE JARARQUA)
T
P1
P2
R1
R2
B1
B2
P1
P2
R1
R2
Jerarqua articulada
Desde el punto de vista de la informtica grfica podemos imaginar la jerarqua articulada como una
estructura de datos que nos permite dibujar las partes del objeto en la posicin adecuada y controlar su
movimiento. El algoritmo que dibuja la escena recorre recursivamente la estructura articulada
transformando el sistema de coordenadas utilizado para la representacin de los objetos. Si suponemos
que la representacin visual de cada segmento rgido est definida respecto a un sistema de coordenadas
centrado en el punto de articulacin, entonces cada vez que el algoritmo de recorrido llega a una
articulacin de la jerarqua debe:
1.- Trasladar el sistema de coordenadas desde su posicin anterior hasta el punto donde se
conectar el siguiente segmento.
2.- Una vez trasladado all, tiene que girar el sistema de coordenadas segn el estado de la
articulacin, es decir, segn los valores de los ngulos.
Si consideramos que cada articulacin viene definida por tres grados de libertad de rotacin,
entonces son necesarios 3*n valores (n es el nmero de articulaciones) para especificar completamente la
r
posicin de la figura articulada. El conjunto de estos 3*n ngulos se llama vector de configuracin ( ).
5.4.2. CONTROL DE LA JERARQUA ARTICULADA
El problema que plantean los objetos articulados es el gran nmero de grados de libertad que
poseen, cuyo cambio en el tiempo debe especificarse para realizar la animacin. Vamos a ver cules son
los mtodos de que disponemos para conseguir que la figura realice los movimientos deseados.
Las dos formas de especificar la posicin son dar el vector de configuracin (los ngulos de las
articulaciones), o bien dar directamente la posicin final de cada segmento rgido, datos que recogemos
dentro de un vector X . Hay dos variantes bsicas para hacer el control de posicin con el tiempo:
90
Dpto. Informtica
Universitat de Valncia
calcularemos los de X .
Ambos tipos de mtodos pueden combinarse con keyframes de dos maneras diferentes: por un lado
los keyframes pueden describir la variacin con el tiempo de los datos de control (ngulos en el caso
directo y las posiciones en el caso inverso); por otro lado, una vez calculado el resultado para ciertas
posiciones de tiempo, estos valores pueden almacenarse en forma de keyframes. De esta ltima forma,
cuando la animacin deba ejecutarse de nuevo no ser necesario calcular otra vez el movimiento de la
estructura articulada, sino que se puede interpolar sobre los keyframes precalculados. En este caso hay
que evitar que los keyframes se encuentren excesivamente separados en el tiempo, ya que la interpolacin
podra producir resultados irreales.
5.4.2.1. Cinemtica Directa
r
r
Es el mtodo ms sencillo. Se calcula X = f mediante un mero clculo geomtrico, sin tener en
( )
cuenta las propiedades dinmicas de la jerarqua articulada (inercia, resistencia, peso). Este mtodo es
muy eficiente, puesto que a partir de los ngulos de las articulaciones podemos asignar fcilmente
posiciones a los segmentos recorriendo la estructura arbrea de forma recursiva tal como hemos visto
antes. El inconveniente de este mtodo es que no facilita la colocacin de la figura en la postura deseada
cuando existen muchos grados de libertad. Se emplea principalmente para describir movimientos que no
estn orientados a objetivos, sino que se desarrollan de forma mecnica y autnoma.
5.4.2.2. Dinmica Directa
Al no considerar las variables dinmicas, la cinemtica directa puede producir efectos irreales desde
el punto de vista fsico (por ejemplo, cambios instantneos en el movimiento de un brazo articulado, sin
inercia ni aparente esfuerzo). Por esta razn es conveniente hacer el clculo directo utilizando ecuaciones
diferenciales en las que aparezcan las fuerzas, momentos, torsiones, etc., aunque esto significa aumentar
considerablemente el coste computacional.
5.4.2.3. Cinemtica Inversa
Los mtodos inversos en los que se pretende llegar a una relacin = f ( x ) conllevan un
proceso de clculo mucho ms costoso que los directos, y por tanto resultan de difcil aplicacin para
tiempo real, sobre todo cuando el nmero de grados de libertad es elevado (existen algunas
aproximaciones de tipo iterativo que pueden utilizarse). Sin embargo, este tipo de mtodos resultan casi
imprescindibles para crear animaciones realistas de figuras articuladas cuyo comportamiento est
orientado a objetivos, es decir, que tratan de alcanzar ciertas posiciones (como coger un objeto con una
extremidad o caminar sobre una superficie).
1
Uno de los inconvenientes de los mtodos inversos, y en particular de la cinemtica inversa, es que
pueden existir infinitas soluciones para los valores de los ngulos que llevan a una posicin final dada, y
debe elegirse solamente una de ellas. Tambin es posible que, debido a las restricciones de la estructura
(por ejemplo, no puede intersectarse consigo misma), no exista solucin.
5.4.2.4. Dinmica Inversa
Este ltimo mtodo, aunque el ms costoso, presenta una serie de ventajas frente a los descritos
anteriormente. Por un lado la introduccin de criterios dinmicos, principalmente el criterio de utilizar la
mnima energa posible en el desplazamiento, permiten reducir el espacio de posibles soluciones para
encontrar la ptima. Adems producen resultados muy naturales, puesto que las estructuras articuladas
naturales como las de los animales siguen el mismo principio de mnima energa.
5.4.2.5. Otros Mtodos Complementarios de Control
91
Tema 5: Animacin 3D
Control por puntos fijos
Hasta ahora hemos supuesto que el nodo raz de la jerarqua articulada era siempre el mismo. Resulta
evidente que la posicin del segmento rgido que acta como raz de la jerarqua no va a cambiar en el
proceso recursivo de evaluacin, ya que ste comienza precisamente a partir de ese nodo del rbol. Por
tanto, la posicin del segmento raz en el espacio puede ser asignada de forma independiente y nos sirve
para mover la totalidad de la figura articulada por el espacio.
Sin embargo, hay ocasiones en que nos interesara poder determinar directamente la posicin de
otro segmento de la jerarqua y mantenerlo fijo durante el movimiento. Por ejemplo, cuando andamos uno
de los pies se mantiene en contacto con el suelo mientras nos desplazamos, y luego cambiamos el apoyo
al otro pie. Para reproducir ese comportamiento podemos comenzar por asignar el nodo que representa al
pie fijo como nodo raz, a partir del cual se calcula la posicin de los otros segmentos. Podemos luego
cambiar el nodo raz de un pie a otro y reordenar la jerarqua, teniendo en cuenta que las
transformaciones realizadas en cada articulacin se invertirn.
raiz 1
raiz 2
Movemos el cuerpo
raiz 3
Cambio del nodo raz del tronco (raiz 1) a los pies (raiz 2 y raiz 3)
para controlar el movimiento al andar.
Control del centro de masa
Para crear posturas estticas y movimientos de balanceo realista debemos de tener en cuenta que
el centro de masa de toda la figura articulada que est en equilibrio debe situarse sobre la vertical de la
superficie de sustentacin (por ejemplo la formada por la planta de un pie en el caso de sostenerse sobre
uno solo, o la que unira los dos pies en el caso de apoyarse sobre ambos). En algunos movimientos, por
ejemplo al andar, el centro de masa sale fuera de esta superficie temporalmente (al cambiar de un pie a
otro), cuando la figura deja de estar en equilibrio.
Ligaduras restrictivas adicionales
Podemos combinar la estructura articulada ligaduras entre los valores de los parmetros de las
articulaciones. De esta manera disminuimos el nmero de grados de libertad y resulta ms fcil conseguir
movimientos en los que diferentes partes de la estructura estn coordinadas. Por ejemplo, podemos
conseguir que los dos brazos de una figura humana se muevan a la vez, ligando sus ngulos mediante
funciones de transferencia que los igualan.
92
Dpto. Informtica
Universitat de Valncia
ANTES
DESPUS
La clave para que la imagen se deforme de manera coherente con la malla de tringulos es conseguir
que cuando un tringulo de la malla cambie de forma, el trozo de imagen que queda en su interior se
redistribuya sobre el mismo tringulo. Esto resulta muy fcil de implementar representando la imagen
como una textura bidimensional sobre una malla plana de tringulos (el uso de texturas se describir en el
tema 7). El morphing se produce automticamente cuando se mueven los vrtices sin alterar las
coordenadas de textura originales. Si lo que se desea es hacer ms grande una parte del objeto
representado en la imagen, se debern estirar los tringulos que lo cubren; si lo que se quiere es hacerla
ms pequea habr que disminuir el tamao de los correspondientes tringulos. Se puede tambin unir
vrtices, con lo que ciertos tringulos (y la correspondiente parte de la imagen) desaparecern
completamente.
Para conseguir efectos interesantes de morphing cada rasgo relevante de la imagen debe quedar
cubierto por tringulos de manera precisa. Por ejemplo, si queremos manipular la forma de una nariz en
la imagen de una cabeza humana, tendremos que recubrir la nariz con tringulos que marcan claramente
su frontera. Un caso especial de este tipo de morphing es el que se realiza para simular el movimiento de
la cmara desde un lugar a otro, partiendo de dos imgenes, la inicial y la final, tomadas desde diferentes
puntos de vista.
La forma clsica de realizar un fundido entre dos imgenes es interpolarlas en el tiempo, dando
progresivamente ms peso a una de las imgenes y menos a la otra. Pero este sistema no realiza una
interpolacin de las formas de los objetos que contengan las imgenes inicial y final. Podemos utilizar el
morphing 2D para ir distorsionando las dos imgenes al mismo tiempo que fundimos la informacin de
color. Para ello tenemos que definir mallas triangulares en ambas imgenes y establecer una
93
Tema 5: Animacin 3D
correspondencia entre los vrtices. Lo ms sencillo es buscar una correspondencia estructural, de manera
que el vrtice correspondiente a un rasgo (por ejemplo, la punta de la nariz) se corresponda en ambas
imgenes, haciendo que ambas mallas sean isomorfas o coherentes. Tambin es posible duplicar o
colapsar vrtices durante el proceso.
94
Dpto. Informtica
Universitat de Valncia
de la posicin entre la situacin inicial y final se realizar en este caso en el espacio tridimensional.
Tambin pueden interpolarse otras propiedades del objeto, como la textura o el material.
Igual que en el caso bidimensional, las dos estructuras de vrtices pueden ser isomorfas, o podemos
aadir o eliminar vrtices durante el proceso. Esta ltima opcin se usa cuando queremos efectuar la
transicin entre dos niveles de detalle diferentes del mismo objeto, que estn caracterizados precisamente
por tener un nmero diferente de vrtices.
Adicin progresiva de un nuevo vrtice para aumentar el nivel de detalle, con retriangulacin
Recientemente esta tcnica se ha extendido para construir la llamada representacin progresiva de
objetos poligonales, que permite el control continuo de nivel de detalle. La representacin progresiva de
un objeto consiste en una malla triangular bsica, la de menor detalle, ms una lista de vrtices que deben
irse aadiendo para pasar a versiones ms detalladas del objeto (ms la informacin sobre su posicin
final de esos vrtices).
Ejemplo de representacin progresiva de un objeto, con la posibilidad de hacer morphing entre niveles
5.5.3 CAMBIOS DE FORMA INDEPENDIENTES DE LA REPRESENTACIN
Las tcnicas de morphing descritas tienen dos problemas. El primero es que resulta costoso generar
de forma sencilla cambios globales en la forma del objeto (es ms til para especificar cambios en los
95
Tema 5: Animacin 3D
detalles). La segunda desventaja es que la descripcin del un cambio de forma solo es aplicable a un
cierto objeto, y en teniendo en cuenta determinada representacin, por ejemplo la poligonal.
Vamos a ver ahora otras tcnicas para describir cambios de forma, que pueden aplicarse
independientemente del sistema de representacin y no estn ligadas a la forma concreta del objeto. Para
especificar y visualizar estas deformaciones se suele utilizar un objeto geomtrico sencillo (p. ej. un
cubo) que envuelve al objeto real. El objeto envolvente se deforma, y el objeto real sufre la misma
transformacin segn su posicin dentro de la figura envolvente.
Modelo de deformaciones no lineales globales ( Barr )
Hemos visto que mediante la aplicacin de matrices a las coordenadas espaciales de los vrtices de
un objeto es posible generar transformaciones del tamao y la posicin del objeto llamadas
transformaciones lineales. Las tres transformaciones lineales ms utilizadas son el escalado, la traslacin
y la rotacin. Sin embargo, estas transformaciones lineales no alteran la forma bsica del objeto y cada
arista recta del objeto contina siendo recta despus de la transformacin.
La idea del mtodo de Barr es utilizar estas mismas transformaciones elementales, pero aplicndolas
de manera diferente a cada punto del objeto, dependiendo de sus coordenadas. Como resultado, el efecto
de la operacin sobre la forma global del objeto es una transformacin no-lineal. Es posible escoger
diferentes conjuntos de transformaciones no lineales tomando unas u otras transformaciones bsicas y
hacindolas depender de las coordenadas x, y, z de diversas maneras. Algunos ejemplos podran ser:
Comprimir : se utiliza el escalado de dos de las coordenadas en funcin de la tercera; por ejemplo, el
escalado para cada punto (x, y) variando en funcin de z:
ESCALA x = f(z)
ESCALA y = f(z)
escala y
escala x
Retorcer : se aplica una rotacin a dos de las coordenadas que depende de un ngulo que a su vez es
funcin de la coordenada restante.
Doblar : en este caso es la translacin de dos de las coordenadas la que vara en funcin de una de la
otra.
TRAS x, y = f(z)
ty
z
tx
z
96
Dpto. Informtica
Universitat de Valncia
Cada vrtice en el interior del cubo tiene unas coordenadas paramtricas inducidas por la posicin
de los puntos de control. Por tanto, para cada posicin de los puntos de control existe una relacin:
( x , y , z ) = f ( u, v , w) ( u, v , w) = f 1 ( x , y , z )
El proceso de deformacin funciona de la siguiente forma:
a) En la posicin de reposo se calculan las coordenadas paramtricas de cada vrtice (uo, vo,
wo).
b) Cada vez que se muevan los puntos de control del hipertrozo, la relacin entre coordenadas
paramtricas y cartesianas viene dada por una nueva funcin f. Lo que hacemos es suponer
que las coordenadas paramtricas de cada punto permanecen invariantes y recalculamos las
coordenadas cartesianas, lo que producir un cambio en la forma del objeto:
(x, y, z) = f (uo, vo, wo)
97
Tema 5: Animacin 3D
Superficie
equipotencial
Formas
elementales
Articulacin
flexible(FFD)
Segmentos
rgidos
Mtodo 1
Mtodo 2
98