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

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

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

FÖRELÄSNING 1 ANALYS MN1 DISTANS HT06

AB2.1: Grundläggande begrepp av vektoranalys

3D: transformationer:

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

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.

Matematik Åk 9 Provet omfattar stickprov av det centrala innehållet i Lgr b) c) d)

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

Approximation av funktioner

Alistair McIntosh NSMO NCM

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

Introduktion. Exempel Övningar Lösningar 1 Lösningar 2 Översikt

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

Kvaternioner algebraiska och geometriska aspekter

Matematik för sjöingenjörsprogrammet

Integration av matematik och teknik på ingenjörsutbildningar

DOLOMITE FUTURA. Universal rollatorn

Homogena koordinater och datorgrafik

Tisdag v. 2. Speglingar, translationer och skalningar

Begrepp :: Determinanten

Matrisexponentialfunktionen

vsm.skf.com SKF Group 2006 PUB80/P SV 06

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)

Geometriska transformationer

(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.

Abstrakt algebra för gymnasister

Kapitel 3. Approximation av funktioner

2D1210, Numeriska Metoder, GK I för V 2.

TAIU07 Matematiska beräkningar med Matlab

Institutionen för Matematiska Vetenskaper TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1/TM1, TMA

Föreläsning 5. Approximationsteori

REVO LÅGPROFIL INSTRUKTIONSMANUAL

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

Arbetsprover till Bild och Formgivning, Wendela Hebbegymnasiet. Anvisningar och uppgifter.

Du kan hjälpa patienten att förstå vad som gäller

Version Linjär algebra kapiltet från ett ODE-kompendium. Mikael Forsberg

Frågorna 1 till 6 ska svaras med sant eller falskt och ger vardera 1

Kraftuttag 9. Innehåll

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

Regler för flytt av spelare mellan olika nivåer. (Mörkröd nivå Pojkar)

Inlämningsuppgift 4 NUM131

Distriktsfinal. Del 1: 7 uppgifter Tid: 60 min Maxpoäng: 21 (3p/uppgift)

SF1624 Algebra och geometri Tentamen Onsdagen 29 oktober, 2014

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

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

Tentamen Mekanik F del 2 (FFM520)

Wolkerova 845 CZ Hulin Czech Republic

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

TANA17 Matematiska beräkningar med Matlab

MÅL 10 Förmåga att arbeta i projekt. MÅL 9 Förmåga att presentera delarna i designprocessen och resultatet med bild, modell, ritning, skrift och tal.

ATT BRY SIG OM TAR VI PÅ ALLVAR!

Funktioner och grafritning i Matlab

BERGS BALANSSKALA MANUAL

Böj ena knäet, Böj sedan överkroppen TÄNK PÅ:

Fria matteboken: Matematik 2b och 2c

PM-fästen. Pedestal Mounts

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

Fingerprint Matching

52101 Utforska siffror

TAIU07 Matematiska beräkningar med Matlab

Grunderna i SQL del 1

Parametriska kurvor: Parametriska ytor

Snäckväxel GS 50.3 GS med fot och hävarm

Instruktioner för lägenhetsnumrering

Bestämning av tryckfallsfunktioner för T-stycke i T-system med mätdata

Linjär Algebra, Föreläsning 2

Indivo. lyftenheter för det bekväma köket

Kurvor och ytor. Gustav Taxén

Modellering av dynamiska spårkrafter från spårvagnar. Examensarbete utfört av Ejder Eken och Robert Friberg Presentation för Swedtrain,

1965 till 1968 Sekventiell blinkers

Kompletterande lösningsförslag och ledningar, Matematik 3000 kurs B, kapitel 1

Bedöma elevers förmågor i muntlig uppgift

14. Potentialer och fält

MA2047 Algebra och diskret matematik

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Vi introducerar FURUNO CH-37BB

36 träfigurer (20 träfigurer och 9 halvfigurer som kan stå i spår, 7 magnetiska träbitar)

Mekanik III, 1FA103. 1juni2015. Lisa Freyhult

15 februari 2016 Sida 1 / 32

EXAKTKOMBI JC XL ORIGINALET FRÅN TUME.

2. För vilka värden på parametrarna α och β har det linjära systemet. som satisfierar differensekvationen

STYRNING AV PORTFÖLJER MED FLERA TILLGÅNGAR

Installation blandningsdel TBBD GOLD SD

KVALITETSINDIKATORER PÅ 1177.se

Västsvenska paketet Skattning av trafikarbete

Kapitel 16 Situationplan... 3

5 Skapa ett vinnande koncept

Lösningar till linjära problem med MATLAB

Explorativ övning 7 KOMPLEXA TAL

Gör-det-själv-uppgifter 1: marknader och elasticiteter

INFÖR TENTAN (Av Göran Rundqvist, Allmänna råd: Gör inte för mycket av dina räkningar i huvudet, skriv ner dem istället!

KPP053, HT2015 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

Signalanalys med snabb Fouriertransform

STADGAR för Energigas Sveriges auktorisationsnämnd för prövning av behörighet som gasinstallationsledare

Transkript:

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

Representation av rotation 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 nonlinearbeteende Problem med gimbal lock kan förekomma 1/18

Representation av rotation Gimbal lock 2/18

Representation av rotation Andra möjligheter Orthonormal matris enkelt att kombinerar olika operationer (rotation, translation mm) Separat rotationsmatris och vinkel 3-komponent vektor (nästan som kvaternion) längd=vinkel Men hur gör man interpolation? 28/33 3/18

Kvaternioner Upphittat av Sir William Rowan Hamilton Letade efter tredimensionella komplexa tal Bortglömt, men comeback på senare 1900-tal Används för rotationen inom (rymd)flyget, robotik mm 28/33 4/18

Kvaternioner Definition: Kvaternion q = w + xi + yj + zk, med w,x,y,z reela tal Alternativ: q = (w,n) med n tredimensionell vektor (w reel, n imaginär delen) Kan ochså betraktas som en rotation med vinkel v om en valfri axel n q=(cos(v/2),sin(v/2)n) 5/18

Rotation med kvaternioner q = (cos(v/2),sin(v/2)n): q reprensenterat som rotation med vinkel v om axel n Vektor r: Skapa Kvaternion p = (0,r) Kan nu roteras meddels: p' = q p q* Kan enkelt kombinera rotationer 6/18

Räkna med kvaternioner Flerdimensionell generalisering av komplexa tal i² = j² = k² = ijk = -1 Flesta operationer funker som vanligt, fast ingen kommunitativitet på multiplikation qp pq 7/18

Räkna med kvaternioner Multiplikation med imaginärdelen 1 i j k 1 1 i j k i i -1 k -j j j -k -1 i k k j -i -1 8/18

Räkna med kvaternioner Multiplikation av två kvanterjoner: (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 1 x 2 1 y 2 1 z 2 + (w 1 x 2 + x 1 w 2 + y 1 z 2 1 y 2 )i + (w 1 y 2 1 z 2 + y 1 w 2 + z 1 x 2 )j + (w 1 z 2 + x 1 y 2 1 x 2 + z 1 w 2 )k 9/18

Räkna med kvaternioner Konjugat q*: q=(w,n), q*=(w,-n) = (w, - xi, - yj, - zk) Magnitude: q ² = qq* = q*q = w² + n ² = w² + x² + y² + z² Kvadratrot från magnitude = norm Enhetskvaternion: kvaternion med norm=1 Inverse: Erhålles genom att dela kvaternion med norm 10/18

Räkna med kvaternioner Som matris: Kvaternioner kan konverteras till matris genom: alt.: 11/18

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

Räkna med kvaternioner Men hur kommer vi från rotationsmatris till kvaternion? Om T 0: w = = Men: problem om T är nästan noll (t.ex. rotationer om 180 0 ) 13/18

Räkna med kvaternioner 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) 14/18

Räkna med kvaternioner 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)) 15/18

Interpolation med kvaternioner: Slerp Spherical linear interpolation 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 slerp(t, q 1, q 2 ) = (q 2 q 1-1 ) t q 1 (med q1,q2 valfri kvaternioner, t interpolationssteg som är en reel tal mellan 0 t.o.m. 1) Interpolera med konstant hastighet 16/18

Interpolation med kvaternioner: Slerp 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 17/18

Interpolation med kvaternioner: Squad 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 ) 18/18

Questions?

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=pa8 6&ots=FpUpf6p_hw&dq=quaternions%20in%20computer%20 graphics&pg=pa88#v=onepage&q=quaternions%20in%20co mputer%20graphics&f=false Slerp paper: http://portal.acm.org/citation.cfm?doid=325334.325242

Tack så mycket! www.icg.isy.liu.se