TBSK03 Teknik för avancerade Datorspel 49(68)

Relevanta dokument
T BSK03 Teknik för avancerade Datorspel. Jens Ogniewski Information Coding Group Linköpings universitet

TBSK03 Teknik för avancerade Datorspel. Jens Ogniewski Information Coding Group Linköpings universitet

TSBK 10 Teknik för avancerade datorspel Fö 10: Nätverk, Peter Johansson, ISY

Skinning and Animation

Innehåll. Referenssystem. Matriser. Rotationsmatrisen. Euler angle. Animering av ett objekts rotation

Transformationer i 3D. Gustav Taxén

Kvaternioner algebraiska och geometriska aspekter

3D: transformationer:

Vi har väl alla stått på en matta på golvet och sedan hastigt försökt förflytta

Analys o Linjär algebra. Lektion 7.. p.1/65

Explorativ övning 7 KOMPLEXA TAL

x 1 x 2 x 3 x 4 mera allmänt, om A är en (m n)-matris, då ger matrismultiplikationen en avbildning T A : R n R m.

MA2047 Algebra och diskret matematik

Approximation av funktioner

Elteknik. Komplexa tal

TANA17 Matematiska beräkningar med Matlab

5 Linjär algebra. 5.1 Addition av matriser 5 LINJÄR ALGEBRA

Övningshäfte 2: Komplexa tal (och negativa tal)

Övningshäfte 2: Komplexa tal

Föreläsning 5. Approximationsteori

TATM79: Föreläsning 3 Komplexa tal

Kapitel 3. Approximation av funktioner

Linjär Algebra, Föreläsning 2

SF1624 Algebra och geometri

AB2.1: Grundläggande begrepp av vektoranalys

TALBEGREPPET AVSNITT 11

Läsanvisning till Discrete matematics av Norman Biggs - 5B1118 Diskret matematik

c d Z = och W = b a d c för några reella tal a, b, c och d. Vi har att a + c (b + d) b + d a + c ac bd ( ad bc)

Beräkningsvetenskap föreläsning 2

TSRT09 Reglerteori. Sammanfattning av föreläsning 9. Cirkelkriteriet. Sammanfattning av föreläsning 9, forts. Amplitudstabilitet hos svängningar

Självkoll: Ser du att de två uttrycken är ekvivalenta?

Tisdag v. 2. Speglingar, translationer och skalningar

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Parametriska kurvor: Parametriska ytor

= v! p + r! p = r! p, ty v och p är dt parallella. Definiera som en ny storhet: Rörelsemängdsmoment: H O

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna

Linjär Algebra, Föreläsning 2

TALSYSTEM OCH RESTARITMETIKER. Juliusz Brzezinski

Kurvor och ytor. Gustav Taxén

(d) Mängden av alla x som uppfyller x = s u + t v + (1, 0, 0), där s, t R. (e) Mängden av alla x som uppfyller x = s u där s är ickenegativ, s 0.

Geometriska transformationer

Hurwitz 1, 2, 4, 8-sats

Reglerteori, TSRT09. Föreläsning 10: Fasplan. Torkel Glad. Reglerteknik, ISY, Linköpings Universitet. Torkel Glad Reglerteori 2015, Föreläsning 10

Dagens ämnen. Linjära ekvationssystem: Successiv elimination Vektorer Definitionen Grundläggande räkneoperationer Bas och koordinater Ortsvektorer

Naturlagar i cyberrymden VT 2006 Lektion 6. Martin Servin Institutionen för fysik Umeå universitet. Modellering

Komplexa tal. i 2 = 1, i 3 = i, i 4 = i 2 = 1, i 5 = i,...

Gripenberg. Mat Grundkurs i matematik 1 Tentamen och mellanförhörsomtagning,

Matematik för sjöingenjörsprogrammet

Matrisexponentialfunktionen

y(0) = e + C e 1 = 1

Matematik 4 Kap 4 Komplexa tal

TAL, RESTER OCH POLYNOM

Komplexa tal. Sid 1: Visa att ekvationerna på sid 1 saknar reella lösningar genom att plotta funktionerna.

TAIU07 Matematiska beräkningar med Matlab

Tentamensskrivning i Differentialekvationer I, SF1633(5B1206). Webbaserad kurs i differentialekvationer I, SF1656.

FFM234, Klassisk fysik och vektorfält - Föreläsningsanteckningar

MATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht Block 5, översikt

7 Olika faltningkärnor. Omsampling. 2D Sampling.

Övningstenta 001. Alla Linjär Algebra. TM-Matematik Sören Hector Mikael Forsberg. 1. x 2y z + v = 0 z + u + v = 3 x + 2y + 2u + 2v = 4 z + 2u + 5v = 0

CNC5003. CNC5003 är en industrimaskin som även passar hantverkaren. Maskinen är speciellt framtagen för trä, skivmaterial, plast och aluminium.

Homogena koordinater och datorgrafik

3.6 De klassiska polynomens ortogonalitetsegenskaper.

Integration av matematik och teknik på ingenjörsutbildningar

Robotarm och algebra

Planering för Matematik kurs E

Mer om analytisk geometri

NATIONELLT KURSPROV I MATEMATIK KURS E VÅREN Tidsbunden del

Faltning av följder och funktioner

Grundläggande matematisk statistik

= = i K = 0, K =

Tentamen 1 i Matematik 1, HF okt 2018, Skrivtid: 14:00-18:00 Examinator: Armin Halilovic

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

Matematik med datalogi, mfl. Linjär algebra ma014a ATM-Matematik Mikael Forsberg

1. (a) Bestäm alla värden på c som gör att matrisen A(c) saknar invers: c 1

Lösningsförslag v1.1. Högskolan i Skövde (SK) Svensk version Tentamen i matematik

Reglerteknik, TSIU61. Föreläsning 2: Laplacetransformen

den reella delen på den horisontella axeln, se Figur (1). 1

Laboration 1: Linjär algebra

M = c c M = 1 3 1

Complex numbers. William Sandqvist

15 februari 2016 Sida 1 / 32

Ansiktsigenkänning med MATLAB

Rumsuppfattning är förmågan att behandla sinnesintryck av former

Introduktion till Komplexa tal

Affina avbildningar och vektorgrafik

FFM234, Klassisk fysik och vektorfält - Föreläsningsanteckningar

Numerisk Analys, MMG410. Lecture 13. 1/58

Laboration: Grunderna i Matlab

Signaler, information & bilder, föreläsning 14

Numeriska metoder, grundkurs II. Dagens program. Exempel Kubiska splines. Ögna igenom de gamla övningsanteckningarna.

TATM79: Föreläsning 7 Komplexa exponentialfunktionen och binomiska ekvationer

Algebra och Geometri SF1624

1.1 Den komplexa exponentialfunktionen

MR-laboration: design av pulssekvenser

Numerisk Analys, MMG410. Lecture 12. 1/24

Viktigaste begrepp, satser och typiska problem från kursen ALA-A år 2013.

Betygskriterier Matematik E MA p. Respektive programmål gäller över kurskriterierna

Föreläsning 3: Dekomposition. Dekomposition

2s + 3t + 5u = 1 5s + 3t + 2u = 1 3s 3u = 1

Transkript:

49(68) TBSK03 Teknik för avancerade Datorspel 49(68)

Representation av rotation 1/17 Eulervinklar Rotation kring axlarna (t.ex. Zyx) A' = R yaw R pitch R roll A Intuitivt, fast svårt att göra Interpolation av rotation nontrivialt, problem med olinjärt beteende Problem med gimbal lock kan förekomma 50(68)50(68)

Representation av rotation 2/17 Gimbal lock 51(68)51(68)

Representation av rotation 3/17 Andra möjligheter Orthonormal matris enkelt att kombinera olika operationer (rotation, translation mm) Separat rotationsaxel och vinkel 3-komponent vektor (nästan som quaternion) längd=vinkel Men hur gör man interpolation? 52(68)52(68)

Kvaternioner 4/17 Formulerat av Sir William Rowan Hamilton Letade efter tredimensionella komplexa tal Länge bortglömt, comeback på senare 1900-tal Används för rotationen inom (rymd)flyget, robotik mm 53(68)53(68)

Kvaternioner 5/17 Definition: Kvaternion q = w + xi + yj + zk, med w,x,y,z reela tal Kan också skrivas: q = (w,n) där n är en tredimensionell vektor (w realdel, n imaginärdelen) Kan också betraktas som en rotation med vinkel v om en valfri axel n q=(cos(v/2),sin(v/2)n) 54(68)54(68)

Rotation med kvaternioner 6/17 Vektor r: Skapa Kvaternion p = (0,r) Kan nu roteras genom operationen: p' = q p q* (q* = konjugat, definieras senare) Kan enkelt kombinera rotationer 55(68)55(68)

Räkna med kvaternioner 7/17 Flerdimensionell generalisering av komplexa tal i² = j² = k² = ijk = -1 Flesta operationer fungerar som vanligt, dock inte kommunitativitet på multiplikation qp pq 56(68)56(68)

Räkna med kvaternioner 8/17 Multiplikation av i, j och k 1 i j k 1 1 i j k i i -1 k -j j j -k -1 i k k j -i -1 57(68)57(68)

Räkna med kvaternioner 9/17 Multiplikation av två kvaternioner: (w 1 + x 1 i + y 1 j + z 1 k)(w 2 + x 2 i + y 2 j + z 2 k) = w 1 w 2 x 1 x 2 y 1 y 2 z 1 z 2 + (w 1 x 2 + x 1 w 2 + y 1 z 2 z 1 y 2 )i + (w 1 y 2 x 1 z 2 + y 1 w 2 + z 1 x 2 )j + (w 1 z 2 + x 1 y 2 y 1 x 2 + z 1 w 2 )k 58(68)58(68)

Räkna med kvaternioner 10/17 Konjugat q*: q=(w,n), q*=(w,-n) = (w, - xi, - yj, - zk) Magnitud: q ² = qq* = q*q = w² + n ² = w² + x² + y² + z² Kvadratrot av magnitud = norm Enhetskvaternion: kvaternion med norm=1 Erhålles genom att dela kvaternion med norm Invers: 59(68)59(68)

Räkna med kvaternioner 11/17 Som matris: Kvaternioner kan konverteras till matris genom: alt.: 60(68)60(68)

Räkna med kvaternioner 12/17 Men hur kommer vi från matris till kvaternion? Tredimensionell matris: Matrisspår: T = a + e + m + 1 61(68)61(68)

Räkna med kvaternioner 12/17 Men hur kommer vi från matris till kvaternion? Om T 0: w = = Men: problem om T är nästan noll (t.ex. rotationer på 180 0 ) 62(68)62(68)

Räkna med kvaternioner 13/17 Möjlig lösning: w = sqrt( max( 0, 1 + a + e + m) ) / 2 x = sqrt( max( 0, 1 + a - e - m) ) / 2 y = sqrt( max( 0, 1 - a + e - m) ) / 2 z = sqrt( max( 0, 1 - a - e + m) ) / 2 Teckenkorrektur x = copysign( x, h - f ) y = copysign( y, c - g ) z = copysign( z, d - b ) med copysign(a, b) = a sign(a) sign(b) 63(68)63(68)

Räkna med kvaternioner 14/17 Exponentialfunktioner: Vi definerar för q = (cos(v/2), sin(v/2)n): q t = (cos(tv/2),sin(tv/2)n) Dessutom för q= (w,tn): exp(q) = e w (cos(t), sin(t)n) <=> q = R exp((0,n)t), med n = 1, R=1 för enhetskvaternion log(q) = (log(r), nt) <=> q t = exp(t log(q)) 64(68)64(68)

Interpolation m. kvaternioner: Slerp 15/17 Spherical linear interpolation slerp(t, q 1, q 2 ) = (q 2 q 1-1 ) t q 1 (med q1,q2 valfri kvarternioner, t interpolationssteg som är en reel tal mellan 0 t.o.m. 1) q = (q 2 q 1-1 ) t q 1 = q 1 (q 1-1 q 2 ) t = q 2 (q 2-1 q 1 ) 1-t = (q 1 q 2-1 ) 1-t q 2 Interpolera med konstant hastighet 65(68)65(68)

Interpolation m. kvaternioner: Slerp 16/17 Problem: Vid interpolation mellan flera kvaternioner med slerp blir det diskontinuitet i hastigheten när vi byter från ett kvaternionpar till nästa Samma problem om interpolation mellan punktpar 66(68)66(68)

Interpolation m. kvaternioner: Squad 17/17 Lösning (liknar Bézier el. Hermite splines): Definerar: squad(t,a,p,q,b) = slerp(2t(1-t), slerp(t,a,b), slerp(t,p,q)), med a,b,q,b kvaternioner, t interpolationssteg för att få kontinuitet vid interpolation: q i = a i exp(-(log(a i+1 a i -1 ) + log(a i-1 a i -1 ))/4) och interpolera med squad(t, a i, q i, q i+1, a i+1 ( 67(68)67(68)

Länkar Wikipedia: http://en.wikipedia.org/wiki/quaternions_and_spatial_rotation Bok om matematik inom datorgrafik: http://books.google.com/books? id=bfcleqrusm8c&lpg=pa86&ots=fpupf6p_hw&dq=quatern ions%20in%20computer %20graphics&pg=PA88#v=onepage&q=quaternions%20in %20computer%20graphics&f=false Slerp paper: http://dl.acm.org/citation.cfm?doid=325334.325242 68(68)68(68)