Tik-111.5450 Tietokoneanimaatio



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

Luento 7: 3D katselu. Sisältö

Konformigeometriaa. 5. maaliskuuta 2006

Luento 3: 3D katselu. Sisältö

Lineaariavaruudet. Span. Sisätulo. Normi. Matriisinormit. Matriisinormit. aiheita. Aiheet. Reaalinen lineaariavaruus. Span. Sisätulo.

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

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

3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta.

KOMPLEKSILUVUT C. Rationaaliluvut Q. Irrationaaliluvut

VEKTORIT paikkavektori OA

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 4 / vko 47

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on

Vektorialgebra 1/5 Sisältö ESITIEDOT: vektori

Insinöörimatematiikka D

Vektorit, suorat ja tasot

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

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

Avaruuden kolme sellaista pistettä, jotka eivät sijaitse samalla suoralla, määräävät

Vektoreita GeoGebrassa.

Viikon aiheet. Funktion lineaarinen approksimointi

Matriisilaskenta Luento 12: Vektoriavaruuden kannan olemassaolo

Luento 10: Työ, energia ja teho. Johdanto Työ ja kineettinen energia Teho

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

Muodonmuutostila hum

Ortogonaaliset matriisit, määritelmä 1

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

Insinöörimatematiikka D, laskuharjoituksien esimerkkiratkaisut

Lineaarialgebra ja matriisilaskenta I

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

MS-A0003/A Matriisilaskenta Laskuharjoitus 6

Luento 8: Epälineaarinen optimointi

A B = (1, q, q 2 ) (2, 0, 2) = 2 2q q 2 = 0 q 2 = 1 q = ±1 A(±1) = (1, ±1, 1) A(1) A( 1) = (1, 1, 1) (1, 1, 1) = A( 1) A(1) A( 1) = 1

Sisätuloavaruudet. 4. lokakuuta 2006

1 Kompleksiluvut. Kompleksiluvut 10. syyskuuta 2005 sivu 1 / 7

6 MATRIISIN DIAGONALISOINTI

k=1 b kx k K-kertoimisia polynomeja, P (X)+Q(X) = (a k + b k )X k n+m a i b j X k. i+j=k k=0

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

4. Käyrän lokaaleja ominaisuuksia

Ratkaisuehdotukset LH 7 / vko 47

5 Ominaisarvot ja ominaisvektorit

Lineaarialgebra ja matriisilaskenta II Syksy 2009 Laskuharjoitus 1 ( ) Ratkaisuehdotuksia Vesa Ala-Mattila

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

1 Ominaisarvot ja ominaisvektorit

MS-A0004/A0006 Matriisilaskenta

Talousmatematiikan perusteet: Luento 8. Vektoreista ja matriiseista Vektorien peruslaskutoimitukset Lineaarinen riippumattomuus Vektorien sisätulo

Johdatus matematiikkaan

802320A LINEAARIALGEBRA OSA III

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

Luento 8: Epälineaarinen optimointi

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

1. Olkoot vektorit a, b ja c seuraavasti määritelty: a) Määritä vektori. sekä laske sen pituus.

Analyysi I. Visa Latvala. 3. joulukuuta 2004

Tik Tietokoneanimaatio

MS-C1340 Lineaarialgebra ja

Hilbertin avaruudet, 5op Hilbert spaces, 5 cr

Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia

H = : a, b C M. joten jokainen A H {0} on kääntyvä matriisi. Itse asiassa kaikki nollasta poikkeavat alkiot ovat yksiköitä, koska. a b.

2.5. Matriisin avaruudet ja tunnusluvut

Vektoreiden A = (A1, A 2, A 3 ) ja B = (B1, B 2, B 3 ) pistetulo on. Edellisestä seuraa

Tyyppi metalli puu lasi työ I II III

Luento 4: 3D Transformaatiot

Ortogonaalinen ja ortonormaali kanta

Talousmatematiikan perusteet: Luento 9

Yleiset lineaarimuunnokset

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

Määritelmä 1. Olkoot V ja W lineaariavaruuksia kunnan K yli. Kuvaus L : V. Termejä: Lineaarikuvaus, Lineaarinen kuvaus.

Avaruuden R n aliavaruus

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Matriisialgebra harjoitukset, syksy 2016

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

Matriisi-vektori-kertolasku, lineaariset yhtälöryhmät

C = {(x,y) x,y R} joiden joukossa on määritelty yhteen- ja kertolasku seuraavasti

Suora. Määritelmä. Oletetaan, että n = 2 tai n = 3. Avaruuden R n suora on joukko. { p + t v t R},

Lineaarialgebra ja matriisilaskenta I. LM1, Kesä /218

Funktioiden approksimointi ja interpolointi

Insinöörimatematiikka D

Vektorit. Kertausta Seppo Lustig (Lähde: avoinoppikirja.fi)

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

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

Luihin perustuva 3D-animointi tietokonepeleissä

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

Lineaarialgebra ja matriisilaskenta I

Johdatus matematiikkaan

Luento 4: Kiertomatriisi

A-osio. Tehdään ilman laskinta ja taulukkokirjaa! Valitse tehtävistä A1-A3 kaksi ja vastaa niihin. Maksimissaan tunti aikaa suorittaa A-osiota.

Algebran perusteet. 44 ϕ(105) = (105). Näin ollen

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

Sisältö. Luento 1: Transformaatiot (2D) 1. Koordinaattimuunnokset. Muunnokset (jatkuu) 2. Perustransformaatiot. Perustransformaatiot (jatkuu)

KJR-C1001 Statiikka ja dynamiikka. Luento Susanna Hurme

Lineaarialgebra MATH.1040 / voima

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

y z = (x, y) Kuva 1: Euklidinen taso R 2

MS-C1340 Lineaarialgebra ja

Insinöörimatematiikka D

Matriisilaskenta, LH4, 2004, ratkaisut 1. Hae seuraavien R 4 :n aliavaruuksien dimensiot, jotka sisältävät vain

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Insinöörimatematiikka D

1 Kompleksiluvut 1. y z = (x, y) Kuva 1: Euklidinen taso R 2

Pistetulo eli skalaaritulo

Transkriptio:

Tik-111.5450 Tietokoneanimaatio 3. Asennon (pyörähdysliikkeen) esittäminen ja interpolointi 3.10.05 - Tassu Animaatio 2005 - luento 3 1

Sisältö matriisiesitys, matriisin komponenttivektorien merkitys perusakselien transformaatiot kiertymä mielivaltaisen akselin ympäri yleinen rotaatio: ortonormaali matriisi kuvat ja kaavat: interpolaatio: matriisi ei kelpaa (miksi?) Eulerin kulmat yleisen rotaation esittämisessä Watt & Watt 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 3.10.05 - Tassu Animaatio 2005 - luento 3 2

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 (α) = R(- α) = R T (α) Perusakselien transformaatiot mikä hyvänsä rotaatio voidaan esittää näiden avulla (ei yksikäsitteisesti) 3.10.05 - Tassu Animaatio 2005 - luento 3 3

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 MIKSI EI? 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 HYVÄ? 3.10.05 - Tassu Animaatio 2005 - luento 3 4

Eulerin kulmat Mikä hyvänsä asennon muutos esitettävissä kombinaationa rotaatioista kolmen (jopa vain kahden) perusakselin ympäri Akselit kiinteitä maailmassa tai liikkuvassa objektissa Euler angle vs. Fixed angle representation Vain akselien soveltamisjärjestys vaihtuu R x (α) R y (β) R z (γ) = R Z (γ) R Y (β) R X (α) Akseleiden järjestys Matriisikertolasku ei kommutatiivinen R x (α) R y (β) R y (β) R x (α) mutta R x (α) R y (β) = [ R y (-β) R x (-α) ] -1 Järjestys sovittava - 12 eri vaihtoehtoa Esitystapa ei yksikäsitteinen Sama rotaatio esitettävissä monella tavalla Vaikuttaa interpolointiin: useita eri reittejä asennosta toiseen 3.10.05 - Tassu Animaatio 2005 - luento 3 5

Eulerin kulmat: esimerkki 3.10.05 - Tassu Animaatio 2005 - luento 3 6

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! 3.10.05 - Tassu Animaatio 2005 - luento 3 7

Kvaterniot: referenssi Lue artikkeli Animating rotation with quaternion curves, K.Shoemake 1985 http://portal.acm.org/citation.cfm?id=325242 3.10.05 - Tassu Animaatio 2005 - luento 3 8

Mikä on kvaternio? 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 (q 1 +q 2 ) ja skalaarilla kertominen (a q) komponenteittain kuten vektoreille tulo q 1 q 2 = (s 1 s 2 - v 1 v 2, s 1 v 2 +s 2 v 1 - v 1 v 2 ) itseisarvo q kuten vektorille (euklidinen pituus) yksikkönormeeraus kuten vektorille: q -1 q käänteisarvo q -1 = q -2 q 3.10.05 - Tassu Animaatio 2005 - luento 3 9

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ää (θ) ja akselia (ψ=x,y,z) seuraavasti: q = Rot(θ, ψ) = (cos(θ /2), sin(θ /2) ψ) Kvaternion käänteisarvo toteuttaa vastakkaisen kierron q -1 = Rot(-θ, ψ) = (cos(-θ /2), sin(-θ /2) ψ) Kvaternion vastaluku toteuttaa saman kierron (vastakkainen kulma vastakkaisen akselin ympäri) -q = Rot(-θ, -ψ) = (cos(-θ /2), sin(-θ /2) -ψ) = q seuraus: kvaternioesitys ei täysin yksikäsitteinen Mielivaltainen kvaternio normeerattava ensin yksiköksi 3.10.05 - Tassu Animaatio 2005 - luento 3 10

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

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? 3.10.05 - Tassu Animaatio 2005 - luento 3 12

Kvaterniosplinit (1) Yleinen splini-interpolaatio slerpille Algoritmi de Casteljaun tapaan Rekursiivinen interpolaatiokaavio Slerp operaattorina (ohjelmakoodi valmiina) P 0 1 = slerp(p 0,P 1,t) P 0 2 = slerp(p 01,P 11,t) P 1 1 = slerp(p 1,P 2,t) P(t) = slerp(p 02,P 12,t) P 1 2 = slerp(p 11,P 21,t) P 2 1 = slerp(p 2,P 3,t) 3.10.05 - Tassu Animaatio 2005 - luento 3 13

Kvaterniosplinit (2) Tangentit avainpisteisiin analogisesti Catmull-Romin tapaan ekstrapoloimalla avainpisteet q n-1 q n q n+1 lineaarisilla vektoreilla pätisi B n = (q n-1 +q n+1 ) / 2 = (2 (q n q n-1 ) +q n+1 ) / 2 pallon pinnalla tehdään analogisesti 2a Bn = slerp(q n-1, q n+1, 0.5), missä q n-1 = slerp(q n-1, q n, 2) a b c = (a+b)/2 3.10.05 - Tassu Animaatio 2005 - 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, interpoloi niistä Avainkuvilla tehty rotaatio ei ole fysikaalista! 3.10.05 - Tassu Animaatio 2005 - luento 3 15

Harjoitustehtävät 1-2 Interpoloinnin harjoittelua tehtävä 1: paikan (translaation) interpolointia avainpisteiden kautta kirjoita inbetweening-toiminnon toteuttava ohjelma demonstroi erilaisia TCB-splinin ominaisuuksia tehtävä 2: asennon (rotaation) interpolointia jatkoa edelliseen: avainpisteissä myös asento demonstroi eri esitysmuotojen vaikutusta (matriisi sellaisenaan, Eulerin kulmat, kvaterniot), erityisesti pyri esittelemään ongelmatilanteita Ohjelmointiympäristöstä OpenGL, oltava ajettavissa TKK:n koneilla laiteriippumaton ohjelmarunko tarjolla valmiina Palautustapa ohjelmakoodi + animaatio tiedostona (.mov tai.avi) Tarkemmat ohjeet webissä http://www.tml.hut.fi/opinnot/t-111.5450/2005/harjoitustyot/ 3.10.05 - Tassu Animaatio 2005 - luento 3 16

Videot Classics High Fidelity Glider 2002 Academy Award Winner The ChubbChubbs! 3.10.05 - Tassu Animaatio 2005 - luento 3 17