Animació


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   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:

Curs de Cornell sobre animacio basada en fisica