260 likes | 435 Views
Tik-111.450 Animaatio ja mallintaminen. 2. Avainkuvat ja interpolointi. http://www.tonfisk-design.fi/Suomi/runebergin_torttu.html. Sisältö. avainkuvatekniikka yleisesti lineaarinen interpolaatio esimerkkinä, ongelmana derivaatan epäjatkuvuus
E N D
Tik-111.450 Animaatio ja mallintaminen 2. Avainkuvat ja interpolointi Animaatio 2004 - luento 2
http://www.tonfisk-design.fi/Suomi/runebergin_torttu.html Animaatio 2004 - luento 2
Sisältö • avainkuvatekniikka yleisesti • lineaarinen interpolaatio esimerkkinä, ongelmana derivaatan epäjatkuvuus • interpolaatio yleisesti: parametrisillä funktioilla painotettu summa ohjeuspisteistä • esimerkkeinä Bezier ja B-splini: eivät kulje ohjauspisteiden kautta • interpoloiva splini: käyriä välipisteiden kautta • jatkuvuusehdot: C0 - C1 - C2 - C • Hermiten käyrä: ekvivalenssi Bezierin kanssa • kardinaalisplini: tangentiaalinen jatkuvuus • Catmull & Rom: automaattinen tangentin asettaminen • Kochanek & Bartels: tension, continuity, bias • parametrinen vs. geometrinen jatkuvuus • parametrointi käyränpituuden suhteen, käyrän pituuden laskenta • liikkeen ajoituksen määrittely erillisellä funktiolla • pisteiden laskeminen käyrällä • suora sijoitus summakaavaan; optimointi: monta käyrää peräkkäin vs. rinnakkain • Inkrementaalinen laskenta differenssimenetelmällä • de Casteljaun menetelmä • käyrän uudellen parametrointi ja binäärinen ositus Animaatio 2004 - luento 2
Liikkeen määrittely • Käsin asettelemalla (perinteinen tapa) • Interpoloimalla avainasentoja (keyframing) • Erikoistuneilla ohjelmilla (procedural) • Rakennekuvauksilla (representational) • Satunnaisprosesseilla (stochastic) • Käyttäytymissäännöillä (behavioral) Animaatio 2004 - luento 2
Liikkeen määrittely (jatkuu) • Vaikka proseduraalista animaatiota varten on kehitetty skriptikieliä, on avainkuvatekniikka suosituin: • välikuvien laskenta vähentää käsityötä • helppo käyttöliittymä (ei ohjelmointia) • voi ohjatusti poiketa säännönmukaisuudesta (juuri halutunlaisen liikkeen ohjelmointi on vaikeaa) • sekä liikkeen että muodonmuutoksen määrittely samalla kertaa • 3D animaatiossa 4 ulottuvuutta (paikka + aika) Animaatio 2004 - luento 2
Esimerkki: pomppiva pallo • Parabolinen lentorata, muuttuva nopeus • Äkillinen suunnanvaihto törmäyksessä • Litistyminen ja venyminen “squash & stretch” Animaatio 2004 - luento 2
Parametrinen määrittely (1) • Lähtökohta • jokainen animoitava ominaisuus on numeerinen muuttuja • jokaisessa kuvassa samat toisiaan vastaavat parametrit • käyttäjälle parametrit esitetään mieluiten graafisina (pisteen sijainti, viivan suunta, väri, jne.) • Mitä hyvänsä voidaan parametroida ja siten animoida • olion paikka/nopeus, asento, koko ja muoto • osien suhde kokonaisuuteen (esim. silmät päässä) • esineiden värit ja tekstuurit (mm. heijastusominaisuudet) • valolähteet (paikka, väri, suunta, rajaus, jne.) • kameran paikka, asento, kuvakulma, syvyystarkkuus, jne. • ääni (rakenne, kaiku, Doppler-efekti, jne.) • proseduraalisen määrittelyn parametrit • hierarkkinen oliokeskeinen ajattelutapa Animaatio 2004 - luento 2
Parametrinen määrittely (2) • Avainkuva (keyframe) määrittelee • yhdessä animoitavan parametrijoukon tietyssä animaation vaiheessa • koko kuva voi muodostua eri tahtiin animoitavista ”kerroksista” • täsmällinen aika/kuvanumero voidaan määritellä erikseen • Välivaiheet (inbetweens) muodostetaan interpoloimalla • lineaarisesti, jatkuvilla polynomeilla ongelmia • paloittain splinifunktioilla • Parametrikäyrät: (x,y,z) = ƒ(P1,P2, ... , t) Animaatio 2004 - luento 2
Parametrikäyrät • Vektoriarvoinen yhden muuttujan funktio P(t) = (x,y,z)(t) = ƒ(t) = ( fx(t), fy(t), fz(t) ) • Yleensä rajatulla välillä, esim. t [ 0,1 ] • Derivaatta on myös vektori Dƒ(t) = dƒ(t)/dt = ( dfx/dt, dfy/dt, dfz/dt )(t) • Geometrinen tulkinta on eri asia • x = f(y) ei ole yleeensä funktio • dx/dyei aina edes määritelty MILLOIN ? • vektorin arvona voi olla muutakin kuin geometriaa, esim. värejä (R,G,B,A) tai nivelkulmia (a,b,g,q,f) Animaatio 2004 - luento 2
Realistinen interpolointi • Jatkuva liike • sijainnin jatkuvuus (ei äkillisiä siirtymiä) • nopeuden jatkuvuus (1. derivaatta) • kiihtyvyyden jatkuvuus (2. derivaatta) • Kinetiikka • liikkeen aloitukset ja lopetukset, kiihdytykset, jarrutukset • Jatkuvuus muutoksissa • vaihdokset interpoloinnista toiseen • Avainkuvan paikallinen vaikutus • vaikutusta vain seuraavaan/edelliseen avainkuvaan asti Animaatio 2004 - luento 2
Interpoloinnin aspekteja • Interpolointi vs. approksimointi • Jatkuvuus C0 (ei derivoituva) – jatkuva käyrä C1 (1. aste) – tangentit samansuuntaisia C2 (2. aste) – kaarevuus sama C (rajattomasti derivoituva) – määrittely ei paloittainen • Mallinnuksessa voidaan tarvita 2. asteen jatkuvuutta, yleensä animaatiossa 1. aste riittää • vastaesimerkki: ajoradan kaarteet MIKSI ? • Paikallinen vs. globaali kontrolli Animaatio 2004 - luento 2
Geometrinen jatkuvuus ei jatkuva G- jatkuva G0 G1 tangentiaalisesti jatkuva G2 kaarevuusjatkuva Animaatio 2004 - luento 2
Palapolynomit eli splinit • Matala-asteiset polynomit käteviä parametrifunktioina • laskennallisesti helppoja • derivoituvia (C ) • Yhden polynomin käyttö koko käyrällä hankalaa asteluku = vapausasteiden määrä • approksimoiva käyrä ei sivua ohjauspisteitä • interpoloiva käyrä (Lagrange) käyttäytyy villisti pisteiden välillä • http://www.ibiblio.org/e-notes/Splines/Lagrange.htm • Ratkaisu: splini eli “palapolynomi” • matala-asteisia polynomikäyriä solmuparien välillä“knot” = käyrällä sijaitseva ohjauspiste • käytännössä yleensä 3 polynomi riittävä • jatkuvuusehdot solmukohdissa järjestettävissä Animaatio 2004 - luento 2
Yksi polynomifunktio koko käyrälle ohjauspisteiden määrä = asteluku+1 Globaali ohjaus jokainen ohjauspiste vaikuttaa koko käyrään Approksimoiva interpoloi päätepisteitä Palapolynomi asteluku valittavissa Lokaali ohjaus ohjauksen vaikutusalue asteluvun mukaan Approksimoiva voidaan määritellä päätepisteitä interpoloivaksi solmupisteet käyrällä mutta eivät ohjattavissa Bezier-käyrä ja B-splini Animaatio 2004 - luento 2
Rationaalisplinit • Tavanomainen polynomikäyrä (x,y,z)(t) = SPi Bi(t) Pi = ohjauspiste • kullekin koordinaatille polynomi samasta kannasta B(t) • vektorifunktio on painotettu summa ohjauspisteistä • Rationaalikäyrä (x,y,z,w)(t) = SPi Bi(t) • kullekin koordinaatille rationaalifunktio x(t)/w(t) • ohjauspisteille “painokertoimet” w(t) vapauksiamm. tarkka esitys 2 käyrille (ellipsi/parabeli/hyperbeli) • NURBS: “non-uniform rational B-spline” • polynomikantana B-splinit rationaalimuodossa • solmupisteet eivät tasavälisesti parametriasteikolla Animaatio 2004 - luento 2
Matematiikkaa • Bezier-käyrän määrittely ja laskenta, ekvivalenssi de Casteljaun kanssa: • http://www.ibiblio.org/e-notes/Splines/Bezier.htm Animaatio 2004 - luento 2
Hermiten käyrä • Hermiten kantafunktiot (ranskalainen matemaatikko Charles Hermite) • Interpoloi ohjauspisteitä ja niissä määriteltyjä tangentteja • johdannainen Lagrangen polynomeista (interpoloi annettuja pisteitä polynomilla) • polynomin aste = 2 x ohj.pisteiden määrä - 1 • Käytännöllinen splinikäyrän yhden solmuvälin esittämisessä (2 pistettä 3 käyrä) • kussakin solmussa määriteltävä myös tangentti Animaatio 2004 - luento 2
Hermite (jatkuu) • Interpolointi • yleensä 3. asteen polynomit tarjoavat riittävästi vapausasteita (4 kpl): • kuljetaan alkupisteen kautta • kuljetaan loppupisteen kautta • tangentti alussa • tangentti lopussa • Ekvivalenssi Bezier-käyrän kanssa • Bezier-käyrän päätepisteessä tangentti = 3 x (ohjauspisteiden erotusvektori) Animaatio 2004 - luento 2
Kardinaalisplinit • Perustuu Hermiten käyriin • kullakin solmuvälillä polynomikäyrä • lokaali ohjaus: piste + tangentit • Tangentiaalinen jatkuvuus (C1) haluttaessa • tangenttivektorit voidaan automaattisesti laskea viereisten ohjauspisteiden avulla • Catmull-Rom-splini erikoistapauksena • tangentti = naapuripisteiden erotusvektori / 2 • päätepisteessä tangentti määriteltävä erikseen Animaatio 2004 - luento 2
TCB splini • Lue artikkeli: Kochanek & Bartels http://portal.acm.org/citation.cfm?id=808575&dl=ACM&coll=GUIDE • Kardinaalisplinien laajennus • tangenttivektorit solmupisteissä määrittyvät painotettuna summana naapuripisteistä • kolme parametria (Tension, Continuity, Bias) kullekin ohjauspisteelle Animaatio 2004 - luento 2
Luonnollinen splini • Ohjauspisteiden interpolointi fysikaalisesti • taipuisa viivotin pakotetaan menemään pisteiden kautta, tangentteja ei sidota • taivutusenergia minimoidaan • tuloksena 3 splinikäyrä • Globaali ohjaus hankalahko laskea Animaatio 2004 - luento 2
Spliniyhteenveto Splinit Approksimoivat Interpoloivat ”Luonnolliset” splinit Hermiten splinit Bezier B-splinit Beta-splinit Kardinaalisplinit Catmull-Rom TCB Animaatio 2004 - luento 2
Vielä muuta? • Harjoitustehtävä • http://www.tml.hut.fi/Opinnot/T-111.450/2004/harjoitustyot/h1.phtml • Aiheeseen liittyvää muuta materiaalia • http://escience.anu.edu.au/lecture/cg/Spline/parametric.en.html Animaatio 2004 - luento 2
Nopeuden hallinta • Edelliset keskittyivät paikan jatkuvuuteen • Aikaulottuvuus tekee interpoloinnin haasteellisemmaksi • Toteutetaan interpolointiparametrin muutosta säätelemällä ( s(t) ) • funktion oltava monotoninen • funktion oltava jatkuva • Kirjassa paljon tekstiä kaaren pituuden laskennasta Animaatio 2004 - luento 2
Nopeuden hallinta (2) • Tyypillinen tavoite Ease-in/Ease-out (vain päätepisteille, ei väliohjauspisteille) • Voidaan toteuttaa sin-funktiolla • Laskennallisesti helpommalla päästään määrittelemällä kiihtyvyys • nopeus saadaan integroimalla kiihtyvyys • paikka saadaan integroimalla nopeus • Voidaan luonnollisesti tehdä myös splineillä, vaikkapa TCB:llä K&B:n T/C-esimerkin tapaan. Animaatio 2004 - luento 2
Videot • Pixar shorts: • Adventures of André and Wally B. (1984) • Luxo Jr. (1986) • Red’s Dream (1987) • Tin Toy (1988) • Klassisen animaation periaatteita, joita näissä videoissa on käytetty (Lasseter 1987) • http://portal.acm.org/citation.cfm?id=37407&dl=ACM&coll=portal • http://www.siggraph.org/education/materials/HyperGraph/animation/character_animation/principles/prin_trad_anim.htm Animaatio 2004 - luento 2