Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.