Les tècniques d'animació
ens mostren canvis d'una escena en base a un
guió preestablert. En general, el guió
especifica com es transforma l'escena
i com es mouen, canvien de color i es deformen els
seus objectes.
Per a una introducció general al tema, llegiu el capítol corresponent
a Animació del CD interactiu
de Gràfics de l'assignatura
de VIG.
Animació basada en esquelets
En la versió més
simple, l'usuari especifica com
es modifica la posició de cada tram de l'esquelet (que té
molts menys punts que la malla de l'objecte
que volem deformar) a cada una de les imatges clau o "key-frames" de l'animació.
Ara, per a cada frame intermig,
es calcula la posició de tots
els trams de l'esquelet per interpolació,
i finalment es calcula la posició
de cada un dels vèrtexs
de la malla de triangles de l'objecte
que es deforma, a partir d'aquestes posicions de tots els trams de l'esquelet.
Serveix per animar humanoids,
animals etc. Per evitar errors
durant l'animació,
cal associar els vèrtexs de la malla de triangles
que són propers a
les unions entre trams de l'esquelet a més d'un tram d'esquelet.
Vegeu el capítol corresponent
a Animació del CD interactiu
de Gràfics de l'assignatura
de VIG.
Models deformables
Aquests mètodes
intenten simular la deformació d'objectes tous que no tenen esquelet: òrgans i teixits humans, pilotes que xoquen i es
deformen, vestits i robes, etc
Els mètodes més intuitius (i empírics) per a la simulació
d'objectes deformables són
els basats en la deformacio de l'espai. En aquest cas tenim una malla de
control (que habitualment és
regular i cúbica) que engloba l'objecte. La
malla actúa com si fós
un exoesquelet del nostre objecte a deformar. En la versió
més simple, l'usuari
especifica com es deforma aquesta
malla de control (que té molts menys punts que la malla de l'objecte que volem deformar) a
cada una de les imatges clau
o "key-frames" de l'animació.
Ara, per a cada frame intermig,
es calcula la posició de tots
els vèrtexs de la
malla per interpolació, i finalment
es calcula la posició de cada un dels vèrtexs de la malla
de triangles de l'objecte
que es deforma, a partir d'aquestes posicions dels vèrtexs de la malla de control. En un preprocés, es calcula per a cada vèrtex
de la malla a quina cel.la de la malla de control pertany
i quines són les seves coordenades respecte la
malla de control (aquestes coordenades
poden ser linials, coordenades
baricèntriques basades
en una descomposició en tetraedres
dels cubs de la malla
original, o bé basades
en interpolació amb Splines, com fan en Sederberg o la Sabine Coquillart).
A cada frame, un cop tenim la posició dels vèrtexs de la malla
de control, només cal, per a cada vèrtex de la nostra malla
de triangles, calcular la nova posició
espaial tal que doni,
respecte les noves posicions dels
vèrtexs de control, les mateixes
coordenades que s'havien calculat en el preprocés.
El problema és com deformem la malla de control, si no volem
haver d'especificar, tal com deiem al paràgraf
anterior, la posició de cada punt de la malla a cada key-frame.
Els sistemes basats en masses i molles donen simulacions força realistes i eficients, són un bon compromís
entre el realisme de les simulacions
i la interactivitat. La malla de control es deforma seguint la dinàmica d'una malla de masses i molles.
Les molles tenen una posició
de repós que correspón
a la posició estable de la malla de control. Quan estem a un estat d'equilibri, la suma de forces que exerceixen sobre un determinat vèrtex de la
malla totes les molles que hi conflueixen,
ha de ser cero. Si apliquem alguna força per deformar la malla, la suma de forces deixa de ser cero i aquesta es deforma. L'altra possibilitat és que l'usuari (amb la interfície) mogui o estiri algun dels
vèrtexs de la malla. En aquest
cas està estirant algunes de les molles amb la qual cosa la suma de forces torna
a ser no nul.la i la malla es deforma. Una de les configuracions
més usades per a la
malla de control és la d'una
malla cúbica uniforme, en que cada node o vèrtex de la malla té 18 molles que es
conecten a:
A cada iteració, es calcula la suma de forces produides per les 18
molles a cada vèrtex de la malla (tenint en compte la llei linial de Hook que dóna la força d'una molla que s'ha estirat o comprimit), i es mou cada vèrtex proporcionalment a la seva força resultant. En alguns cassos es fa més d'una iteració d'aquest procés.
Si volem un comportament
encara més realista, cal anar
a mètodes basats en
la física. Un dels més
coneguts i usats és el mètode dels elements finits.
El resultat de la simulació
és molt realista, però pot ser força lent; la consequència és que
en general aquest mètode
només és
aplicable quan l'animació
es genera "off line". La tècnica es
basa en dividir els objectes
a animar en elements (si es vol
una animació realista, els
elements han de ser suficientment
petits i cobrir tot el volum de l'objecte o dels obejctes a animar). Es calculen les deformacions
de cada node de la malla, a partir de les forces aplicades. El càlcul de les deformacions
(desplaçaments) es fa en base a resoldre un gran sistema d'equacions
a cada frame.
Animació basada en
el comportament
Vegeu l'article de Dimitri Terzopoulos, a l'apartat 6.3
Metamorfosi entre imatges
Els conceptes i algorismes detallats els podeu trobar
al capítol corresponent a Animació
del CD interactiu de Gràfics
de l'assignatura de VIG.
Altres webs interessants: