+ All Categories
Home > Documents > Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody...

Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody...

Date post: 07-Nov-2020
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
49
Transformace (2) Petr Felkel Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 (Karlovo náměstí, budova E) E-mail: [email protected] S použitím materiálů Bohuslava Hudce, Jaroslava Sloupa a Vlastimila Havrana Poslední změna: 3.5.2016
Transcript
Page 1: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Transformace (2)

Petr FelkelKatedra počítačové grafiky a interakce, ČVUT FELmístnost KN:E-413 (Karlovo náměstí, budova E)

E-mail: [email protected]

S použitím materiálů Bohuslava Hudce, Jaroslava Sloupa a Vlastimila Havrana

Poslední změna: 3.5.2016

Page 2: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Opakování transformací z minulaTransformace (2) Projekce a viewport Homogenní souřadnice Rotace podle Eulerových úhlů a Gimbal lock

Osnova

PGR 2

Page 3: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Logické kroky při transformaci vrcholů

PGR

Modelovací a pohledovátransformace

ModelovacíTransformace

Pohledovátransformace

modelovacísouřadnice

světovésouřadnice

souřadnice kamery (oka)

vrchol

Souřadnice okna

Projekční transformace

+Ořezání (clipping)

Transforma-ce záběru (Viewport)

Normalizovanésouřadnice

zařízení

Per-spektiv-

ní dělení

ořezávácísouřadnice

3D 2D

3= =, ,

=== … maticově

= 1

Page 4: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

- daná, pozice objektů i kamery se definuje vůči ní = objekt někam umístěný do světa= druhý objekt umístěný jinam do světa , modelové matice – matice přechodu z souřadnicové

soustavy světa do lokální soustavy objektu (lokální = globální * )Převádí lokální souřadnice modelu do globálních.

= soustava kamery = = pohledová matice == =

Opakování: Souřadnicové soustavy v PG

PGR 4

Page 5: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Souřadnice bodu objektu v různých souř. soustavách:Rovnost bází: = == → =

Souřadnice bodu objektu v různých soustavách souřadnic

PGR 5PGR

Dvě souřadné soustavy, lišící se počátky a směry os

==x

y

= 1 Průměty bázových vektorů do bází

Page 6: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

⇒ …. Transformace maticí M vzhledem k bázi = =

Transformace vzhledem k bázi

PGR 6

k lokální soustavě objektu

ke světovým souřadnicím

k soustavě souřadnic kamery

Transformace vzhledem:

Page 7: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

V soustavě : ⇒ V soustavě : ⇒ Zpět vůči : ,

Transformace vzhledem k bázi / soustavě souřadnic

PGR 7

===

Page 8: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Analogie s fotoaparátem

B. Beneš

PGR 8

Page 9: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Vizualizace transformací - zopakování

PGR 9

clip spacenormalized space

Page 10: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

PGR

Projekční transformace

wzyx

Souřadnice okna

Modelovací a pohledovátransformace

modelovacíTransformace

Pohledovátransformace

Projekční transformace

+Ořezání (clipping)

Transforma-ce záběru (Viewport)

modelovacísouřadnice

světovésouřadnice

souřadnice kamery (oka)

Normalizovanésouřadnice

zařízení

vrcholPer-

spektiv-ní

dělení

ořezávacísouřadnice

3D 2D

10

M V P

Page 11: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

definuje tvar pohledového objemu (viewing volume, frustrum) pohledový objem „komolý jehlan“

• určuje, jak se objekt pomítá na průmětnu (perspektivní či paralelní projekce) – VS

• definuje polohu ořezávacích rovin, tj., které objekty či jejich části budou oříznuty (clipping planes) – fixní část

• zadává se v souřadné soustavě kamery

OpenGL umožňuje jakoukoliv projekci definovanou uživatelem projekce obecně NENÍ afinní transformací

(projekční matice nemá poslední řádek ve tvaru 0 0 0 1) nutné jsou funkce vytvářející matice pro

• ortografickou projekci (paralelní)• perspektivní projekci

Projekční transformace - P

PGR 11

Page 12: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Základ paralelního zobrazení (ortho)

PGR 12

= near plane

Projection plane

( , − ) (y, )viewer

0

Page 13: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Základ perspektivního zobrazení

PGR 13

Projection plane

( , − )(y, )

0viewer

Similar triangles:

Page 14: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Paralelní projekce

PGR 14

vytvoří matici pro paralelní promítání

mat4 glm::ortho( float left, float right,float bottom, float top, float near, float far);

průmětna

pohledový objem je kvádr [left, bottom, *] a

[right, top, *] = body na blízké a vzdálené ořezávací rovině (* = near a far),

jsou mapovány do dolního levého a pravého horního rohu formátu (viewport)

Page 15: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Perspektivní projekce

PGR 15

mat4 glm::frustum( float left, float right,float bottom, float top,float near, float far);

průmětna vytvoří matici pro perspektivní promítání pohledový objem je komolý jehlan podstavy rovnoběžné, kolmé na vektor

pohledu menší podstava =

průmětna objekty blíže zvětšené

(zaberou relativně větší část pohledového objemu)

Page 16: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Perspektivní projekce

PGR 16

fovy = úhel záběru ve směru y,

• rozsah 0.0, • spolu s near určí h

aspect je poměr šířky ku výšce pohledového objemu (w / h)w = aspect * h;

hodnoty near a far musí být kladné (near > 0 !!!)

mat4 glm::perspective ( float fovy, float aspect,float near, float far );

jiný způsob definice parametrů pro perspektivní matici vytvoří matici pro symetrické perspektivní promítání

průmětna

Page 17: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

bod je reprezentován svými souřadnicemi P = [x, y, z]tv poč. grafice používáme homogenní souřadnice P = [x, y, z, w]t

Kartézské souřadnice homogenní souřadnice

P = [x, y, z]t zvolit w0 P = [w.x, w.y, w.z, w]t

příklad: bod v kartézských souřadnicích [2, 3, 5]t.Jaké jsou jeho homogenní souřadnice?

[w.2, w.3, w.5, w]t a w0 např. [2, 3, 5, 1]t, [4, 6, 10, 2]t, atd.

homogenní souřadnice Kartézské souřadnice

P = [x, y, z, w]t P = [x/w, y/w, z/w]t w0, wR

příklad : bod v homogenních souřadnicích [9, 3, 12, 3]t.Jaké jsou jeho kartézské souřadnice?

P = [9/3, 3/3, 12/3]t = [3, 1, 4]t

Homogenní souřadnice

PGR 17

Pro body volíme w = 1

Page 18: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Geometrická interpretace ve 2D: bodům s homogenními souřadnicemi P = [w.x, w.y, w.z, w]t , w 0Tvoří přímku bez počátku, která je celá obrazem bodu P = [x, y, z]t

Homogenní souřadnice ve 2D

PGR 18

Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí

(ve 3D maticí 4x4) Skládání transformací jako násobení matic Kompaktní reprezentace bodů (w 0) a vektorů (w = 0)

w

yO

1

[xp, yp,1]t

[w xp, w yp, w]t

k

Pxp

yp

[kxp, kyp, k]t

x

Pro vektory je w = 0Pro body volíme w = 1

Page 19: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Matrices and transformations

PGR 19

0000 0 0 1Linear

transformationmatrix

ℎ0 0 0 1Affine

transformationmatrix

0 00 00 0 − −0 0 −1 0Perspective

transformationmatrix

Page 20: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Transformations

PGR 20[Bittner APG]

Page 21: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Odvození paralelní projekční matice (Ortho)

PGR

lrllr

lrxx

lrlxx

xxlrlx

n

n

nn

22

12

21

)1(1)1(

Princip: Zachová x a y. Ignoruje z

Plus normalizace souřadnic: intervaly l, rt, bn, f 1, 1x

y

z

lrlrx

lrxn

2

btbty

btyn

2

1nzHloubku ale potřebujeme

na určení viditelnosti

nx

x rl

11

dzyyxx

M

'''

0000d00000100001

21

Page 22: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Odvození paralelní projekční matice (Ortho)

PGR 22

Odvození hloubky zn

• near a far se zapisují v orthokladně (vzdálenost od oka),

• jsou ale na záporné ose z,• proto ve vzorcích záporné

nfnnf

nfzz

nfnf

nfnzz

znfnz

znf

nz

n

n

n

n

22

2

21)1(1)1(

)()(

x

y

z

nz

z fn

11

lrlrx

lrxn

2

btbty

btyn

2

nfnfz

nfzn

2

a , :pokud Platí, fnbtrl

Page 23: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Odvození paralelní projekční matice (Ortho)

PGR 23

Výsledná matice

x

y

z

lrlrx

lrxn

2

btbtx

btyn

2

nfnfz

nfzn

2

a , :pokud Platí, fnbtrl

btbty

btyn

2

2− 0 0 − +−0 2− 0 − +−0 0 − 2− − +−0 0 0 1

Page 24: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Základ perspektivního zobrazení

PGR 24

Projection plane

( , − )(y, )

0viewer

Similar triangles:

Page 25: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

lrlrx

lrxn

2

btbty

btyn

2

Odvození perspektivní projekční matice (Frustum)

PGR 26

y

z

Odvození X a Y• Dosadíme = −

lrlrx

zlrnxn

12

btbty

zbtnyn

12

Plus normalizace souřadnic:

zlrlrx

lrnxz n

2

zbtbty

btnyz n

2

).( z

).( z

nfnf

znfnfzn

)(

12)( z

nfnfz

nfnfzz n

2

Odvození dále:

zw

= −= −

Page 26: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Odvození perspektivní projekční matice (Frustum)

PGR 27

B zAnz

y

z

Mapování hloubky• Interpoluje se 1/z• Proto ve tvaru

nfnf

znfnfzn

)(

12 ).( znf

nfznfnfzz n

2

Plus normalizace souřadnice z

B f-

A1aB n-

A1

nfnfA

2

nfnfB

• Dosadíme -n -1, -f 1

Odvození A a B na dalším slajdu

Page 27: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Odvození perspektivní projekční matice (Frustum)

PGR 28

B f-

A1a1/B n-

A1

Odvození A a B: Dosadíme -n -1, -f 1

nfnfA

nfnfA

f-A

nA

--------------

B-fA

- BnA

2

2

1

1

nfnfB

nfnf

nffB

nff

nnf

nf

B

nfnfA

nAB

2

121

2

2

1

B zAnz

Page 28: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Odvození perspektivní projekční matice (Frustum)

PGR 29

Výsledná maticea, :pokudPlatí fnbtrl

x

y

z

zlrlrx

lrnxz n

2

zbtbty

btnyz n

2

nfnfz

nfnfzz n

2

zw

2− 0 +− 00 2− +− 00 0 − +− − 2−0 0 −1 0

Page 29: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Perspektivní dělení – 1/w

PGR 30

wzyx

Souřadnice okna

Modelovací a pohledovátransformace

modelovacíTransformace

Pohledovátransformace

Projekční transformace

+Ořezání (clipping)

Transforma-ce záběru (Viewport)

modelovacísouřadnice

světovésouřadnice

souřadnice kamery (oka)

Normalizovanésouřadnice

zařízení

vrcholPer-

spektiv-ní

dělení

ořezovésouřadnice

3D 2D

Page 30: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Division by w

PGR 31

=2− 0 +− 00 2− +− 00 0 − +− − 2−0 0 −1 0

= / //

Matrix multiplication (from eye to clip coordinates)

Division by (from clip to normalized coordinates) = division by

Page 31: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Transformace záběru

PGR 32

wzyx

Souřadnice okna

Modelovací a pohledovátransformace

modelovacíTransformace

Pohledovátransformace

Projekční transformace

+Ořezání (clipping)

Transforma-ce záběru (Viewport)

modelovacísouřadnice

světovésouřadnice

souřadnice kamery (oka)

Normalizovanésouřadnice

zařízení

vrcholPer-

spektiv-ní

dělení

ořezovésouřadnice

3D 2D

Page 32: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Transformace pracoviště (Viewport)

PGR 33

Formát (viewport) = obdélníková oblast okna, do které se mapuje průmětna (= promítací rovina)

void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);

[x, y] je levý dolní roh formátu (viewport), width a height je šířka a výška formátu …v souřadnicích okna –

v pixelech pro knihovnu GLUT se nastavuje v callback funkci reshape poměr stran formátu by měl být stejný jako poměr stran průmětny jinak zkreslení obrazu GLUT: implicitně na celé okno (0,0,w, h)

Page 33: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Transformace pracoviště (Viewport)

PGR 34

-1 1-1

1

Normalizované souřadnice zařízení

Viewport

screen

yx

w

h

Souřadnice na obrazovce-1

1

zw na viditelnost (Z-buffer)

= + 2= + ℎ2= 2 + = ℎ2 + = −2 + +2

Page 34: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Transformace pracoviště (maticově)

PGR 35

-1 1-1

1

Normalizované souřadnice zařízení

Viewport

screen

yx

w

h

Souřadnice na obrazovce-1

1

zw na viditelnost (Z-buffer)

2 0 0 + 20 ℎ2 0 + ℎ20 0 −2 +20 0 0 1= + 2= + ℎ2

Page 35: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Dotaz na aktuální formát (transformaci pracoviště)int format[4];glGetIntegerv( GL_VIEWPORT, format);Význam: x, y, w, h x = format[0],

y = format[1],w = format[2],h = format[3],

Transformace pracoviště (Viewport)

PGR 36

Page 36: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

… aby zůstala kružnice kulatá

v proceduře reshape(int w, int h) registrována jako Callback …glutReshapeFunc(reshape);

Dva způsobya) zmenšením formátub) protažením projekce

Zachování poměru stran obrazu

PGR 37

Page 37: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

a) zmenšením formátu - zbude nevyužitá plocha okna

if( w > h ) // okno širokéglViewport((w-h)/2, 0, h, h);

else // okno vysokéglViewport(0, (h-w)/2, w, w);

Zachování poměru stran obrazu

38w > h w <= h

Nevyužitá plocha

zkreslené nezkreslenézkreslené nezkreslené

Nevyužitá plocha PGR

glViewport(0, 0, w, h);x, y, w, h

glViewport((w-h)/2, 0, h, h);

Page 38: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

b) protažením projekce (zvětší se pohledový objem)GLfloat aspect = (GLfloat) w / (GLfloat) h;if( aspect > 1.0 ) // w > h => okno široké

m = glm::ortho(-1.15*aspect, 1.15*aspect, -1.15, 1.15, -10, 10);else // left, right, bottom, top, near, far

m = glm::ortho(-1.15, 1.15, -1.15/aspect, 1.15/aspect, -10, 10);glm::frustum(-1.15, 1.15, -1.15/aspect, 1.15/aspect, 0.1, 10);

Obdobně: glm::perspective(60.0, aspect, 0.1, 10);

Zachování poměru stran obrazu

PGR 39w > h => okno široké left*aspect right*aspect

zkreslené nezkreslené

Page 39: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Aspect

PGR 40aspect = 2.7

aspect = w / h

aspect = 0.5

glm::perspective(60.0, aspect, 0.1, 10);

Page 40: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

PGR 41

Rotace podle Eulerových úhlů a Gimbal lock

Page 41: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Eulerovy úhly = pitch-yaw-roll (výška, kurs, rotace) komplexní otočení rozdělíme na otočení dle os X, Y, Z

Rotace dle Eulerových úhlů

PGR 42

cos() -sin() 0 0 sin() cos() 0 0 0 0 1 0 0 0 0 1

Rotate(, 0, 0, 1)

cos() 0 sin() 0 0 1 0 0 -sin() 0 cos() 0 0 0 0 1

Rotate(, 0, 1, 0)

1 0 0 0 0 cos() -sin() 0 0 sin() cos() 0 0 0 0 1

Rotate(, 1, 0, 0)

X Y Z

Page 42: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Základní orientace „Pitch-Yaw-Roll“

PGR 43

[NASA]

Page 43: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Základní orientace „Pitch-Yaw-Roll“

PGR 44

Pitch Yaw Roll

Výškovky Kormidlo Křidélka

[NASA]

Page 44: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Gimbal [‘džimbl] – otočná podpěra

PGR 45

[Wikipedia]- Původní použití u gyroskopů a upevnění kompasů, kamen a sklenic na lodích od antiky.

- Tři gimbals spojené dohromady + závaží či setrvačník

Page 45: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Eulerovy úhly = pitch-yaw-roll (výška, kurs, rotace) komplexní otočení rozdělíme na otočení podle os X, Y, Z dělá se postupně => otočením druhé osy v hierarchii o 90° splynou

osy a dojde ke ztrátě jednoho stupně volnosti (gimbal lock)

Rotace a „Gimbal lock“ [‘džimbl lok]

PGR 46

Pořadí rotací v programu:Rotate(a, 1, 0, 0) // X 3 Rotate(90, 0, 1, 0) // Y 2Rotate(c, 0, 0, 1) // Z 1

Z splyne s XRotace kolem X s modelem otočeným o 90°dle Y dělá totéž, co rotace kolem Z

x

y

z

1

xy

z

2x

y

z31

Page 46: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Ztráta jednoho stupně „Gimbal Lock“

PGR 47

[Wikipedia]

[http://www.fho-emden.de/~hoffmann/gimbal09082002.pdf]

Page 47: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Vysvětlení

PGR 48

Page 48: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Composition[rax, r90y, rbz] = rax * r90y * rbz

=

Otočením o 90º okolo osy Y (prostřední při skládání transformací) se ztratímožnost otáčení okolo osy X (osa X splyne s osou Z).

Místo toho se otáčí okolo osy Z původního modelu. Výsledný úhel otočení vznikne jako součet požadovaných úhlů otočení kolem X a Z

Vysvětlení

PGR 49

Page 49: Transformace (2) - cvut.cz · P = [x, y, z]t Homogenní souřadnice ve 2D PGR 18 Výhody homogenních souřadnic Afinní transformace i projekce lze zapsat jednou maticí (ve 3D maticí

Rotaci podle obecné osy (místo skládání rotací podle Eulerových úhlů)

Používat kvaterniony (quaternions)

Jak nezpůsobit gimbal lock

PGR 50


Recommended