Upload
gillian-haverty
View
45
Download
1
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
5.2.04 - Tassu Animaatio 2004 - luento 2 1
Tik-111.450 Animaatio ja mallintaminen
2. Avainkuvat ja interpolointi
5.2.04 - Tassu Animaatio 2004 - luento 2 2
http://www.tonfisk-design.fi/Suomi/runebergin_torttu.html
5.2.04 - Tassu Animaatio 2004 - luento 2 3
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
5.2.04 - Tassu Animaatio 2004 - luento 2 4
Liikkeen määrittely
• Käsin asettelemalla (perinteinen tapa)
• Interpoloimalla avainasentoja (keyframing)
• Erikoistuneilla ohjelmilla (procedural)
• Rakennekuvauksilla (representational)
• Satunnaisprosesseilla (stochastic)
• Käyttäytymissäännöillä (behavioral)
5.2.04 - Tassu Animaatio 2004 - luento 2 5
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)
5.2.04 - Tassu Animaatio 2004 - luento 2 6
Esimerkki: pomppiva pallo
• Parabolinen lentorata, muuttuva nopeus• Äkillinen suunnanvaihto törmäyksessä• Litistyminen ja venyminen
“squash & stretch”
5.2.04 - Tassu Animaatio 2004 - luento 2 7
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
5.2.04 - Tassu Animaatio 2004 - luento 2 8
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)
5.2.04 - Tassu Animaatio 2004 - luento 2 9
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/dy ei aina edes määritelty MILLOINMILLOIN ?
– vektorin arvona voi olla muutakin kuin geometriaa, esim. värejä (R,G,B,A) tai nivelkulmia
5.2.04 - Tassu Animaatio 2004 - luento 2 10
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
5.2.04 - Tassu Animaatio 2004 - luento 2 11
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 MIKSIMIKSI ?
• Paikallinen vs. globaali kontrolli
5.2.04 - Tassu Animaatio 2004 - luento 2 12
G-
G0
G1
G2
Geometrinen jatkuvuus
ei jatkuva
jatkuva
tangentiaalisesti jatkuva
kaarevuusjatkuva
5.2.04 - Tassu Animaatio 2004 - luento 2 13
Palapolynomit eli splinit
• Matala-asteiset polynomit käteviä parametrifunktioina– laskennallisesti helppoja– derivoituvia (C )
• Yhden polynomin käyttö koko käyrällä hankalaaasteluku = 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ä
5.2.04 - Tassu Animaatio 2004 - luento 2 14
Bezier-käyrä ja B-splini
• Yksi polynomifunktio koko käyrälleohjauspisteiden 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
5.2.04 - Tassu Animaatio 2004 - luento 2 15
Rationaalisplinit• Tavanomainen polynomikäyrä
(x,y,z)(t) = Pi Bi(t) Pi = ohjauspiste
– kullekin koordinaatille polynomi samasta kannasta B(t)– vektorifunktio on painotettu summa ohjauspisteistä
• Rationaalikäyrä
(x,y,z,w)(t) = Pi Bi(t)
– kullekin koordinaatille rationaalifunktio x(t)/w(t)– ohjauspisteille “painokertoimet” w(t) vapauksia
mm. tarkka esitys 2 käyrille (ellipsi/parabeli/hyperbeli)
• NURBS: “non-uniform rational B-spline”– polynomikantana B-splinit rationaalimuodossa– solmupisteet eivät tasavälisesti parametriasteikolla
5.2.04 - Tassu Animaatio 2004 - luento 2 16
Matematiikkaa
• Bezier-käyrän määrittely ja laskenta, ekvivalenssi de Casteljaun kanssa:– http://www.ibiblio.org/e-notes/Splines/Bezier.htm
5.2.04 - Tassu Animaatio 2004 - luento 2 17
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
5.2.04 - Tassu Animaatio 2004 - luento 2 18
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)
5.2.04 - Tassu Animaatio 2004 - luento 2 19
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
5.2.04 - Tassu Animaatio 2004 - luento 2 20
TCB splini
• Lue artikkeli: Kochanek & Bartelshttp://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
5.2.04 - Tassu Animaatio 2004 - luento 2 21
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
5.2.04 - Tassu Animaatio 2004 - luento 2 22
Spliniyhteenveto
Splinit
Approksimoivat Interpoloivat
Bezier
B-splinit
Beta-splinit
Hermiten splinit
KardinaalisplinitCatmull-Rom
TCB
”Luonnolliset” splinit
5.2.04 - Tassu Animaatio 2004 - luento 2 23
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
5.2.04 - Tassu Animaatio 2004 - luento 2 24
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
5.2.04 - Tassu Animaatio 2004 - luento 2 25
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.
5.2.04 - Tassu Animaatio 2004 - luento 2 26
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