26
5.2.04 - Tassu Animaatio 2004 - luento 2 1 Tik-111.450 Animaatio ja mallintaminen 2. Avainkuvat ja interpolointi

Tik-111.450 Animaatio ja mallintaminen

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

Page 1: Tik-111.450  Animaatio ja mallintaminen

5.2.04 - Tassu Animaatio 2004 - luento 2 1

Tik-111.450 Animaatio ja mallintaminen

2. Avainkuvat ja interpolointi

Page 2: Tik-111.450  Animaatio ja mallintaminen

5.2.04 - Tassu Animaatio 2004 - luento 2 2

http://www.tonfisk-design.fi/Suomi/runebergin_torttu.html

Page 3: Tik-111.450  Animaatio ja mallintaminen

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

Page 4: Tik-111.450  Animaatio ja mallintaminen

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)

Page 5: Tik-111.450  Animaatio ja mallintaminen

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)

Page 6: Tik-111.450  Animaatio ja mallintaminen

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”

Page 7: Tik-111.450  Animaatio ja mallintaminen

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

Page 8: Tik-111.450  Animaatio ja mallintaminen

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)

Page 9: Tik-111.450  Animaatio ja mallintaminen

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

Page 10: Tik-111.450  Animaatio ja mallintaminen

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

Page 11: Tik-111.450  Animaatio ja mallintaminen

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

Page 12: Tik-111.450  Animaatio ja mallintaminen

5.2.04 - Tassu Animaatio 2004 - luento 2 12

G-

G0

G1

G2

Geometrinen jatkuvuus

ei jatkuva

jatkuva

tangentiaalisesti jatkuva

kaarevuusjatkuva

Page 13: Tik-111.450  Animaatio ja mallintaminen

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ä

Page 14: Tik-111.450  Animaatio ja mallintaminen

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

Page 15: Tik-111.450  Animaatio ja mallintaminen

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

Page 16: Tik-111.450  Animaatio ja mallintaminen

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

Page 17: Tik-111.450  Animaatio ja mallintaminen

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

Page 18: Tik-111.450  Animaatio ja mallintaminen

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)

Page 19: Tik-111.450  Animaatio ja mallintaminen

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

Page 20: Tik-111.450  Animaatio ja mallintaminen

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

Page 21: Tik-111.450  Animaatio ja mallintaminen

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

Page 22: Tik-111.450  Animaatio ja mallintaminen

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

Page 23: Tik-111.450  Animaatio ja mallintaminen

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

Page 24: Tik-111.450  Animaatio ja mallintaminen

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

Page 25: Tik-111.450  Animaatio ja mallintaminen

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.

Page 26: Tik-111.450  Animaatio ja mallintaminen

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