Matrix Multiplication and Transform Order

?

?# Keyboard Navigation

## Global Keys

[, < / ], > Jump to previous / next episode

W, K, P / S, J, N Jump to previous / next timestamp

t / T Toggle theatre / SUPERtheatre mode

V Revert filter to original state Y Select link (requires manual Ctrl-c)## Menu toggling

q Quotes
r References
f Filter
y Link
c Credits
## In-Menu and Index Controls

## Quotes and References Menus and Index

Enter Jump to timestamp

## Quotes, References and Credits Menus

o Open URL (in new tab)
## Filter Menu

x, Space Toggle category and focus next

X, ShiftSpace Toggle category and focus previous

v Invert topics / media as per focus## Filter and Link Menus

z Toggle filter / linking mode
## Credits Menu

Enter Open URL (in new tab)

W, K, P / S, J, N Jump to previous / next timestamp

t / T Toggle theatre / SUPERtheatre mode

V Revert filter to original state Y Select link (requires manual Ctrl-c)

a

w

s

s

d

h
j
k
l

←

↑

↓

↓

→

Esc Close menu / unfocus timestamp

X, ShiftSpace Toggle category and focus previous

v Invert topics / media as per focus

⏫

Previous: 'Introduction to 3D Rotation Matrices'

⏫

0:08Recap and set the stage for the day

0:08Recap and set the stage for the day

0:08Recap and set the stage for the day

2:28Run the game to show where we're at with randomly ordered drawing

2:28Run the game to show where we're at with randomly ordered drawing

2:28Run the game to show where we're at with randomly ordered drawing

5:54Blackboard: Matrix Multiplication

5:54Blackboard: Matrix Multiplication

5:54Blackboard: Matrix Multiplication

9:00Blackboard: Order dependence

9:00Blackboard: Order dependence

9:00Blackboard: Order dependence

13:49Blackboard: Scaling matrix

13:49Blackboard: Scaling matrix

13:49Blackboard: Scaling matrix

15:36Blackboard: Rotation matrix, and why order dependence is important for us

15:36Blackboard: Rotation matrix, and why order dependence is important for us

15:36Blackboard: Rotation matrix, and why order dependence is important for us

21:33Blackboard: Matrix- and vector-multiplication are exactly the same thing

21:33Blackboard: Matrix- and vector-multiplication are exactly the same thing

21:33Blackboard: Matrix- and vector-multiplication are exactly the same thing

25:18Blackboard: Multiplication order of a long series of matrices

25:18Blackboard: Multiplication order of a long series of matrices

25:18Blackboard: Multiplication order of a long series of matrices

28:29Blackboard: Translation and 4x4 augmentation

28:29Blackboard: Translation and 4x4 augmentation

28:29Blackboard: Translation and 4x4 augmentation

37:30Blackboard: Object Transform, conceiving of the matrix in columns

37:30Blackboard: Object Transform, conceiving of the matrix in columns

37:30Blackboard: Object Transform, conceiving of the matrix in columns

43:07Blackboard: Camera Transform, conceiving of the matrix in rows

43:07Blackboard: Camera Transform, conceiving of the matrix in rows

43:07Blackboard: Camera Transform, conceiving of the matrix in rows

49:34Blackboard: Row vs Column Picture

49:34Blackboard: Row vs Column Picture

49:34Blackboard: Row vs Column Picture

53:45Blackboard: What is a camera transform and why does this do it?

53:45Blackboard: What is a camera transform and why does this do it?

53:45Blackboard: What is a camera transform and why does this do it?

1:00:03Blackboard: Camera translation

1:00:03Blackboard: Camera translation

1:00:03Blackboard: Camera translation

1:01:30Blackboard: Moving the world to align with the camera's axes

1:01:30Blackboard: Moving the world to align with the camera's axes

1:01:30Blackboard: Moving the world to align with the camera's axes

1:05:41Blackboard: Inner product

1:05:41Blackboard: Inner product

1:05:41Blackboard: Inner product

1:07:57Blackboard: Dot producting incoming points with the camera axes

1:07:57Blackboard: Dot producting incoming points with the camera axes

1:07:57Blackboard: Dot producting incoming points with the camera axes

1:09:48Blackboard: Rows are Camera axes; Columns are Object axes

1:09:48Blackboard: Rows are Camera axes; Columns are Object axes

1:09:48Blackboard: Rows are Camera axes; Columns are Object axes

1:12:51Blackboard: For an orthogonal matrix, the inverse is the transpose^{1}

1:12:51Blackboard: For an orthogonal matrix, the inverse is the transpose^{1}

1:12:51Blackboard: For an orthogonal matrix, the inverse is the transpose^{1}

1:17:20Blackboard: The camera transforms we want to implement

1:17:20Blackboard: The camera transforms we want to implement

1:17:20Blackboard: The camera transforms we want to implement

1:25:20Blackboard: Combining translation and rotation in camera transforms

1:25:20Blackboard: Combining translation and rotation in camera transforms

1:25:20Blackboard: Combining translation and rotation in camera transforms

1:32:32handmade_math.h: Introduce CameraTransform(), Columns3x3(), Rows3x3() and Translate()

1:32:32handmade_math.h: Introduce CameraTransform(), Columns3x3(), Rows3x3() and Translate()

1:32:32handmade_math.h: Introduce CameraTransform(), Columns3x3(), Rows3x3() and Translate()

1:38:03handmade_math.h: Introduce Transform() and an overloaded operator*() which takes a 4x4 matrix and a vector of length 3

1:38:03handmade_math.h: Introduce Transform() and an overloaded operator*() which takes a 4x4 matrix and a vector of length 3

1:43:53handmade_math.h: Introduce GetColumn() and GetRow()

1:43:53handmade_math.h: Introduce GetColumn() and GetRow()

1:43:53handmade_math.h: Introduce GetColumn() and GetRow()

1:45:49handmade_opengl.cpp: Consider how to implement our camera transform

1:45:49handmade_opengl.cpp: Consider how to implement our camera transform

1:45:49handmade_opengl.cpp: Consider how to implement our camera transform

1:47:22handmade_render_group.cpp: Make PushClipRect() responsible for computing the focal length

1:47:22handmade_render_group.cpp: Make PushClipRect() responsible for computing the focal length

1:47:22handmade_render_group.cpp: Make PushClipRect() responsible for computing the focal length

1:49:57Run the game to see the same thing we got before

1:49:57Run the game to see the same thing we got before

1:49:57Run the game to see the same thing we got before

1:51:47Q&A

🗩

1:51:47Q&A

🗩

1:51:47Q&A

🗩

2:19:20Plug Shawn,^{6} Sean^{7} and Jon's^{8} streams

2:19:20Plug Shawn,^{6} Sean^{7} and Jon's^{8} streams

2:19:20Plug Shawn,^{6} Sean^{7} and Jon's^{8} streams

2:31:04Blackboard: Multiplying a matrix and a vector

2:31:04Blackboard: Multiplying a matrix and a vector

2:31:04Blackboard: Multiplying a matrix and a vector

2:38:54Wrap it up

🗩

2:38:54Wrap it up

🗩

2:38:54Wrap it up

🗩

⏬

Next: 'Making an Orbiting Debug Camera'

⏬