3D animaatio: liikekäyrät ja interpolointi. Tommi Tykkälä



Samankaltaiset tiedostot
T Tietokoneanimaatio ja mallintaminen. Lauri Savioja Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio 02/02

Tik Tietokoneanimaatio

Numeeriset menetelmät TIEA381. Luento 7. Kirsi Valjus. Jyväskylän yliopisto. Luento 7 () Numeeriset menetelmät / 43

Numeeriset menetelmät

Luento 3: 3D katselu. Sisältö

Tik Tietokoneanimaatio

Teoreettisia perusteita II

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa

Numeeriset menetelmät

Ympyrä 1/6 Sisältö ESITIEDOT: käyrä, kulma, piste, suora

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Luihin perustuva 3D-animointi tietokonepeleissä

Tekijä Pitkä matematiikka b) Kuvasta nähdään, että b = i 4 j. c) Käytetään a- ja b-kohtien tuloksia ja muokataan lauseketta.

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I

Kantavektorien kuvavektorit määräävät lineaarikuvauksen

Numeeriset menetelmät TIEA381. Luento 6. Kirsi Valjus. Jyväskylän yliopisto. Luento 6 () Numeeriset menetelmät / 33

3.1 Lineaarikuvaukset. MS-A0004/A0006 Matriisilaskenta. 3.1 Lineaarikuvaukset. 3.1 Lineaarikuvaukset

Matikkapaja keskiviikkoisin klo Lineaarialgebra (muut ko) p. 1/81

Luento 7: 3D katselu. Sisältö

Tekijä Pitkä matematiikka Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4).

Luku 7: Animaatio. Eksplisiittiset menetelmät Implisiittiset menetelmät Suora ja käänteinen kinematiikka Motion capture Elokuvamaisuus

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 5: Taylor-polynomi ja sarja

Taso 1/5 Sisältö ESITIEDOT: vektori, koordinaatistot, piste, suora

Numeeriset menetelmät

Tekijä Pitkä matematiikka Poistetaan yhtälöparista muuttuja s ja ratkaistaan muuttuja r.

MS-A0202 Differentiaali- ja integraalilaskenta 2 (SCI) Luento 1: Parametrisoidut käyrät ja kaarenpituus

Ratkaisut vuosien tehtäviin

Lisätehtäviä. Rationaalifunktio. x 2. a b ab. 6u x x x. kx x

Osoita, että kaikki paraabelit ovat yhdenmuotoisia etsimällä skaalauskuvaus, joka vie paraabelin y = ax 2 paraabelille y = bx 2. VASTAUS: , b = 2 2

3x + y + 2z = 5 e) 2x + 3y 2z = 3 x 2y + 4z = 1. x + y 2z + u + 3v = 1 b) 2x y + 2z + 2u + 6v = 2 3x + 2y 4z 3u 9v = 3. { 2x y = k 4x + 2y = h

Yleiset lineaarimuunnokset

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA

Tekijä Pitkä matematiikka Pisteen (x, y) etäisyys pisteestä (0, 2) on ( x 0) Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y.

Tekijä Pitkä matematiikka a) Ratkaistaan nimittäjien nollakohdat. ja x = 0. x 1= Funktion f määrittelyehto on x 1 ja x 0.

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

763306A JOHDATUS SUHTEELLISUUSTEORIAAN 2 Ratkaisut 1 Kevät y' P. α φ

Juuri 6 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty Vastaus: Määrittelyehto on x 1 ja nollakohta x = 1.

MAA15 Vektorilaskennan jatkokurssi, tehtävämoniste

0, niin vektorit eivät ole kohtisuorassa toisiaan vastaan.

Objektien deformaatiot

Numeeriset menetelmät

Kanta ja Kannan-vaihto

Kuva 1: Funktion f tasa-arvokäyriä. Ratkaisu. Suurin kasvunopeus on gradientin suuntaan. 6x 0,2

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa:

2 Pistejoukko koordinaatistossa

Kertaus. x x x. K1. a) b) x 5 x 6 = x 5 6 = x 1 = 1 x, x 0. K2. a) a a a a, a > 0

Tekijä Pitkä matematiikka On osoitettava, että jana DE sivun AB kanssa yhdensuuntainen ja sen pituus on 4 5

Vektoreita GeoGebrassa.

13. Taylorin polynomi; funktioiden approksimoinnista. Muodosta viidennen asteen Taylorin polynomi kehityskeskuksena origo funktiolle

MS-A0205/MS-A0206 Differentiaali- ja integraalilaskenta 2 Luento 1: Parametrisoidut käyrät ja kaarenpituus

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

Lineaarikuvauksen R n R m matriisi

DYNAMIIKKA II, LUENTO 5 (SYKSY 2015) Arttu Polojärvi

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Numeeriset menetelmät

Ortogonaaliset matriisit, määritelmä 1

3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset

Differentiaali- ja integraalilaskenta 2 (CHEM) MS-A0207 Hakula/Vuojamo Kurssitentti, 12.2, 2018, arvosteluperusteet

1 Ominaisarvot ja ominaisvektorit

Suorat ja tasot, L6. Suuntajana. Suora xy-tasossa. Suora xyzkoordinaatistossa. Taso xyzkoordinaatistossa. Tason koordinaattimuotoinen yhtälö.

Vektoriarvoiset funktiot Vektoriarvoisen funktion jatkuvuus ja derivoituvuus

3.4 Käänteiskuvauslause ja implisiittifunktiolause

k=0 saanto jokaisen kolmannen asteen polynomin. Tukipisteet on talloin valittu

1 Rajoittamaton optimointi

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Lineaarialgebra (muut ko)

5 Ominaisarvot ja ominaisvektorit

BM20A1501 Numeeriset menetelmät 1 - AIMO

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

a) on lokaali käänteisfunktio, b) ei ole. Piirrä näiden pisteiden ympäristöön asetetun neliöruudukon kuva. VASTAUS:

Kahden suoran leikkauspiste ja välinen kulma (suoraparvia)

x j x k Tällöin L j (x k ) = 0, kun k j, ja L j (x j ) = 1. Alkuperäiselle interpolaatio-ongelmalle saadaan nyt ratkaisu

Matikkapaja keskiviikkoisin klo Lineaarialgebra (muut ko) p. 1/210

MATEMATIIKAN KOE PITKÄ OPPIMÄÄRÄ

Vanhoja koetehtäviä. Analyyttinen geometria 2016

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

n. asteen polynomilla on enintään n nollakohtaa ja enintään n - 1 ääriarvokohtaa.

Juuri 4 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty Kertaus. b) B = (3, 0, 5) K2. 8 ( 1)

x 7 3 4x x 7 4x 3 ( 7 4)x 3 : ( 7 4), 7 4 1,35 < ln x + 1 = ln ln u 2 3u 4 = 0 (u 4)(u + 1) = 0 ei ratkaisua

( ) ( ) ( ) ( ( ) Pyramidi 4 Analyyttinen geometria tehtävien ratkaisut sivu 271 Päivitetty a) = keskipistemuoto.

Matriisialgebra harjoitukset, syksy x 1 + x 2 = a 0

Jatkuvat satunnaismuuttujat

Matematiikan tukikurssi

TASON YHTÄLÖT. Tason esitystapoja ovat: vektoriyhtälö, parametriesitys (2 parametria), normaalimuotoinen yhtälö ja koordinaattiyhtälö.

Matematiikan tukikurssi

Lineaarikuvausten. Lineaarikuvaus. Lineaarikuvauksia. Ydin. Matriisin ydin. aiheita. Aiheet. Lineaarikuvaus. Lineaarikuvauksen matriisi

Yhtälön oikealla puolella on säteen neliö, joten r. = 5 eli r = ± 5. Koska säde on positiivinen, niin r = 5.

Luento 9: Yhtälörajoitukset optimoinnissa

4 Yleinen potenssifunktio ja polynomifunktio

Neliömatriisi A on ortogonaalinen (eli ortogonaalimatriisi), jos sen alkiot ovat reaalisia ja

Ville Turunen: Mat Matematiikan peruskurssi P1 1. välikokeen alueen teoriatiivistelmä 2007

Pythagoraan polku

Tekijä Pitkä matematiikka

8 KANNAT JA ORTOGONAALISUUS. 8.1 Lineaarinen riippumattomuus. Vaasan yliopiston julkaisuja 151

4. Esittäminen ja visualisointi (renderöinti)

Bijektio. Voidaan päätellä, että kuvaus on bijektio, jos ja vain jos maalin jokaiselle alkiolle kuvautuu tasan yksi lähdön alkio.

Transkriptio:

3D animaatio: liikekäyrät ja interpolointi Tommi Tykkälä

Läpivienti Keyframe-animaatio Lineaarisesta interpoloinnista TCB-splineihin Bezier-käyrät Rotaatioiden interpolointi Kameran animointi Skenegraafit Luurankomallit

Keyframe-animaatio Jokaisen asennon mallintaminen käsin on hyvin työlästä Keyframe-animaation perusideana on määritellä pelkästään animoitavan kappaleen ääriasennot Ääriasentojen väliset asennot on mahdollista interpoloida

Ääriasentojen määrittely Ääriasennot määriteltävä siten, että väliasennot on mahdollista laskea Paikka on helppo tapaus, määriteltävissä vektorina <x,y,z> Rotaatio on hankalampi, matriiseja ei voi interpoloida suoraan! Eulerin teoreema: Kaikki rotaatiot mahdollista esittää yhtenä kiertona jonkun akselin ympäri Esitysmuoto <kiertokulma, kiertoakseli> kirjoitettavissa kvaterniona q Kvaternioita voi interpoloida

Interpolointi Tarkoittaa väliarvojen laskemista päätepisteistä Lineaarinen interpolointi: L(t) = (1-t)*P1 + t*p2 t on aikaparametri joka määritellään välille [0,1]eR Lineaarinen interpolointi tuottaa kulmikasta liikettä! 3. asteen polynomeilla mahdollista tuottaa riittävän kaarevia liikekäyriä

3. asteen liikekäyrä Pitäisi määrätä kertoimet 3. asteen polynomille L(t) = at 3 + bt 2 + ct + d Tunnetaan päätepisteet P 1 ja P 2 : L(0) = P 1, L(1) = P 2. 4 tuntematonta, 2 rajoitetta ei mahdollista ratkaista vielä Määritellään käsin tangettivektorit T 1 ja T 2 päätepisteille 4 tuntematonta, 4 rajoitetta yksikäsitteinen ratkaisu olemassa

Kertoimien laskeminen L(t) = at 3 + bt 2 + ct + d (1) L(0) = d = P 1 (2) L(1) = a+b+c+d = P 2 (3) L (0) = c = T 1 (4) L (1) = 3a+2b+c = T 2 (5) => a = (T 2 T 1-2b)/3 (6 4&5) => a+b+t 1 +P 1 = P 2 (7 2&3&4) => b = P 2 -T 1 -P 1 -(T 2 -T 1-2b)/3 (8 6&7) => 3b = 3P 2-3T 1-3P 1 -T 2 +T 1 +2b (9 8) => b = 3P 2-2T 1-3P 1 -T 2 (10 9) => a = (T 2 -T 1-2(3P 2-2T 1-3P 1 -T 2 ))/3 (11 6&10) => a = (T 2 +T 1-2P 2 +2P 1 ) (12 11) Tulos: L(t) = (2P 1-2P 2 +T 1 +T 2 )*t 3 + (3P 2-2T 1-3P 1 -T 2 )*t 2 + T 1 *t + P 1 Ryhmitellään uudelleen: L(t) = (1-3t 2 +2t 3 )*P 1 + (t-2t 2 +t 3 )*T 1 + (-t 2 +t 3 )*T 2 + (3t 2-2t 3 )*P 2

Automaattinen tangenttien generointi Catmull-Rom splinissä tangentit määräytyy suoraan interpoloitavasta pistejonosta T = (P next P prev )/2 Tuottaa ihan hyviä käyriä, mutta ei säätövaraa! Kuva Kochanek-Bartels artikkelista Interpolating Splines with Local Tension, Continuity and Bias Control

Kochanek-Bartels -splinit Käytetään myös nimeä TCB-splinit T=tension, C=continuity, B=bias Määrittelee jokaiselle liikekäyrän avainpisteelle kaksi tangenttia:sisääntuleva ja ulosmenevä! Sisääntuleva vaikuttaa edelliseen liikekäyrän segmenttiin Ulosmenevä vaikuttaa seuraavaan liikekäyrän segmenttiin T,C ja B säätelee tangenttien pituuksia ja suuntia

TCB-splinit ovat Catmull- Romin laajennus Catmull-Rom määrittelee tangentiksi: 0.5*(P n+1 -P n-1 ) eli 0.5*((P n+1 P n ) + (P n P n-1 )) TCB määrittelee sisääntulevan tangentin: 0.5*(1-t)(1-c)(1+b)*(P n -P n-1 ) + 0.5*(1-t)(1+c)(1-b)*(P n+1 -P n ) TCB määrittelee ulosmenevän tangentin: 0.5*(1-t)(1+c)(1+b)*(P n -P n-1 ) + 0.5*(1-t)(1-c)(1-b)*(P n+1 -P n ) t säätelee tangentin pituutta pisteen P n kohdalla c säätelee käyrän jatkuvuutta pisteen P n kohdalla b säätelee käyrän vääntymää pisteen P n kohdalla t = 0, c = 0, b = 0 Catmull-Rom

t-parametrin vaikutus Kuva Kochanek-Bartels artikkelista Interpolating Splines with Local Tension, Continuity and Bias Control

c-parametrin vaikutus Kuva Kochanek-Bartels artikkelista Interpolating Splines with Local Tension, Continuity and Bias Control

b-parametrin vaikutus Kuva Kochanek-Bartels artikkelista Interpolating Splines with Local Tension, Continuity and Bias Control

Bezier-käyrät n-asteisten polynomikäyrien perhe 3.asteen Bezier-käyrä eroaa TCB-splineistä pelkästään tangenttien määrittelyn osalta Tangenttien sijaan määritellään kontrollipisteet väliin, jotka säätelevät käyrän muotoa Tangenteilla ja kontrollipisteillä on suora yhteys: C 1 = P 1 + T 1 /3 C 2 = P 2 T 2 /3

Bezier-käyrän määrittelytapoja 3. asteen Bezier-käyrän painot pisteille P 1,C 1,C 2 ja P 2 voi määritellä: ((1-t)+t) 3 = (1-t) 3 + 3t(1-t) 2 + 3t 2 (1-t) + t 3 Huom! 1.asteen painot tuottavat lin.interpoloinnin Yleinen kaava painoille (Bernstein): 0 n ( n Cr k)*(1-t) n-k *t k Yhteys Pascalin kolmioon

de Casteliau-menetelmä Bezier-käyrän voi määritellä myös kumuloituna lineaarisena interpolointina pääte- ja kontrollipisteitä A 1 = (1-t)P 1 + tc 1 A 2 = (1-t)C 1 + tc 2 A 3 = (1-t)C 2 + tp 2 B 1 = (1-t)A 1 + ta 2 B 2 = (1-t)A 2 + ta 3 D 1 = (1-t)B 1 + tb 2 D 1 vastaa 3. asteen Bezier-käyrää de Casteliau-menetelmää voi käyttää n-asteisten Bezier-käyrien luomiseen

Käyrien parametrisoinnista Mallintaja käyttää pääsääntöisesti framemäärää ajanmittana Jos frame lkm on epäsymmetrinen keyframen suhteen tangentteja pitää muuttaa! (http://www.cubic.org/~submissive/sourcerer/hermite.htm) Jos käytetään aikaa sellaisenaan, kaikki toimii hyvin

Käyrien parametrisoinnista Aikaparametrin t käyttö sellaisenaan ei tuota tasaista liikettä! Vertaa kuljettua matkaa t kohti kun käyrä on suora tai kaareva ajan sijaan tulisi käyttää matkaa s(t), jonka voi numeerisesti integroida infinitesimaalisista matkayksiköistä

Rotaatioiden interpoloinnista Kuten alussa mainittiin, kvaterniot soveltuvat rotaatioiden interpolointiin esitysmuoto koodattavissa <kiertokulma,kiertoakseli> kvaternioksi Q 0 *Q t vastaa kvaternioiden lin. interpolointia, t e [0,1],t e R Kvaternioiden lineaarinen interpolointi ei tarkoita komponenteittain tehtyä interpolointia! Kvaternioiden interpolointi säilyttää pituuden operaatiossa ja vastaa pikemminkin lin.interpolointia 4d-pallon pinnalla

Lin. Interpolointi 4d-pallon pinnalla Slerp(q 0,q 1,t) = (q 0 sin((1-t)α) + q 1 sin(tα)) / sin(α) Huom! Jos kierrettävä kulma α on hyvin pieni jakaja lähestyy nollaa ja slerp ei toimi hyvin kannattaa käyttää lineaarista interpolointia Slerp kärsii samasta ongelmasta kuten lin. interpolointi paikallekin eli liikkeen kulmikkuus On mahdollista tehdä Bezier-interpolointia kvaternioille sen takia että slerp lin. interpolaatio joka vaaditaan de Casteliau menetelmään

Bezier-interpolaatio kvaternioille Määritellään kontrollikvaterniot C 1 ja C 2 A 1 = slerp(q 0, C 1,t) A 2 = slerp(c 1,C 2,t) A 3 = slerp(c 2,Q 1,t) B 1 = slerp(a 1,A 2,t) B 2 = slerp(a 2,A 3,t) D 1 = slerp(b 1,B 2,t) D 1 vastaa lopullista rotaatiokäyrää

Kameran animointi Kameraan liittyy sisäiset ja ulkoiset parametrit Sisäiset parametrit määräävät perspektiiviprojektion ominaisuudet kuten fov, kuvasuhde, ikkunamuunnos..) Ulkoiset parametrit määräävät kameran sijainnin ja suunnan

Kameran animointi Ulkoiset parametrit ovat keskeisiä animoinnin kannalta Sijainnin animointiin vaaditaan jono pisteitä, jonka kautta kamera kulkee Sijainnin interpolointiin kannattaa käyttää TCBsplinejä hyvän kontrolloitavuuden takia Rotaatiot esitetään kvaternioina ja interpolaatiomenetelmänä kannattaa käyttää Catmull-Romia, koska tangenttien manuaalinen säätäminen on harvoin järkevää

Kameran animointi Kun kaikki geometria on määritelty maailmakoordinaatistoon on syytä suorittaa kameramuunnos Sijainnin ja rotaation perusteella voidaan muodostaa matriisi, jolla muunnoksen saa suoritettua Muunnosmatriisi on käänteinen verrattuna objektien suhteellista paikkaa ja asentoa kuvaaviin matriiseihin

Skenegraafit Käytännössä aina kaikki geometria sijoitetaan skenegraafiin Skenegraafin solmuina on objektit Skenegraafin kaaria vastaa lin. muunnos jolla kuvataan kappaleen suhteellinen siirtymä ja rotaatio isäsolmun suhteen Kameran voi sijoittaa mihin tahansa referenssikoordinaatistoon skenegraafissa mahdollista tehdä esim. first-person vuoristorataajeluja vaunun koordinaatistossa

Skenegraafit Helppoja ja hienoja demoja saa aikaan, kun toteuttaa skenegraafi ja animointituen omaan ohjelmaan ja tekee demon mallinnusohjelmassa Kaiken koodaamalla saa tietysti koodauskokemusta

Luurankomallit Kiinteistä kappaleista koostuvat mallit liian karkeita Luurankomallien avulla mahdollista tehdä sulavaa animaatiota Erotetaan 3d-mallin geometria ja animoitava luuranko toisistaan Luuranko vastaa kiinteän kappaleen mallia Luurangon perusteella liikutetaan jokaista 3dmallin pistettä erikseen

Luurankomallit: skinning Jokainen piste assosioidaan yhden tai useamman luun lokaaliin koordinaatistoon Pisteen lopullinen paikka määräytyy painotettuna summana Mallintajan mahdollista määritellä joka pisteen painot erikseen Lopputuloksena sulava 3d-mallin animaatio