Matrix Multiplication and Transform Order ⚠ Click here to regain focus ⚠
?
?

# Keyboard Navigation

## Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
z Toggle filter mode V Revert filter to original state

## Menu toggling

q Quotes r References f Filter c Credits

a
w
s
d
h j k l

## Quotes and References Menus

Enter Jump to timecode

## 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

## Credits Menu

Enter Open URL (in new tab)
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 transpose1
1:12:51Blackboard: For an orthogonal matrix, the inverse is the transpose1
1:12:51Blackboard: For an orthogonal matrix, the inverse is the transpose1
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: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
🗩
1:53:03 Can you interpolate if you wanted a smooth rotation about a point or axis over time?
🗪
1:53:03 Can you interpolate if you wanted a smooth rotation about a point or axis over time?
🗪
1:53:03 Can you interpolate if you wanted a smooth rotation about a point or axis over time?
🗪
1:54:35 There have been some problems with trolls causing flame wars in the chat. I forget who you dedicated the management of the chat to?2
🗪
1:54:35 There have been some problems with trolls causing flame wars in the chat. I forget who you dedicated the management of the chat to?2
🗪
1:54:35 There have been some problems with trolls causing flame wars in the chat. I forget who you dedicated the management of the chat to?2
🗪
1:55:46 You mentioned (about six months ago, I think) that you have new art work. What's the plan with adding that?
🗪
1:55:46 You mentioned (about six months ago, I think) that you have new art work. What's the plan with adding that?
🗪
1:55:46 You mentioned (about six months ago, I think) that you have new art work. What's the plan with adding that?
🗪
1:56:16 Did you know beforehand that you where going to discard the sorting code? Did you do all that for the sake of teaching a variety of techniques?
🗪
1:56:16 Did you know beforehand that you where going to discard the sorting code? Did you do all that for the sake of teaching a variety of techniques?
🗪
1:56:16 Did you know beforehand that you where going to discard the sorting code? Did you do all that for the sake of teaching a variety of techniques?
🗪
1:59:18 Do you know anything about DirectX 12?
🗪
1:59:18 Do you know anything about DirectX 12?
🗪
1:59:18 Do you know anything about DirectX 12?
🗪
2:01:06 When are you gonna do OOP?
🗪
2:01:06 When are you gonna do OOP?
🗪
2:01:06 When are you gonna do OOP?
🗪
2:02:04 Ever heard of design patterns?
🗪
2:02:04 Ever heard of design patterns?
🗪
2:02:04 Ever heard of design patterns?
🗪
2:02:25 Try unit testing your code so we can actually see if something is working
🗪
2:02:25 Try unit testing your code so we can actually see if something is working
🗪
2:02:25 Try unit testing your code so we can actually see if something is working
🗪
2:04:04 Will the Molly Rocket team be at Emerald City Comicon this year?
🗪
2:04:04 Will the Molly Rocket team be at Emerald City Comicon this year?
🗪
2:04:04 Will the Molly Rocket team be at Emerald City Comicon this year?
🗪
2:04:11 In terms of profiling, how would you tell when you are hitting upper bounds of CPU, PCI Bus and GPU? Obviously, we already have a CPU profiler, wondering more about PCI Bus and GPU
🗪
2:04:11 In terms of profiling, how would you tell when you are hitting upper bounds of CPU, PCI Bus and GPU? Obviously, we already have a CPU profiler, wondering more about PCI Bus and GPU
🗪
2:04:11 In terms of profiling, how would you tell when you are hitting upper bounds of CPU, PCI Bus and GPU? Obviously, we already have a CPU profiler, wondering more about PCI Bus and GPU
🗪
2:05:57 Will you use Vulkan in your game at all, will it still be too new on release, or do some kind of tutorial on it?
🗪
2:05:57 Will you use Vulkan in your game at all, will it still be too new on release, or do some kind of tutorial on it?
🗪
2:05:57 Will you use Vulkan in your game at all, will it still be too new on release, or do some kind of tutorial on it?
🗪
2:07:48 Do you think writing my own ring 0 driver would bypass VAC?
🗪
2:07:48 Do you think writing my own ring 0 driver would bypass VAC?
🗪
2:07:48 Do you think writing my own ring 0 driver would bypass VAC?
🗪
2:09:47 Is there any way to do that from our own code, or do we have to rely on external tools?3
🗪
2:09:47 Is there any way to do that from our own code, or do we have to rely on external tools?3
🗪
2:09:47 Is there any way to do that from our own code, or do we have to rely on external tools?3
🗪
2:12:18 Near the beginning of the stream the back of my chair fell off. I spent the entire stream fixing my chair. It feels more solid now and squeaks less but I'm afraid to lean back on it?
🗪
2:12:18 Near the beginning of the stream the back of my chair fell off. I spent the entire stream fixing my chair. It feels more solid now and squeaks less but I'm afraid to lean back on it?
🗪
2:12:18 Near the beginning of the stream the back of my chair fell off. I spent the entire stream fixing my chair. It feels more solid now and squeaks less but I'm afraid to lean back on it?
🗪
2:12:55 Not sure if anyone has mentioned this but Mac OSX doesn't support OpenGL core profile with OpenGL 1.x functions. This means that, if using glBegin etc, the maximum version of GL allowed is 2.1
🗪
2:12:55 Not sure if anyone has mentioned this but Mac OSX doesn't support OpenGL core profile with OpenGL 1.x functions. This means that, if using glBegin etc, the maximum version of GL allowed is 2.1
🗪
2:12:55 Not sure if anyone has mentioned this but Mac OSX doesn't support OpenGL core profile with OpenGL 1.x functions. This means that, if using glBegin etc, the maximum version of GL allowed is 2.1
🗪
2:14:44 Can you name one of those exploits for my driver?4,5
🗪
2:14:44 Can you name one of those exploits for my driver?4,5
🗪
2:14:44 Can you name one of those exploits for my driver?4,5
🗪
2:18:22 Can you give Shawn M & Sean B's stream a plug before you go please?
🗪
2:18:22 Can you give Shawn M & Sean B's stream a plug before you go please?
🗪
2:18:22 Can you give Shawn M & Sean B's stream a plug before you go please?
🗪
2:19:20Plug Shawn,6 Sean7 and Jon's8 streams
2:19:20Plug Shawn,6 Sean7 and Jon's8 streams
2:19:20Plug Shawn,6 Sean7 and Jon's8 streams
2:20:51 Would ring 0 driver bypass the anti cheat protection of Destiny
🗪
2:20:51 Would ring 0 driver bypass the anti cheat protection of Destiny
🗪
2:20:51 Would ring 0 driver bypass the anti cheat protection of Destiny
🗪
2:22:19 Sean and Shawn are doing a specific stream today9
🗪
2:22:19 Sean and Shawn are doing a specific stream today9
🗪
2:22:19 Sean and Shawn are doing a specific stream today9
🗪
2:23:04 How do I read the RAM memory on an XBox or PS4?
🗪
2:23:04 How do I read the RAM memory on an XBox or PS4?
🗪
2:23:04 How do I read the RAM memory on an XBox or PS4?
🗪
2:27:44 I'm not sure if anyone has mentioned this but in the cutscene shot 6, layer 3 and 4 are both at z=3.0f. Layer 3 should be at z-3.01f instead. Layer 4 is the child's tears and layer 3 is the child
🗪
2:27:44 I'm not sure if anyone has mentioned this but in the cutscene shot 6, layer 3 and 4 are both at z=3.0f. Layer 3 should be at z-3.01f instead. Layer 4 is the child's tears and layer 3 is the child
🗪
2:27:44 I'm not sure if anyone has mentioned this but in the cutscene shot 6, layer 3 and 4 are both at z=3.0f. Layer 3 should be at z-3.01f instead. Layer 4 is the child's tears and layer 3 is the child
🗪
2:30:25 Will the order of matrix multiplication be reversed if we use transposed matrices and vectors?
🗪
2:30:25 Will the order of matrix multiplication be reversed if we use transposed matrices and vectors?
🗪
2:30:25 Will the order of matrix multiplication be reversed if we use transposed matrices and vectors?
🗪
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:35:03 Yes, that's what I was asking. Earlier in the video you said that matrix application order is unintuitive, and this way we can reverse the order10
🗪
2:35:03 Yes, that's what I was asking. Earlier in the video you said that matrix application order is unintuitive, and this way we can reverse the order10
🗪
2:35:03 Yes, that's what I was asking. Earlier in the video you said that matrix application order is unintuitive, and this way we can reverse the order10
🗪
2:38:54Wrap it up
🗩
2:38:54Wrap it up
🗩
2:38:54Wrap it up
🗩