Está en la página 1de 22

Dpto.

Informtica
Universitat de Valncia

Ampliacin de Informtica Grfica

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.

5.1 TCNICAS DE FOTOGRAMAS CLAVE O KEYFRAMES


Este tipo de tcnicas es una adaptacin de los mtodos de la animacin tradicional para describir los
cambios temporales de la escena. La idea bsica consiste en definir mediante edicin manual o mediante
alguna funcin automtica cul es el estado de la escena en ciertos instantes (llamados fotogramas clave
o keyframes). La descripcin de la escena en cada fotograma clave debe incluir la posicin y orientacin

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

REPRESENTACIN DE LA TRAYECTORIA (path) + DIAGRAMA DE MOVIMIENTO


Una variable (y) en funcin de la otra (x)
Para aadir la componente tiempo
Podramos pensar que a partir de la representacin espacial de la trayectoria podemos averiguar la
velocidad del movimiento, observando la distancia recorrida entre dos keyframes. Pero esto no es cierto,
ya que el objeto no tiene porqu moverse a velocidad constante sobre la trayectoria. La velocidad
instantnea real vendr dada por las pendientes de la funcin de la posicin en el diagrama de

dx dy
, , y su mdulo ser la rapidez de
dt dt

movimiento. As, el vector velocidad instantneo ser


traslacin sobre la trayectoria.

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

Ampliacin de Informtica Grfica

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

Interpolacin lineal del ngulo

Figuras 5.1.: (a) Interpolacin de posicin y (b) Interpolacin de ngulo


El mtodo de fotogramas clave deja un problema abierto: cmo realizar la asignacin de valores a
las variables en los keyframes. Podemos resolverlo de distintos modos. Si disponemos de algn mtodo
algortmico (por ejemplo una simulacin basada en ecuaciones fsicas) para calcular el valor de estas
variables en el tiempo, entonces podramos usarlo para calcular el estado de la escena en ciertos instantes
y luego utilizar la interpolacin entre keyframes. Este sistema puede ser til cuando el algoritmo exacto
resulta demasiado costoso para utilizarlo en el clculo de cada fotograma aislado.
En el caso de que no dispongamos de un algoritmo o procedimiento automtico para calcular la
evolucin de las variables de la escena con el tiempo tendremos que recurrir a otros mtodos.
5.1.1. MANIPULACIN DIRECTA.
La manipulacin directa es el mtodo ms creativo para generar animaciones, asignando de forma
manual (normalmente mediante un interfaz grfico) los valores de las variables en cada keyframe. Todos
los programas de animacin 3D proporcionan interfaces de manipulacin directa que permiten realizar
dos tipos de tareas distintas, que pueden combinarse entre s para garantizar la coherencia del resultado:
a)

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

Ampliacin de Informtica Grfica

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

5.2 ANIMACIN PROCEDURAL Y BASADA EN REGLAS


Este tipo de animaciones se caracteriza por utilizar un mtodo algortmico para calcular a lo largo
del tiempo las variables que definen el comportamiento de los objetos, de la cmara y otras caractersticas
de la escena. Estos mtodos podrn utilizarse para hallar directamente el estado de la escena en cada
fotograma, o bien para asignar valores a los keyframes y aplicar ms tarde un mtodo de interpolacin. La
primera variante de funcionamiento requiere que el algoritmo encargado de calcular la evolucin
temporal se ejecute al mismo tiempo que se va generando la animacin, lo que incrementar el coste
temporal total. El mtodo de utilizar los keyframes como representacin intermedia supone realizar una
aproximacin, pero como contrapartida permite ahorrar coste de computacin.
En los mtodos procedurales una funcin o procedimiento define la evolucin del conjunto de
parmetros por medio de una expresin paramtrica en funcin del tiempo X = f ( t ) o bien mediante
de una expresin integral o incremental, tambin en funcin del tiempo:

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

Ampliacin de Informtica Grfica

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
}

La funcin definida para el depredador incrementa automticamente su posicin al moverse la


presa. Una funcin similar podra ser utilizada para el movimiento de sta.
Ejemplo:
En la siguiente figura podemos observar un ejemplo ms elaborado, en el que el movimiento de un
pjaro es controlado mediante una serie de variables cuyos valores puede cambiar el usuario.

Figura 5.2.: Panel de control de parmetros para la animacin procedural de un actor sinttico

5.3 ANIMACIN FSICA

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 ) ,

normalmente en funcin de la velocidad

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

para t = 0 hasta t f con paso dt

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

vA = vB ; aA = aB / * pasa al siguiente trozo */

5.3.2. DINMICA DEL PUNTO


Es similar al modelo anterior, pero ahora debemos tener en cuenta las fuerzas y la masa del punto en
las ecuaciones diferenciales que ligan posicin, velocidad y aceleracin. Segn el tipo de fuerzas
incluidas en el modelo debern definir otras propiedades del objeto, como carga elctrica, elasticidad, etc.

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

Ampliacin de Informtica Grfica

La diferencia entre el modelo de slido rgido y el del punto material es la introduccin de la


extensin del cuerpo, y por tanto de un nuevo comportamiento: la rotacin alrededor de su centro de
masas. Al movimiento propio del centro de masas pueden aplicarse las mismas ecuaciones que del
modelo puntual. Pero adems hay que describir la rotacin a su alrededor. sta puede ser muy compleja,
puesto que existen tres grados de libertad, y en principio habra que describir la evolucin de tres ngulos
de giro independientes. Sin embargo, en muchos casos podemos reducir el giro a un movimiento
alrededor de un eje, y por tanto descrito por un nico ngulo. El ngulo juega el mismo papel que la
posicin en las ecuaciones cinemticas, donde no aparecen fuerzas. Denominando al ngulo de giro
tenemos:
r
r
r
Aceleracin angular: = d
Velocidad angular: = d
dt
dt
5.3.4. DINMICA DEL SLIDO RGIDO
Las fuerzas actan sobre el centro de masas del slido rgido de la misma forma que sobre el punto
material, pero las fuerzas impulsivas (y otras, como las magnticas) influyen en el posible giro del objeto.
En la dinmica de rotacin, el momento de inercia (que, en principio, es una matriz 3x3) hace el papel
equivalente a la masa, y el momento de una fuerza sustituye a las fuerzas en las ecuaciones de rotacin.
El momento de una fuerza se define como el producto vectorial entre la fuerza aplicada al objeto y el
r
vector de posicin del punto en que se aplica ( r ).

r r r
M = F r
r
r
r
r
M = I = I -1 M

Si el giro se produce alrededor de un eje fijo,

r
M momento de fuerza
I momento de inercia

se convierte en un escalar, obteniendo:

M
I

Modelos para colisines (choques)


En una colisin elstica en la que no actan fuerzas externas, adems de conservarse la cantidad de
movimiento total (masa por vector velocidad) tambin se conserva la energa cintica total Ec =

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

Ampliacin de Informtica Grfica

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

El problema de considerar todas estas interacciones es que el nmero de clculos a realizar


tiene un coste cuadrtico con el nmero de partculas.
b) Estructuradas :
En este caso se supone que las partculas solamente interactan con algunas de sus vecinas.
Este tipo de interaccin aparece, por ejemplo, cuando las partculas forman parte de una estructura
que limita el alcance de las fuerzas, como sucede entre las molculas de un lquido o un slido.
Incluso puede utilizarse esta aproximacin para simular sistemas en los que la vecindad entre
partculas puede cambiar (por ejemplo, en un fluido muy viscoso).
Si suponemos que el nmero de vecinas a considerar es ms o menos constante (k), el coste de
clculo de las interacciones sera de nuevo lineal con el nmero de partculas.
Ejemplo : Partculas en una estructura rgida con interacciones elsticas locales. En una estructura
cbica cada partcula tiene seis vecinas. La fuerza de interaccin sera:

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.

La relacin entre la fuerza F y el potencial V es: F = V . Un ejemplo de la variacin de


estas magnitudes segn la distancia entre las partculas podra ser:

87

Tema 5: Animacin 3D

V(r)
Repulsin

Repulsin

equilibrio

r
Atraccin

Atraccin

5.4 LIGADURAS RESTRICTIVAS Y FIGURAS ARTICULADAS


Un tipo de ligadura diferente al visto en el apartado anterior aparece cuando dos objetos se
relacionan por medio de fuerzas que limitan sus movimientos, crendose una unin o contacto de alguna
clase. La llamaremos ligadura no flexible, ligadura con restricciones o ligadura rgida.
El nmero de grados de libertad es la cantidad mnima de variables necesarias para especificar
exactamente la posicin de un objeto. Si un objeto no est sometido a ningn tipo de restriccin, tiene
seis grados de libertad: tres coordenadas espaciales para determinar su localizacin, y tres ngulos para
determinar su orientacin. El nmero de grados de libertad no vara aunque cambiemos el tipo de sistema
de coordenadas (las tres coordenadas espaciales pueden ser cartesianas, esfricas o de cualquier otro tipo,
pero siempre harn falta tres).
Cuando aparece una ligadura rgida el nmero de grados de libertad disminuye. Por ejemplo, si
sujetamos el objeto a una bisagra esttica eliminamos todos los grados de libertad de posicin y
solamente dejamos un grado de libertad de rotacin.
En muchos programas de animacin y simulacin existe la posibilidad de establecer este tipo de
ligaduras entre diferentes objetos y aprovecharlas para producir animaciones. Para establecer una
ligadura rgida se suelen definir funciones de transferencia entre las variables de posicin u orientacin
de diferentes objetos. Por ejemplo, podemos especificar que la posicin en x de un objeto se relacione
con el ngulo de giro

de otro objeto por medio de la funcin

= x 2 . Esta funcin debe actuar

haciendo que si en cualquier momento cambia el valor de x, el valor de

variar segn esta relacin.

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

Ampliacin de Informtica Grfica

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 )

(GENERADOR DE FUNCIN TEMPORAL)

F ( t ) = sen t

t d e l s is te m a

Ejemplo de conexin entre funciones de transferencia,


generadores temporales y parmetros de los objetos

p1

f1
p2
f2

ojo

f4
f3

ojo

boca

89

Tema 5: Animacin 3D

Ejemplo de ligaduras a travs de parmetros virtuales anidados


5.4.1. JERARQUAS ARTICULADAS
Una jerarqua articulada es un conjunto de partes rgidas (segmentos) que estn unidas dos a dos por
medio de ligaduras restrictivas llamadas articulaciones. Este tipo de sistemas (que la Robtica estudia en
profundidad) normalmente no tiene grados de libertad relacionados con la posicin, sino solamente con
las rotaciones (desde uno hasta tres ngulos independientes dependiendo del tipo de articulacin). Sin
embargo, puesto que los objetos visuales no tienen necesariamente porqu seguir las leyes de las
articulaciones reales, es posible aadir operaciones de traslacin y escalado (cambio de tamao) en cada
articulacin, siendo posible tericamente tener nueve grados de libertad por cada una.

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

Ampliacin de Informtica Grfica

En los mtodos directos, dados los valores de

En los mtodos inversos, dado X calcularemos

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

Movemos los pies

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.

5.5 CAMBIOS DE FORMA


Hasta ahora hemos supuesto que los objetos no cambiaban de forma con el tiempo, pero eso no
siempre se corresponde con la realidad. En muchos casos puede resultar interesante describir estos
cambios de forma, bien para introducirlos en la animacin o bien como una ayuda para modelar los
objetos durante el proceso previo de edicin hasta que adopten la forma que nos interesa. Veremos
primero las tcnicas utilizadas para manipular la forma en imgenes planas y luego las extenderemos a
los objetos tridimensionales.
5.5.1 MORPHING 2D

92

Dpto. Informtica
Universitat de Valncia

Ampliacin de Informtica Grfica

Recientemente se han popularizado en publicidad y efectos especiales cinematogrficos las tcnicas


llamadas de morphing. Debemos distinguir claramente entre aquellos efectos que se basan en la
manipulacin de imgenes planas de aquellos otros que trabajan con una representacin tridimensional.
En el morphing de imgenes se utilizan dos efectos bsicos; la deformacin de la imagen, redistribuyendo
sus colores y formas, y el fundido de dos imgenes, pasando de forma contina de una a otra. Ambos
efectos parten de una descomposicin del espacio de la imagen en una malla de tringulos. Para
especificar un cambio continuo en la forma de la imagen basta con describir cmo vara la posicin de los
vrtices de la malla de un instante de tiempo al instante posterior.

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.

Funcionamiento del view morphing

Morphing 2D con deformacin y fundido simultneo


5.5.2 MORPHING 3D
En este caso no se trata de modificar una imagen sino la forma del objeto en tres dimensiones. Este
cambio continuo puede utilizarse en animacin para representar deformaciones o crear efectos visuales.
Otro uso, ms tcnico, consiste en suavizar las transiciones entre diferentes representaciones de un mismo
objeto cuando stas tienen diferente nivel de detalle (las tcnicas de nivel de detalle las presentaremos en
el tema 6).
Aunque existen tcnicas de morphing para otros tipos de representaciones, la manera ms comn de
hacerlo es definiendo los objetos, al igual que en 2D, mediante una malla de tringulos. La interpolacin

94

Dpto. Informtica
Universitat de Valncia

Ampliacin de Informtica Grfica

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.

Ejemplo de cambio de la forma tridimensional entre dos muecos


Existen diferentes formas de aadir o quitar vrtices de forma continua. Una manera de hacerlo es
acercar (o separar) progresivamente los dos vrtices. Debemos tener en cuenta que al crear nuevos
vrtices debemos reconstruir la tringulacin de la superficie.

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

Deformaciones con volmenes paramtricos (Free-Form Deformation FFD)

96

Dpto. Informtica
Universitat de Valncia

Ampliacin de Informtica Grfica

Es una deformacin basada en la transformacin de un volumen definido de forma paramtrica,


como por ejemplo el hipertrozo tricbico de Bzier, en el que cada lado es un trozo cbico de Bzier
definido por dos curvas cbicas. O sea, cada arista viene definida por cuatro puntos de control: los dos
vrtices del cubo ms dos puntos internos en la arista. En la posicin de reposo los puntos de control se
encuentran en las caras de un cubo.

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)

5.5.4 ARTICULACIONES FLEXIBLES ( SKINNING )


La representacin visual de segmentos rgidos en una figura articulada plantea el inconveniente de
que la juntura existente entre cada pareja de segmentos, no resulta natural, sobre todo cuando intentamos
representar cuerpos flexibles.
Para solucionarlo tenemos dos tcnicas. La primera se basa en un modelo de msculos que actan
como formas elementales para generar una superficie equipotencial que represente el papel de piel,
creando una superficie continua que da una mejor apariencia a la articulacin. La segunda tcnica emplea
volmenes paramtricos concatenados (hipertrozos como los que hemos visto en el mtodo FFD). Uno de
estos hipertrozos estar conectado a los dos segmentos rgidos (ver figura 5.5.4.) y resultar deformado
por el movimiento de la articulacin. Mediante el mtodo FFD calcularemos la correspondiente
transformacin suave de una superficie intermedia que representa el tramo de la articulacin.

97

Tema 5: Animacin 3D

Superficie
equipotencial

Formas
elementales

Articulacin
flexible(FFD)

Segmentos
rgidos

Mtodo 1

Mtodo 2

Mtodos bsicos para la definicin de articulaciones flexibles de apariencia continua.

98

También podría gustarte