Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Tik Animaatio ja mallintaminen

Samankaltaiset esitykset


Esitys aiheesta: "Tik Animaatio ja mallintaminen"— Esityksen transkriptio:

1 Tik-111.450 Animaatio ja mallintaminen
3. Asennon (pyörähdysliikkeen) esittäminen ja interpolointi Tassu Animaatio luento 3

2 Sisältö kuvat ja kaavat: Watt & Watt
matriisiesitys, matriisin komponenttivektorien merkitys perusakselien transformaatiot kiertymä mielivaltaisen akselin ympäri yleinen rotaatio: ortonormaali matriisi interpolaatio: matriisi ei kelpaa (miksi?) Eulerin kulmat yleisen rotaation esittämisessä Monikäsitteisyys interpolaation vaikeudet singulariteetit (gimbal lock) harjoitustehtävä: demonstroi näitä ongelmatilanteita quaterniot matemaattisena konstruktiona (anekdootti Hamiltonista) kierto mielivaltaisen akselin ympäri - yhteys kvaternioihin kvaternioiden interpolaatio: miksi ei sellaisenaan? slerp: perusidea, projektiivinen esitys, kaksi geodeettista reittiä yleinen splini-interpolaatio slerpille, algoritmi de Casteljaun tapaan kuvat ja kaavat: Watt & Watt Tassu Animaatio luento 3

3 Rotaatiomatriiseista (1)
Rotaatio = koordinaatiston muutos siten, että akselien pituudet, niiden väliset kulmat (ja järjestys), sekä origon paikka säilyvät Eulerin teoreema: mikä hyvänsä asennon muutos voidaan esittää yhtenä rotaationa sopivasti valitun akselin ympäri Matriisiesitys rivit/sarakkeet ovat muunnetun koordinaatiston kantavektoreita rotaatiomatriisi on ortonormaali ts. vektorit kohtisuorassa ja yksikön mittaisia pätee: R-1(a) = R(- a) = RT(a) Perusakselien transformaatiot mikä hyvänsä rotaatio voidaan esittää näiden avulla (ei yksikäsitteisesti) Tassu Animaatio luento 3

4 Rotaatiomatriiseista (2)
Kierrätys mielivaltaisen akselin ympäri kaava laskettavissa valmiiksi (ks. kirja: appendix B.3.3) Interpolaatio kullekin avainasennolle matriisi, joka kuvaa kiertymän objektin perusasennosta tähän tilanteeseen, välivaiheet interpoloimalla matriisi sellaisenaan ei kelpaa intrerpoloitavaksi matriisi tarvitaan mallin pisteiden muuntamiseen kulmia tms. interpoloitaessa matriisi laskettava kuitenkin erikseen Eräs ratkaisu: etsitään akseli, jonka ympäri kierto siirtää objektin suoraan avainasennosta seuraavaan, interpoloidaan lineaarisesti kiertokulmaa. MIKSI EI ? MIKSI EI HYVÄ? Tassu Animaatio luento 3

5 Eulerin kulmat Mikä hyvänsä asennon muutos esitettävissä kombinaationa rotaatioista kolmen (jopa vain kahden) perusakselin ympäri Akselit kiinteitä maailmassa tai liikkuvassa objektissa Vain soveltamisjärjestys ja kulmien suunta vaihtuu Rx(a) Ry(b) Rz(g) = Rz(-g) Ry(-b) Rx(-a) Euler angle vs. Fixed angle representation Akseleiden järjestys Matriisien kertolasku ei kommutatiivinen Rx(a) Ry(b) ≠ Ry(b) Rx(a) Järjestys sovittava - 12 eri vaihtoehtoa Esitystapa ei yksikäsitteinen Sama rotaatio esitettävissä monella tavalla Vaikuttaa interpolointiin: useita eri reittejä asennosta toiseen Tassu Animaatio luento 3

6 Eulerin kulmat: esimerkki
Tassu Animaatio luento 3

7 Lukittuminen (gimbal lock)
Eulerin kulmia käyttävässä esitystavassa esiintyvä singulariteetti Jos kierto johtaa tilanteeseen, jossa kaksi akselia ovat samansuuntaisia, menetetään kolmas vapausaste Seuraus: jonkin akselin ympäri kiertyminen mahdotonta Käytännössä gyroskooppikompassin mekaaninen ripustus lukittuu lentäminen pohjoisnavan yli ? kamera-ajo seurattavan kohteen yli Ei ratkaistavissa akselien valinnalla! Tassu Animaatio luento 3

8 Kvaterniot: referenssi
Lue artikkeli ”Animating rotation with quaternion curves”, K.Shoemake 1985 Tassu Animaatio luento 3

9 Mikä on kvaternio? Algebrallinen määritelmä
kvaterniot matemaattisena konstruktiona Hamilton: onko lukualue laajennettavissa imaginääriluvuista pidemmälle niin että laskusäännöt säilyvät? Algebrallinen määritelmä Komponentit skaala ja suuntavektori q = (s,x,y,z) = (s,v) Algebralliset nolla (0,0,0,0) ja ykkönen (1,0,0,0) Laskentakaavoja summa (q1+q2) ja skalaarilla kertominen (a q) komponenteittain kuten vektoreille tulo q1 q2 = (s1s2 - v1•v2, s1v2+s2v1 - v1 v2) itseisarvo |q| kuten vektorille (euklidinen pituus) yksikkönormeeraus kuten vektorille: |q|-1 q käänteisarvo q-1 = |q|-2 q Tassu Animaatio luento 3

10 Kvaternio rotaationa Merkitään transformoitavaa pistettä vektorikvaterniona v = (0, v) Voidaan osoittaa, että operaatio yksikkökvaterniolla q v’ = q v q-1 toteuttaa vektorin rotaation, jos tulkitaan kvaternion ilmaisevan kierrätyksen määrää (q) ja akselia (=x,y,z) seuraavasti q = Rot(q, ) = (cos(q /2), sin(q /2) ) Kvaternion käänteisarvo toteuttaa vastakkaisen kierron q-1 = Rot(-q, ) = (cos(-q /2), sin(-q /2) ) Kvaternion vastaluku toteuttaa saman kierron (vastakkainen kulma vastakkaisen akselin ympäri) -q = Rot(-q, -) = (cos(-q /2), sin(-q /2) -) = q Seuraus: kvaternioesitys ei täysin yksikäsitteinen Mielivaltainen kvaternio normeerattava ensin yksiköksi Tassu Animaatio luento 3

11 Kaavojen johto Ks. Esim. Watt & Watt 12.2.04 - Tassu
Animaatio luento 3

12 Kvaternioiden interpolaatio (slerp)
Esitetään avainasennot kvaternioina Miksi ei interpoloida sellaisinaan? Spherical Linear intERPolation (slerp) interpoloidaan kvaternioita 4-ulotteisen yksikköpallon pinnalla, lineaarisesti vektoreiden välisen kulman suhteen Kvaterniopallo on projektiivinen taso: vastakkaiset pisteet samoja kaksi geodeettista reittiä - valitaan näistä lyhempi Lineaarinen interpolaatio aiheuttaa kulmikkaan reitin pallolla MITÄ TÄMÄ MERKITSEE ? Tassu Animaatio luento 3

13 Kvaterniosplinit Yleinen splini-interpolaatio slerpille
Algoritmi de Casteljaun tapaan Rekursiivinen interpolaatiokaavio Slerp operaattorina (ohjelmakoodi valmiina) Tangentit avainpisteisiin tuotetaan analogisesti Catmull-Romin tapaan ekstrapoloimalla yksityiskohdat: ks. artikkeli Tassu Animaatio luento 3

14 Käytännöllisiä näkökohtia
Konversiot eri esitystapojen välillä Artikkelissa/kirjassa kaavat, koodia valmiina Yksikäsitteisyys Matriisiesitys aina sama Muunnos Eulerin kulmiksi ei yksikäsitteinen Muunnos kvaternioksi kaksikäsitteinen Kumuloituvat virheet inkrementaalisissa kertolaskuissa tarkkuus heikkenee käytä aina alkuperäisiä lähtötietoja, inrterpoloi niistä Tassu Animaatio luento 3

15 Vielä muuta? Harjoitustehtävä Aiheeseen liittyvää muuta materiaalia
tehtävä: demonstroi Eulerin kulmiin liittyviä ongelmatilanteita ja vertaile näitä kvaternioilla ratkaistuihin Aiheeseen liittyvää muuta materiaalia Tassu Animaatio luento 3

16 Videot Huvipuistojuttuja: Devil’s Mine Pixar: Knick Knack
Tassu Animaatio luento 3


Lataa ppt "Tik Animaatio ja mallintaminen"

Samankaltaiset esitykset


Iklan oleh Google