Presentation is loading. Please wait.

Presentation is loading. Please wait.

and an introduction to matrices

Similar presentations


Presentation on theme: "and an introduction to matrices"— Presentation transcript:

1 and an introduction to matrices
Coordinate Systems and an introduction to matrices Jeff Chastine

2 The Local Coordinate System
Sometimes called “Object Space” It’s the coordinate system the model was made in Jeff Chastine

3 The Local Coordinate System
Sometimes called “Object Space” It’s the coordinate system the model was made in (0, 0, 0) Jeff Chastine

4 The World SPACE The coordinate system of the virtual environment (619, 10, 628) Jeff Chastine

5 (619, 10, 628) Jeff Chastine

6 Question How did get the monster positioned correctly in the world?
Let’s come back to that… Jeff Chastine

7 Camera Space It’s all relative to the camera… Jeff Chastine

8 Camera Space It’s all relative to the camera… and the camera never moves! (0, 0, -10) Jeff Chastine

9 The Big Picture How to we get from space to space? ? ? Jeff Chastine

10 The Big Picture M ? How to we get from space to space? For every model
Have a (M)odel matrix! Transforms from object to world space M ? Jeff Chastine

11 The Big Picture M V How to we get from space to space?
To put in camera space Have a (V)iew matrix Usually need only one of these M V Jeff Chastine

12 The Big Picture M V MV How to we get from space to space?
The ModelView matrix Sometimes these are combined into one matrix Usually keep them separate for convenience M V MV Jeff Chastine

13 Matrix - What? A mathematical structure that can: Translate (a.k.a. move) Rotate Scale Usually a 4x4 array of values Idea: multiply each point by a matrix to get the new point Your graphics card eats matrices for breakfast The Identity Matrix Jeff Chastine

14 Back to The Big Picture M
If you multiply a matrix by a matrix, you get a matrix! How might we make the model matrix? M Jeff Chastine

15 Back to The Big Picture M Translation matrix T Rotation matrix R1
Scale matrix S If you multiply a matrix by a matrix, you get a matrix! How might we make the model matrix? M Jeff Chastine

16 Back to The Big Picture M T * R1 * R2 * S = M Translation matrix T
Rotation matrix R1 Rotation matrix R2 Scale matrix S If you multiply a matrix by a matrix, you get a matrix! How might we make the model matrix? M T * R1 * R2 * S = M Jeff Chastine

17 Matrix Order (an angry vertex) Multiply left to right
Results are drastically different (an angry vertex) Jeff Chastine

18 Matrix Order Multiply left to right Results are drastically different
Order of operations Rotate 45° Jeff Chastine

19 Matrix Order Multiply left to right Results are drastically different
Order of operations Rotate 45° Translate 10 units Jeff Chastine

20 Matrix Order Multiply left to right Results are drastically different
Order of operations Rotate 45° Translate 10 units before after Jeff Chastine

21 Matrix Order Multiply left to right Results are drastically different
Order of operations Jeff Chastine

22 Matrix Order Multiply left to right Results are drastically different
Order of operations Translate 10 units Jeff Chastine

23 Matrix Order Multiply left to right Results are drastically different
Order of operations Translate 10 units Rotate 45° Jeff Chastine

24 Matrix Order Multiply left to right Results are drastically different
Order of operations Translate 10 units Rotate 45° after before Jeff Chastine

25 Back to The Big Picture M T * R1 * R2 * S = M Translation matrix T
Rotation matrix R1 Rotation matrix R2 Scale matrix S If you multiply a matrix by a matrix, you get a matrix! How might we make the model matrix? M T * R1 * R2 * S = M Backwards Jeff Chastine

26 Back to The Big Picture M S * R1 * R2 * T = M Translation matrix T
Rotation matrix R1 Rotation matrix R2 Scale matrix S If you multiply a matrix by a matrix, you get a matrix! How might we make the model matrix? M S * R1 * R2 * T = M Jeff Chastine

27 The (P)rojection Matrix
Projects from 3D into 2D Two kinds: Orthographic: depth doesn’t matter, parallel remains parallel Perspective: Used to give depth to the scene (a vanishing point) End result: Normalized Device Coordinates (NDCs between -1.0 and +1.0) Jeff Chastine

28 Orthographic vs. Perspective
Jeff Chastine

29 An Old Vertex Shader Originally we passed using NDCs (-1 to +1)
in vec4 vPosition; // The vertex in NDC void main () { gl_Position = vPosition; } Originally we passed using NDCs (-1 to +1) Jeff Chastine

30 A Better Vertex Shader New position in NDC Original (local) position
in vec4 vPosition; // The vertex in the local coordinate system uniform mat4 mM; // The matrix for the pose of the model uniform mat4 mV; // The matrix for the pose of the camera uniform mat4 mP; // The projection matrix (perspective) void main () { gl_Position = mP*mV*mM*vPosition; } New position in NDC Original (local) position Jeff Chastine

31 SMILE – It’s the END! Jeff Chastine


Download ppt "and an introduction to matrices"

Similar presentations


Ads by Google