T-111.450 Tietokoneanimaatio ja mallintaminen Lauri Savioja Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio 03/02 Animaatio / 1 Objektien deformaatiot Perinteisessä animaatiossa elävällä muodolla on suuri ilmaisullinen vaikutus. Myöskään tietokoneella animoidun objektin ei tarvitse olla jäykkä kappale! Elastisia ja epäelastisia muutoksia Animaatio / 2 1
Motivaatio Geometriset menetelmät sopivia jäykille kappaleille, mutta ne ovat elottomia. Deformoituvat mallit voivat perustua fysiikkaan ja olla aktiivisia: luonnollinen vaste niihin asetettuihin voimiin, rajoituksiin ja törmäyksiin. Fysikaaliset periaatteet kuvataan useimmiten osittaisdifferentiaaliyhtälöinä. Luonnollisen animaation tekemisestä tulee simulaatiota. Animaatio / 3 Vertailu Geometria + Fysiikka Vain geometria Aktiivinen Passiivinen Dynaamiikka Kinematiikka Animaatio simuloimalla Ennaltamäärätty Animaatio / 4 2
Elastiset muutokset Elastinen kappale palaa alkuperäiseen muotoonsa, kun kaikki siihen vaikuttavat voimat lakkaavata vaikuttamasta. Mutta, ideaalinen elastinen kappale jää ikuiseen värähtelyyn ilman vaimentavia voimia. Luonnossa on aina joku vaimentava voima, esim. ilmanvastus. Jousiyhtälö f = k x, missä x on poikkeama f on jousivoima k on jousivakio, joka kuvaa jousen jäykkyyttä Animaatio / 5 Epäelastiset muutokset Epäelastisessa muutoksessa jousiyhtälö ei päde. Kolme eri tyyppiä epäelastisuutta (Terzopoulos): Viskoottinen muutos Plastisuus Murtuma Animaatio / 6 3
Geometrisen esitysmuodon vaikutus Perinteisesti erotettu mallintaminen ja grafiikka (renderointi) toisistaan Muotoaan muuttavat objektit voidaan ymmärtää: animoituna proseduraalisena mallintamisena; uuden mallin luomisena joka kuvaa kohti jälkikäsittelynä; kiinteän mallin joka kuvassa eri tavalla tehtävänä muokkauksena Huom! käytännössä usein liikutaan välimaastossa Nykyisin myös 2-ulotteisten rasterikuvien deformaatiot (image morphing) paljon käytettyjä Animaatio / 7 Monitahokasmallit Animoidaan nurkkapisteitä (vertex), mutta säilytetään mallin topologia. Helppo toteuttaa, mutta käytännössä deformaation määrä rajallinen, koska monikulmioiden tulisi säilyä tasomaisina deformaatio voi tuoda jyrkkiä kulmia paikkoihin, jotka on tarkoitettu approksimoimaan sileää pintaa 3D-aliasoituminen: mallin pisteet näytteitä kuvitellusta pehmeämuotoisesta objektista. Liian pieni näytetiheys hävittää geometrista informaatiota Animaatio / 8 4
Pehmentävä jälkikäsittely "blobby objects" potentiaalikenttä mallin joka osan ympärille renderoidaan kentän tasa-arvopintoja (säteenseurannalla) sovelluksia: molekyylimallit (Blinn) pisaroista (partikkelisysteemi) koostuva vesimassa taiteellinen vaikutelma (Kawaguchi, Latham) Animaatio / 9 Parametripintamallit (splinit) Monin tavoin sama periaate kuin monitahokkailla: animoidaan ohjauspisteitä, mutta pintapalojen suorakulmainen topologia säilyy Voidaan ajatella myös pehmentävänä jälkikäsittelynä: splinifunktiot tasoittavat pinnan Ohjauspisteiden määrä rajoittaa deformaatiota: paikalliset muutokset ohjauspisteiden välillä mahdottomia Bezier-pintapalojen väliset jatkuvuusehdot vaikeita B-splinit monessa suhteessa parempia (ei jatkuvuusongelmia, ohjauspisteet vaikuttavat vain paikallisesti), mutta kiinteä topologia rajoittaa Animaatio / 10 5
Objektien muotoa muuttavat transformaatiot Lineaarimuunnokset tavanomaiset geometriset transformaatiot ovat lineaarimuunnoksia (rotaatio, skaalaus, translaatio) lineaarimuunnokset säilyttävät suorat suorina, jolloin monitahokkaan kulmapisteiden muuntaminen riittää Epälineaariset objektimuunnokset (Barr), yleistys: perusmuunnosten parametrit (kiertokulmat, skaalaustekijät, siirtymät) paikan funktioina (x, y, z) -> (sx,sy,sz, rx,ry,rz, tx,ty,tz) -> (X, Y, Z) käyttökelpoisia muunnoksia: tapering (X, Y, Z) = (rx, ry, z); r = f(z) twisting (X, Y, Z) = (X( Θ), Y( Θ), z); Θ = f(z) bending (X, Y, Z) = (x, Y(P), Z(P)); P = y, Θ parametrikappaleet (3D-splinit), yleistys parametrikäyristä ja - pinnoista: "hyperpatch (xyz) = Q(u,v,w) = Σ i Σ j Σ k p ijk B i (u)b j (v)b k (w) Animaatio / 11 Free Form Deformation (FFD, Sederberg) Määritellään parametrikappaleen (hyperpatch) avulla mielivaltaisella muulla tavalla määritellylle esineelle tehtävä deformaatio. Alkuperäinen objekti voi olla esim. monitahokas tai parametripinta Muunnettava 3D-avaruuden osa määrätään FFD-kappaleen avulla, ja siihen kohdistuva muunnos FFD-kappaleen ohjauspisteitä siirtämällä. Muunnoksen vaiheet: määritä alkuperäisen kappaleen pisteiden (vertex, ohjauspiste) paikat muuntamattoman FFD-kappaleen sisäisessä koordinaatistossa (u, v, w) (trilineaarinen interpolaatio) muunna kappaleen pisteet maailmankoordinaatistoon FFDkappaleen muunnetuilla ohjauspisteillä painotetuilla kantafunktioilla Ongelmia: FFD:llä paljon ohjauspisteitä (3 hyperkappaleella 64), siksi työlästä määritellä muunnoksia deformaatio on globaali FFD:n sisällä, hienojakoisempi muunnos ohjauspisteiden välillä ei onnistu Animaatio / 12 6
FFD:n animointi Ohjauspisteiden käsittely suoraan on työlästä niiden suuren määrän takia Käyttökelpoinen yhdistelmä saadaan soveltamalla epälineaarisia muunnoksia ensin FFD-soluihin ja näitä sitten varsinaisiin kappaleisiin Muunnosten aika- ja paikkariippuvuus kätevintä ilmaista vaikutuskäyrien (factor curve) avulla Useista eri osista koostuva muunnos saadaan kertomalla painotetut muunnokset keskenään Animaatio / 13 FFD:n laajennus (EFFD, Coquillart) Muodostetaan FFD-soluista yhteenliitettyjä kokonaisuuksia (vrt. Bezier-käyrien ja -pintojen liittäminen) Käyttökelpoisista EFFD-kappaleista voidaan tehdä työkalukirjasto, jota voidaan soveltaa minkä hyvänsä mallin muokkaamiseen EFFD-kappaletta voidaan animoida paitsi muuttamalla sen muotoa (ohjauspisteitä siirtämällä), myös siirtämällä sen vaikutusaluetta alkuperäisen mallin suhteen Sovellusesimerkki: lihasten paisuminen jäseniä taivutettaessa Animaatio / 14 7