Moving the Perspective Divide to OpenGL
?
?

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

In-Menu Movement

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:01Recap and set the stage for the day
0:01Recap and set the stage for the day
0:01Recap and set the stage for the day
1:18Run the game and demo our current situation with the sorting
1:18Run the game and demo our current situation with the sorting
1:18Run the game and demo our current situation with the sorting
2:02Reacquaint ourselves with our work moving the perspective operations over to OpenGL
2:02Reacquaint ourselves with our work moving the perspective operations over to OpenGL
2:02Reacquaint ourselves with our work moving the perspective operations over to OpenGL
7:00handmade_render.h: Remove WorldScale from the camera_params struct, and consider removing MetersToPixels and PixelsToMeters globally
7:00handmade_render.h: Remove WorldScale from the camera_params struct, and consider removing MetersToPixels and PixelsToMeters globally
7:00handmade_render.h: Remove WorldScale from the camera_params struct, and consider removing MetersToPixels and PixelsToMeters globally
12:26handmade_render_group.h: Replace ScreenCenter in camera_transform with ScreenDim
12:26handmade_render_group.h: Replace ScreenCenter in camera_transform with ScreenDim
12:26handmade_render_group.h: Replace ScreenCenter in camera_transform with ScreenDim
13:28handmade_render_group.h: Introduce SetCameraTransform() and simplify Orthographic() and Perspective()
13:28handmade_render_group.h: Introduce SetCameraTransform() and simplify Orthographic() and Perspective()
13:28handmade_render_group.h: Introduce SetCameraTransform() and simplify Orthographic() and Perspective()
13:50"This would take a super set of the parameters"α
13:50"This would take a super set of the parameters"α
13:50"This would take a super set of the parameters"α
16:24Run the game to see that we're at the wrong zoom level
16:24Run the game to see that we're at the wrong zoom level
16:24Run the game to see that we're at the wrong zoom level
16:45handmade_world_mode.cpp: Make AddStandardRoom() set the camera height lower, and run the game
16:45handmade_world_mode.cpp: Make AddStandardRoom() set the camera height lower, and run the game
16:45handmade_world_mode.cpp: Make AddStandardRoom() set the camera height lower, and run the game
17:34Determine to fix the debug visualisation rectangles
17:34Determine to fix the debug visualisation rectangles
17:34Determine to fix the debug visualisation rectangles
19:15handmade_render_group.h: Remove MonitorHalfDimInMeters from the render_group struct
19:15handmade_render_group.h: Remove MonitorHalfDimInMeters from the render_group struct
19:15handmade_render_group.h: Remove MonitorHalfDimInMeters from the render_group struct
22:27handmade_render_group.cpp: Remove UnprojectOld() and make GetCameraRectangleAtDistance() compute the correct rectangle
22:27handmade_render_group.cpp: Remove UnprojectOld() and make GetCameraRectangleAtDistance() compute the correct rectangle
22:27handmade_render_group.cpp: Remove UnprojectOld() and make GetCameraRectangleAtDistance() compute the correct rectangle
27:03handmade_world_mode.cpp: Make UpdateAndRenderWorld() compute WorldCameraRect and ScreenBounds
27:03handmade_world_mode.cpp: Make UpdateAndRenderWorld() compute WorldCameraRect and ScreenBounds
27:03handmade_world_mode.cpp: Make UpdateAndRenderWorld() compute WorldCameraRect and ScreenBounds
29:25Run the game pnd fail to see the debug rectangles
29:25Run the game pnd fail to see the debug rectangles
29:25Run the game pnd fail to see the debug rectangles
30:56Step in to UpdateAndRenderWorld() and inspect the bounds
30:56Step in to UpdateAndRenderWorld() and inspect the bounds
30:56Step in to UpdateAndRenderWorld() and inspect the bounds
38:45handmade_render_group.cpp: Make Unproject() correctly compute the UnprojectedXY
38:45handmade_render_group.cpp: Make Unproject() correctly compute the UnprojectedXY
38:45handmade_render_group.cpp: Make Unproject() correctly compute the UnprojectedXY
43:24Step into UpdateAndRenderWorld() and inspect the WorldCameraRect
43:24Step into UpdateAndRenderWorld() and inspect the WorldCameraRect
43:24Step into UpdateAndRenderWorld() and inspect the WorldCameraRect
44:25A few words on easing the process of changing your code
44:25A few words on easing the process of changing your code
44:25A few words on easing the process of changing your code
47:16Run the game and determine to get the Z-sorting working by augmenting the ClipRect to be about transforms in general
47:16Run the game and determine to get the Z-sorting working by augmenting the ClipRect to be about transforms in general
47:16Run the game and determine to get the Z-sorting working by augmenting the ClipRect to be about transforms in general
52:54handmade_opengl.cpp: Start to change OpenGLSetScreenSpace()
52:54handmade_opengl.cpp: Start to change OpenGLSetScreenSpace()
52:54handmade_opengl.cpp: Start to change OpenGLSetScreenSpace()
55:56handmade_platform.h: #define NotImplemented()
55:56handmade_platform.h: #define NotImplemented()
55:56handmade_platform.h: #define NotImplemented()
1:00:58Blackboard: Projection coordinates
1:00:58Blackboard: Projection coordinates
1:00:58Blackboard: Projection coordinates
1:04:48handmade_opengl.cpp: Prevent OpenGLRenderCommands() from scaling the incoming dimensions
1:04:48handmade_opengl.cpp: Prevent OpenGLRenderCommands() from scaling the incoming dimensions
1:04:48handmade_opengl.cpp: Prevent OpenGLRenderCommands() from scaling the incoming dimensions
1:05:08Run the game and consider the incoming dimensions
1:05:08Run the game and consider the incoming dimensions
1:05:08Run the game and consider the incoming dimensions
1:07:35Blackboard: Z in the Projection Matrix and normalising by W
1:07:35Blackboard: Z in the Projection Matrix and normalising by W
1:07:35Blackboard: Z in the Projection Matrix and normalising by W
1:13:52Blackboard: Divide by incoming Z
1:13:52Blackboard: Divide by incoming Z
1:13:52Blackboard: Divide by incoming Z
1:16:32handmade_opengl.cpp: Write the Proj matrix in OpenGLRenderCommands() to enable the divide by Z
1:16:32handmade_opengl.cpp: Write the Proj matrix in OpenGLRenderCommands() to enable the divide by Z
1:16:32handmade_opengl.cpp: Write the Proj matrix in OpenGLRenderCommands() to enable the divide by Z
1:18:31handmade_render_group.cpp: Make GetRenderEntityBasisP() compute the correct Scale and P
1:18:31handmade_render_group.cpp: Make GetRenderEntityBasisP() compute the correct Scale and P
1:18:31handmade_render_group.cpp: Make GetRenderEntityBasisP() compute the correct Scale and P
1:19:57Run the game to see it unexpectedly working, and investigate why
1:19:57Run the game to see it unexpectedly working, and investigate why
1:19:57Run the game to see it unexpectedly working, and investigate why
1:25:18Step in to OpenGLRenderCommands() and inspect the values
1:25:18Step in to OpenGLRenderCommands() and inspect the values
1:25:18Step in to OpenGLRenderCommands() and inspect the values
1:27:02handmade_opengl.cpp: Make OpenGLRenderCommands() pass the Z for the bitmaps, and run the game
1:27:02handmade_opengl.cpp: Make OpenGLRenderCommands() pass the Z for the bitmaps, and run the game
1:27:02handmade_opengl.cpp: Make OpenGLRenderCommands() pass the Z for the bitmaps, and run the game
1:28:12handmade_render_group.cpp: Remove Basis.Scale from all functions, and remove the entity_basis_p_result struct
1:28:12handmade_render_group.cpp: Remove Basis.Scale from all functions, and remove the entity_basis_p_result struct
1:28:12handmade_render_group.cpp: Remove Basis.Scale from all functions, and remove the entity_basis_p_result struct
1:30:49handmade_render_group.cpp: Simplify GetRenderEntityBasisP()
1:30:49handmade_render_group.cpp: Simplify GetRenderEntityBasisP()
1:30:49handmade_render_group.cpp: Simplify GetRenderEntityBasisP()
1:33:20Run the game to assess our current situation
1:33:20Run the game to assess our current situation
1:33:20Run the game to assess our current situation
1:35:15handmade_render_group.h: Add FocalLength to the render_entry_cliprect struct and propagate it
1:35:15handmade_render_group.h: Add FocalLength to the render_entry_cliprect struct and propagate it
1:35:15handmade_render_group.h: Add FocalLength to the render_entry_cliprect struct and propagate it
1:40:18Run the game and consider cleaning this up
1:40:18Run the game and consider cleaning this up
1:40:18Run the game and consider cleaning this up
1:40:56handmade_render_group.h: Remove ScreenDim from the camera_transform struct and add CurrentClipRect_ to the render_group struct
1:40:56handmade_render_group.h: Remove ScreenDim from the camera_transform struct and add CurrentClipRect_ to the render_group struct
1:40:56handmade_render_group.h: Remove ScreenDim from the camera_transform struct and add CurrentClipRect_ to the render_group struct
1:46:44Remove all of the sorting code
1:46:44Remove all of the sorting code
1:46:44Remove all of the sorting code
1:57:31Q&A
🗩
1:57:31Q&A
🗩
1:57:31Q&A
🗩
1:59:16quartertron Can you please go double-check your matrix math in your last drawing in Milton?
🗪
1:59:16quartertron Can you please go double-check your matrix math in your last drawing in Milton?
🗪
1:59:16quartertron Can you please go double-check your matrix math in your last drawing in Milton?
🗪
2:01:08quartertron More scroll right-ish
🗪
2:01:08quartertron More scroll right-ish
🗪
2:01:08quartertron More scroll right-ish
🗪
2:01:37quartertron No, I'm just blind
🗪
2:01:37quartertron No, I'm just blind
🗪
2:01:37quartertron No, I'm just blind
🗪
2:02:07deezbucks Are you planning on making a video featuring everything you made?
🗪
2:02:07deezbucks Are you planning on making a video featuring everything you made?
🗪
2:02:07deezbucks Are you planning on making a video featuring everything you made?
🗪
2:03:25pepevel What do you have in mind when it comes to shaders? You plan to use them to sort?
🗪
2:03:25pepevel What do you have in mind when it comes to shaders? You plan to use them to sort?
🗪
2:03:25pepevel What do you have in mind when it comes to shaders? You plan to use them to sort?
🗪
2:06:16jekasg How long till ship?
🗪
2:06:16jekasg How long till ship?
🗪
2:06:16jekasg How long till ship?
🗪
2:06:56roam00010011 I'm running out of excuses to clean the garage, so... someone ask something long
🗪
2:06:56roam00010011 I'm running out of excuses to clean the garage, so... someone ask something long
🗪
2:06:56roam00010011 I'm running out of excuses to clean the garage, so... someone ask something long
🗪
2:07:11mvargasmoran Could you expand on the topic of refactoring (sometimes all the code)? I use git, to move on but keep my old code. So I think I'm scared of changing things
🗪
2:07:11mvargasmoran Could you expand on the topic of refactoring (sometimes all the code)? I use git, to move on but keep my old code. So I think I'm scared of changing things
🗪
2:07:11mvargasmoran Could you expand on the topic of refactoring (sometimes all the code)? I use git, to move on but keep my old code. So I think I'm scared of changing things
🗪
2:19:02roam00010011 I keep missing the pre-stream, so at what time tomorrow will it start?
🗪
2:19:02roam00010011 I keep missing the pre-stream, so at what time tomorrow will it start?
🗪
2:19:02roam00010011 I keep missing the pre-stream, so at what time tomorrow will it start?
🗪
2:20:00dandymcgee How often do you clean your garage? If you don't have a garage, where do you park your car? If you don't have a car, how do you get to Kansas?
🗪
2:20:00dandymcgee How often do you clean your garage? If you don't have a garage, where do you park your car? If you don't have a car, how do you get to Kansas?
🗪
2:20:00dandymcgee How often do you clean your garage? If you don't have a garage, where do you park your car? If you don't have a car, how do you get to Kansas?
🗪
2:22:44popcorn0x90 I wonder if Jon and Casey are in the same city
🗪
2:22:44popcorn0x90 I wonder if Jon and Casey are in the same city
🗪
2:22:44popcorn0x90 I wonder if Jon and Casey are in the same city
🗪
2:23:10Close it down with a glimpse into the future
2:23:10Close it down with a glimpse into the future
2:23:10Close it down with a glimpse into the future
2:24:54Plug Asaf's annotation searcher1
2:24:54Plug Asaf's annotation searcher1
2:24:54Plug Asaf's annotation searcher1
2:27:36Miblo Yeah, we will roll it into the new annotation system. Planning on working on the new system probably in a month from now, after HMN v1 is settled
🗪
2:27:36Miblo Yeah, we will roll it into the new annotation system. Planning on working on the new system probably in a month from now, after HMN v1 is settled
🗪
2:27:36Miblo Yeah, we will roll it into the new annotation system. Planning on working on the new system probably in a month from now, after HMN v1 is settled
🗪
2:28:16Thank Asaf for building the annotation searcher
🗩
2:28:16Thank Asaf for building the annotation searcher
🗩
2:28:16Thank Asaf for building the annotation searcher
🗩