Bakgrund. Bakgrund. Kursmaterial. Transformationer i 3D. Matematiska byggstenar. GrIP våren 2008, Förel.10 Yngve Sundblad

Relevanta dokument
Transformationer i 3D. Gustav Taxén

3D: transformationer:

Rotation Rotation 187

Exempelsamling :: Vektorintro V0.95

Transformationer. Translation. Skalning. Homogena koordinater. Rotation. 2D-grafik. x y. Inom datorgrafik är transformationer den. Många. bevaras.

Associerade Legendre-funktioner och klotytefunktioner Ulf Torkelsson

1 av 9. vara en icke-nollvektor på linjen L och O en punkt på linjen. Då definierar punkten O och vektorn e ett koordinataxel.

Transformationer, Angel

Vektorer En vektor anger en riktning i rummet (eller planet) och en längd (belopp). Vektorer brukar ritas som pilar, Vektoraddition

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

Parametriska kurvor: Parametriska ytor

MA2004 Tillämpad Matematik II, 7.5hp,

Linjär Algebra, Föreläsning 2

TATM79: Föreläsning 5 Trigonometri

2x + y + 3z = 1 x 2y z = 2 x + y + 2z = 1

= 1 h) y 3 = 4(x 1) i) y = 17 j) x = 5. = 1 en ekvation för linjen genom a) (6, 0) och (0, 5) b) (9, 0) och (0, 5)

MATEMATIK Datum: Tid: förmiddag. A.Heintz Telefonvakt: Tel.:

Visualisering Transformationer, vyer, projektioner, skymda ytor

Linjära avbildningar. Låt R n vara mängden av alla vektorer med n komponenter, d.v.s. x 1 x 2. x = R n = x n

Homogena koordinater och datorgrafik

1 som går genom punkten (1, 3) och är parallell med vektorn.

Explorativ övning Vektorer

Tentamen 1 i Matematik 1, HF dec 2017, kl. 8:00-12:00

INLEDNING: Funktioner (=avbildningar). Beteckningar och grundbegrepp

Geometriska vektorer

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

Figur 5.1. En triangel där nedre högra hörnet har en rät vinkel (90 ).

Frågorna 1 till 6 ska svaras med ett kryss för varje korrekt påstående. Varje uppgift ger 1 poäng. Använd bifogat formulär för dessa 6 frågor.

LINJÄRA AVBILDNINGAR

LEDNINGAR TILL PROBLEM I KAPITEL 2 OBS! En fullständig lösning måste innehålla en figur!

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

5. Linjer och plan Linjer 48 5 LINJER OCH PLAN

Veckoblad 3, Linjär algebra IT, VT2010

15. Ordinära differentialekvationer

MATEMATIK Chalmers tekniska högskola Tentamen , kl och v 4 =

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

1 Linjära ekvationssystem. 2 Vektorer

Vektorgeometri. En vektor v kan representeras genom pilar från en fotpunkt A till en spets B.

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

2D-grafik. Gustav Taxén

M = c c M = 1 3 1

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

ÖVN 5 - DIFFERENTIALEKVATIONER OCH TRANSFORMMETODER - SF Nyckelord och innehåll.

vilket är intervallet (0, ).

Bestäm den sida som är markerad med x.

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

KOMIHÅG 2: Kraft är en vektor med angreppspunkt och verkningslinje. Kraftmoment: M P. = r PA

TBSK03 Teknik för avancerade Datorspel 49(68)

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

SF1624 Algebra och geometri

Veckoblad 1, Linjär algebra IT, VT2010

UPPSALA UNIVERSITET Matematiska institutionen Styf. Exempeltenta med lösningar Programmen EI, IT, K, X Linjär algebra juni 2004

SF1624 Algebra och geometri

Inledande kurs i matematik, avsnitt P.4

Transformationer i R 2 och R 3

Anmärkning: Härledning av ovanstående formel finns i slutet av stencilen.

Spelutveckling 3d-grafik och modellering. Grunder för 3d-grafik Blender Animering

3 Gaspumpar. Några fläkttyper

TANA17 Matematiska beräkningar med Matlab

Introduktion till fotogrammetrin

19. Spektralsatsen Spektralsatsen SPEKTRALSATSEN

Tenta i MVE465 Linjär algebra och analys fortsättning. K/Bt/Kf. (2p) Z 2 xdx b) Beräkna 0 (x + 1) (2x + 1). (3p)

SF1624 Algebra och geometri Tentamen med lösningsförslag onsdag, 11 januari 2017

Geometriska transformationer

1 Ortogonalitet. 1.1 Skalär produkt. Man kan tala om vinkel mellan vektorer.

Mer om geometriska transformationer

1 Materiell derivata. i beräkningen och så att säga följa med elementet: φ δy + δz. (1) φ y Den materiella derivatan av φ definierar vi som.

KVALIFICERINGS- OCH LAGTÄVLING

Linjär Algebra, Föreläsning 2

MA2004 Tillämpad Matematik II, 7.5hp,

1. För en partikel som utför en harmonisk svängningsrörelse gäller att dess. acceleration a beror av dess läge x enligt diagrammet nedan.

Läsanvisningar och övningsuppgifter i MAA150, period vt Erik Darpö

Matrisavbildningar. Kirsti Mattila K T H

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

Uppgift 1. (4p) (Student som är godkänd på KS1 hoppar över uppgift 1.) Vi betraktar triangeln ABC där A=(1,0,3), B=(2,1,4 ), C=(3, 2,4).

LABORATION 4 DISPERSION

MA2004 Tillämpad Matematik II, 7.5hp,

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

Exempel på hur man ställer upp den styrande differentialekvationen.

M0043M Integralkalkyl och Linjär Algebra, H14,

Detta cosinusvärde för vinklar i [0, π] motsvarar α = π 4.

Linjär algebra på några minuter

Föreläsning 3, Linjär algebra IT VT Skalärprodukt

Moment 4.11 Viktiga exempel 4.32, 4.33 Övningsuppgifter Ö4.18-Ö4.22, Ö4.30-Ö4.34. Planet Ett plan i rummet är bestämt då

1. Bestäm volymen för den parallellepiped som ges av de tre vektorerna x 1 = (2, 3, 5), x 2 = (3, 1, 1) och x 3 = (1, 3, 0).

Karta över Jorden - viktigt exempel. Sfär i (x, y, z) koordinater Funktionen som beskriver detta ser ut till att vara

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

För ingenjörs- och distansstudenter Linjär Algebra ma014a ATM-Matematik Mikael Forsberg

1. Inledning. x y z. u = xe 1 + ye 2 + ze 3 = e

Tentamen i Linjär algebra , 8 13.

Exempel :: Spegling i godtycklig linje.

vara n-dimensionella vektorer. Skalärprodukten av a och b betecknas a b ) vara tvådimensionella vektorer. Skalärprodukten av a och b är

Tentamen i Linjär algebra, HF1904 exempel 1 Datum: xxxxxx Skrivtid: 4 timmar Examinator: Armin Halilovic

1. För vilka värden på konstanterna a och b är de tre vektorerna (a,b,b), (b,a,b) och (b,b,a) linjärt beroende.

Matematik med Matlab för I Inledning. 1 Programmering i MATLAB

ax + y + 2z = 3 ay = b 3 (b 3) z = 0 har (a) entydig lösning, (b) oändligt många lösningar och (c) ingen lösning.

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)

Numerisk kollision av stela kroppar

Bo E. Sernelius Funktioner av Komplex Variabel 15 KOMPLEXVÄRDA FUNKTIONER AV KOMPLEX VARIABEL

Vektorgeometri för gymnasister

Transkript:

GrI åren 28, Förel. Bakgrun 3D-transformationer & erspekti & Gusta Taén @kth.se & gustat@csc.kth.se Ett smiigt sätt att arbeta me 3D-grafik är att tänka sig att man har en irtuell kamera som betraktar betraktar e föremål man ill rita. Om i simulerar hur ljus från ljuskällor reflekteras a tor och når kameran kan i få en bil som i bästa fall liknar ett fotografi. DH264 Grafik och Interaktionsprogrammering VT 28 Bakgrun Vi börjar me att ta rea på hur i kan transformera 3D-föremål och gå (projicera) från tre imensioner till tå. Vi tar han om ljusreflektion och skuggning senare i kursen! Kursmaterial 3D-transformationer: Kursboken (Angel) kap.4 rojektioner: Kursboken (Angel), kap.5 Ingri Carlbom & Joseph aciorek: : lanar Geometric rojections an Viewing Transformations, Computing Sures (4), Dec 978, pp.465-492 (hela -52) (i kursbunten) Transformationer i 3D Matematiska bggstenar Transformation rojektion Skalär (storhet) unkt (position) Vektor (läng och riktning) u Transformation Viewporttransformation Katernion (3D-rotation)-orientering -orientering q

GrI åren 28, Förel. Skalär- och krssproukt Tå a e anligaste ektoroperationerna i atorgrafik Höger- och änsterhänt koorinat- sstem u (u + u,+u ) u cos θ Skalärproukten är omm faktorerna är ortogonala (inkelräta) u θ u u (u u, u u, u u ) Krssproukten (en ektor) är ortogonal mot bägge faktorerna u OpenGL anäner ett högerhänt koorinatsstem me -aeln till höger, -aeln uppåt. -aeln pekar utåt ur skärmen. Direct 3D anäner ett änsterhänt koorinatsstem me -aeln till höger, -aeln uppåt. -aeln pekar in i skärmen. u I fortsättningen arbetar i i högerhänta koorinatsstem. Basektorer Giet 3 st 3-imensionella basektorer,, som alla är inkelräta mot aranra kan i skria ektorn w som w α + α 2 + α 3 Basektorer Vi inför ektorer i ektorer för att kunna skria w α + α 2 + α 3 lite kortare som: α 3 w α w a T är α 2 a α α 2 α 3 a T α α 2 α 3 Ramar (frames) Ramar (frames) Vi efinierar en ram som (,,, ) är kallas ramens origo. För punkter i enna ram gäller: + η + η 2 + η 3 eller p T η 3 η η 3 η är p T η η 2 η 3 η 2 η 2 (4D homogena koorinater, jfr 3D homogena för punkter i planet) Vi efinierar och

GrI åren 28, Förel. Ramar (frames) Bte a ram En riktningsektor w i enna ram skris w a T Giet tå ramar (,,, ) och (u, u 2, u 3, Q ), kan i skria u γ + γ 2 + γ 3 u 2 γ 2 + γ 22 + γ 23 γ 3 γ 2 u γ är u 3 γ 3 + γ 32 + γ 33 a T α α 2 α 3 Q γ 4 + γ 42 + γ 43 + Riktningsektorer efinieras alltså oberoene a origo. Bte a ram u γ + γ 2 + γ 3 u 2 γ 2 + γ 22 + γ 23 u 3 γ 3 + γ 32 + γ 33 Q γ 4 + γ 42 + γ 43 + Det är smiigare att skria rambtet på matrisform: unkter och rambte Ta nu en punkt och efiniera en i tå olika ramar: α + α 2 + α 3 + β u + β 2 u 2 + β 3 u 3 + Q i en första ramen i en anra Hur är α- och β-ärena relaterae? u u 2 u 3 Q γ γ 2 γ 3 γ 2 γ 22 γ 23 γ 3 γ 32 γ 33 γ 4 γ 42 γ 43 u u 2 (enl. oan) β β β 2 3 u a 2 b T M 2 α T 3 α 2 α 3 3 Q M (föregåene bil) unkter och rambte b T M a T b T M a T a M T b och omänt: b (M T ) - a D..s. s koorinater i ram 2 fås om man multiplicerar koorinaterna för ram me (M T ) -. Eempel Antag att i har tå ramar (,,, ) och (u, u 2, u 3, Q ) och att ramarna är relaterae till aranra enligt följane: u 3 Q M T u u 2.6.8.8 -.6.5 u (3 + 4 )/5 u 2 (4-3 )/5 u 3 Q +.5 M (M T ) -.6.8.8 -.6.5.6.8.8 -.6 -.5

GrI åren 28, Förel. Eemplet b Tag nu punkten a ( ) T i en första ramen. Vilken är ess motsarighet i en anra ramen? b (M T ) - a ger oss.6.8.8 -.6 a.4.2 -.5 T rel -.5, -.5 rel Q u 3 Q.4.2 u u 2 Vi kan också se rambtet som en transformation. Eemplet: Antag att "ärlen" är ram och att i gör ett temporärt rambte till ram 2. Vi specificerar nu punkten p (.4.2 -.5 ) T i ram 2. I ram blir en p ärlen M T p ( ) T Me anra or är bte a ram och transformation ekialenta begrepp! Firam och transformationsram Ofta jobbar man me en "firam" (t.e. kameran/utsiktspunkten) och en "transformationsram". Firamen är fast och transformationsramen tillåts ariera. Eempel: - M T Våra koorinater α α 2 α 3 unkt i transf.- ramen α α 2 α 3 - Mots. punkt i firamen Firam Firam och transformationsram Specificera en moell i "sitt eget" koorinatsstem, objektkoorinater. "lacera ut" moellen i "ärlen" genom att efiniera en transformationsram. Multiplicera objektkoorinaterna me M T för att få moellens koorinater i firamen. Groa-moell i ess objektkoorinatsstem Firam Transformationsram Transformationsram 3D-transformationsmatriser(jfr 2D) Translation Skalning & # & # & # &!!!! T!! M T!!!!!! % " % " % " % & # & # & s!!!! s S!! s!! % " % " % # & #!!!!!!!! " % " t #& # t!!!! t!!!! "% " 3D-rotationsmatriser (tre( tre,, en i 2D) Rotation kring -aeln Rotation kring -aeln Rotation kring -aeln " % " % " cos( )sin( % " % R (() sin( cos( # & # & # & # & " % " % " % " % R (() cos( )sin( sin( cos( # & # & # & # & " % " % " cos( sin( % " % R (() )sin( cos( # & # & # & # &

GrI åren 28, Förel. Multipla transformationer (som 2D) Vi kan sätta samman transformationer genom att multiplicera matriserna: - s s - T S TS Multipla transformationer Obserera att orningen på multiplikationen kan spela roll! - s s - T S TS s - TS α α 2 α 3 α sα 2 α 3 - s S - T s -s ST Att specificera orientering (rotationer) Vi börjar me att pröa aw-pitch-roll (gir-stig-roll( gir-stig-roll). Antag att flgplanet är moellerat så et initialt "pekar" längs -aeln. Vi roterar först kring -aeln (roll), sean kring -aeln (aw), sist kring -aeln (pitch). Kallas för att arbeta me Euler angles eller Eulermatriser. Gimbal lock Om i roterar en a alarna så en sammanfaller me en a e anra kan i hamna i ett läge är i tappar information! Situationen kallas för Gimbal lock. Beror på att rotationerna allti görs i samma orning. Gimbal lock: eempel Rotation i 3D θ 2 θ 9 graer 2 2 3 BÅDE θ och θ beskrier "pitch"! θ 3 3 Man kan isa att ilken orientering (3D-rotation) som helst kan beskrias som en ( st) rotation kring en ektor. Rotationsmatriserna (kring -, - och -alarna) kan sättas ihop till en transformation utgåene från rotationsektorn och rotationsinkeln

GrI åren 28, Förel. Allmän 3D-rotation - Angel 4.9.4 Om rotationsenhetsektorn är a (a, a, a) och rotationsinkeln runt enna ektor är θ roterar man först kring -aeln till -planet () me inkeln θ arctan(a/a); a 2 +a 2, cos(θ )a/, sin(θ )a/, sean kring -aeln till -planet me inkeln θ -arcsin(a); cos(θ ), sin(θ )-a, sean kring -aeln me inkeln θ θ sean tillbaka kring -aeln me inkeln -θ sean tillbaka kring -aeln me inkeln -θ Alltså blir totala transformationsmatrisen: R (-θ ) R (-θ ) R (θ) R (θ ) R (θ ) Katernioner, Angel 4.2 En matematisk struktur som kan beskria 3D-rotation kring en gotcklig ektor är katernioner (quaternions), uppfunna 843 a irlänske matematikern W.R. Hamilton. Detta motsarar komplea talens (Euler mfl, 7-talet), i 2 -, anänning för att beskria 2D-rotationer i planet: + i r (cos µ + isin µ) Rotation inkeln θ genom multiplikation me p cos θ + isin θ p* r (cos(µ + θ) + i sin(µ + θ)) Katernioner (quaternions) En katernion q efinieras så här: q (q, q, q 2, q 3 ) (q, q) q q i + q 2 j + q 3 k, är (jfr komplea tal) i 2 j 2 k 2 - ijk, jki, kij ji-k, kj-i, ik-j Katernioner - algebra Lite katernionalgebra: tag tå katernioner a och b: a (q, q, q 2, q 3 ) (q, q) b (p, p, p 2, p 3 ) (p, p) Aition och multiplikation: a + b (p + q, p + q) ab (p q p q, q p + p q + p q) Norm och iners: a 2 q 2 + q q a - ( / a 2 )(q, -q) Katernioner - för 3D-rotation θ Tag en punkt i 3D. Skapa katernionen p (, ) i + j + k Välj rotationsaeln och normera en. Låt rotationsinkeln ara θ. Skapa nu katernionen r enligt r (cos(θ/2), sin(θ/2)) r 2 r - (cos(θ/2), -sin(θ/2)) Katernioner - för 3D-rotation Genom lite råräknane isar man att p rpr - ger samma resultat som sammansatta rotationsmatriserna för att rotera punkten θ raianer kring ektorn. Om a och b är katernioner som representerar rotation enl. oan gäller också (analogt me komplea talen för 2D-rotationer) att q ab är resultatet a att kombinera rotationerna (först a, sean b).

GrI åren 28, Förel. Katernioner rojektioner - historia Det går alltså att konertera en katernion till en rotationsmatris (och tärtom) Det kan löna sig att lagra orienteringar som katernioner: katernioner: 4 flttal istället för 33 9 (för en rotationsmatris) rotationsmatris) Katernioner gör et enkelt att interpolera mellan orienteringar (för animering)! rojektionsritningar: rojektionsritningar: Arkitekten Vitruius i Rom, år 4 fkr erspekti: erspekti: känt a greker, greker, formaliserat först (centralperspekti) uner renässansen, renässansen, a arkitekter och målare: målare: Giotto (276-336) rojektioner - historia Rafael (483-52) rojektioner - historia Brunelleschi (377-446): Duomo i Firene mm, Leonaro a Vinci (452-59): Nattaren mm, Dürer (47-528): Brook Talor, New rinciples of Linear erspectie, 79. rojektioner Ortografisk projektion rojektorerna är inkelräta mot projektionstan (på oänligt astån ). lanar Geometric rojections arallell erspectie Orthographic Multiiew Isometric Aonometric Dimetric Oblique Caalier -pt 2-pt 3-pt Cabinet Trimetric Alla projektionerna finns beskrina me illustratia figurer i Carlbom-acioreks artikel och i Angel 5.. I enklaste formen är et en eller flera er (multiiew) me projektionsplan parallella till objektets huutor. Astån och inklar bearas i projektionerna. Tpiskt eempel: maskinritningar Aonometrisk ortografisk: Fortfarane inkelräta projektorer men objektet riet så att man ser flera tor. projektionsplan smmetriskt till alla tre huutorna:isometrisk projektionsplan smmetriskt till tå a huutorna: imetrisk projektionsplan utan såan smmetri: trimetrisk arallellitet bearas, inte inklar & astån (samma förkortning)

GrI åren 28, Förel. erspektiprojektion rojektor på änligt astån. Storlek minskar me astån från projektionstan. Astån och inklar bearas inte i projektionen. arallella linjer konergerar i fjärrpunkt (anishing point) erspektiprojektion, Angel 5.4 Antag att i projicerar punkten på ett bilplan som ligger enheter från origo och är parallellt me --planet: Här enpunkts (ett projektionsplan), finns också tå- och tre-, se Carlbom-aciorek Bilplan p erspektiprojektion erspektiprojektion Likformiga trianglar: p p T p p Analogt för p. Så en projicerae punkten blir: p /(/) /(/) T p p p T ( / ) Vi ill kunna skria perspektiprojektionen som en matris M. För att kunna göra et måste i införa en normeringsoperation Om resultatet a en transformation blir en punkt w T me w skilt från ser i till att allti iiera me w innan i fortsätter,..s. /w /w /w T erspektiprojektionsmatris Ortografiskprojektionsmatris M p / / Här är p och p och p - så i får M O p - - Eftersom / iierar i alla komponenterna me / innan i anäner punkten så att i får /(/) /(/) Detta kallas perspektiiision i OpenGL. (i boken är satt till )

GrI åren 28, Förel. Att positionera kameran Kombinationer a transformationer Antingen tänker man att kameran flttas i förhållane ärlens ram, eller att ärlsramen flttas så att en hamnar framför kameran. Operationerna är inerser a aranra. I OpenGL är kameraramen fi så rent matematiskt gäller et senare alternatiet. Men et finns en funktion som hjälper en att fltta ärlen så att et motsarar att fltta kameran. 3D alltså på motsarane sätt som i 2D. Varje transformation motsarar ett bte a ram. Så successia transformationer är också successia bten a koorinatsstem! M M2 M M M 2 Inlämningsuppgift 3 Finns på webben senast freag morgon 29 mars. Iniiuell, skickas till @kth.se senast april. (Något utsträckt ti) Fikti etenta Finns på webben senast freag 4 april. Genomgås sista föreläsningen, 4 maj. Tenta 27 maj 8-3, Q-salar Nästa föreläsning Iniiuell inlämningsuppgift 3 till GrI-kursen t 28 Skicka enna blankett ifll senast april kl. 23.59 till @kth.se Ditt namn: ersonnummer: Uppgiften beöms på skalan -3 (bäst). Deluppgifterna ger poäng, maimalt 3. För 3 kräs 25 poäng, för 2 kräs 2 poäng, för kräs 5 poäng. 3D: transformationer, projektioner, kuror, tor (2p). Beisa att krssproukten a tå ektorer utom i ett urartat fall (ilket), är ortogonal (inkelrät) mot båa essa ektorer. Freag 29 mars kl.8.3-, sal D3 (ej( kl.-2!).