Adding Cubes to the Renderer
?
?
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
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus
Keyboard Navigation
Global Keys
[, < / ], > Jump to previous / next episodeW, 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 CreditsIn-Menu Movement
a
w
s
s
d
h
j
k
l
←
↑
↓
↓
→
Quotes and References Menus
Enter Jump to timecodeQuotes, References and Credits Menus
o Open URL (in new tab)Filter Menu
x, Space Toggle category and focus nextX, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus
Credits Menu
Enter Open URL (in new tab)⏫
Previous: 'Adjusting Sprite Cards to Counter Projection'
⏫
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
1:28Run the game to demo the trees always facing the camera
1:28Run the game to demo the trees always facing the camera
1:28Run the game to demo the trees always facing the camera
5:13Blackboard: Camera-Facing Cards
5:13Blackboard: Camera-Facing Cards
5:13Blackboard: Camera-Facing Cards
9:37Blackboard: Talking about X/Y planes in camera space
9:37Blackboard: Talking about X/Y planes in camera space
9:37Blackboard: Talking about X/Y planes in camera space
11:06handmade_render_group.cpp: Show the PushBitmap() code which maps the world space positions into camera space
11:06handmade_render_group.cpp: Show the PushBitmap() code which maps the world space positions into camera space
11:06handmade_render_group.cpp: Show the PushBitmap() code which maps the world space positions into camera space
12:01Run the game to demo the camera tilt, and consider sorting and the concept of a debug camera
12:01Run the game to demo the camera tilt, and consider sorting and the concept of a debug camera
12:01Run the game to demo the camera tilt, and consider sorting and the concept of a debug camera
15:17handmade_render_group.h: Introduce camera_transform_flag to aid implementing a debug camera
15:17handmade_render_group.h: Introduce camera_transform_flag to aid implementing a debug camera
15:17handmade_render_group.h: Introduce camera_transform_flag to aid implementing a debug camera
17:43handmade_world_mode.cpp: Enable UpdateAndRenderWorld() to call SetCameraTransform() twice with different arguments
17:43handmade_world_mode.cpp: Enable UpdateAndRenderWorld() to call SetCameraTransform() twice with different arguments
17:43handmade_world_mode.cpp: Enable UpdateAndRenderWorld() to call SetCameraTransform() twice with different arguments
23:53Run the game to try toggling between the two cameras, and consider how to handle sprite cards intersecting
23:53Run the game to try toggling between the two cameras, and consider how to handle sprite cards intersecting
23:53Run the game to try toggling between the two cameras, and consider how to handle sprite cards intersecting
33:28Blackboard: Introducing a cube primitive
33:28Blackboard: Introducing a cube primitive
33:28Blackboard: Introducing a cube primitive
38:23handmade_render_group.h: Introduce render_entry_cube struct
38:23handmade_render_group.h: Introduce render_entry_cube struct
38:23handmade_render_group.h: Introduce render_entry_cube struct
41:11handmade_render_group.cpp: Introduce PushCube() and remove RendersInBackground
41:11handmade_render_group.cpp: Introduce PushCube() and remove RendersInBackground
41:11handmade_render_group.cpp: Introduce PushCube() and remove RendersInBackground
46:59Run the game and see that nothing has happened
46:59Run the game and see that nothing has happened
46:59Run the game and see that nothing has happened
49:05Investigate where we're placing the hero, and why tweaking the P.Offset_.z causes it to fail
49:05Investigate where we're placing the hero, and why tweaking the P.Offset_.z causes it to fail
49:05Investigate where we're placing the hero, and why tweaking the P.Offset_.z causes it to fail
56:33Determine that we're not doing the room sizing stuff correctly
56:33Determine that we're not doing the room sizing stuff correctly
56:33Determine that we're not doing the room sizing stuff correctly
58:49handmade_entity.cpp: Enable UpdateAndRenderEntities() to call PushCube() for the traversables
58:49handmade_entity.cpp: Enable UpdateAndRenderEntities() to call PushCube() for the traversables
58:49handmade_entity.cpp: Enable UpdateAndRenderEntities() to call PushCube() for the traversables
1:05:43handmade_world_mode.cpp: Introduce an AddPiece() that takes a Height and translates it to a V2
1:05:43handmade_world_mode.cpp: Introduce an AddPiece() that takes a Height and translates it to a V2
1:05:43handmade_world_mode.cpp: Introduce an AddPiece() that takes a Height and translates it to a V2
1:06:53handmade_world_mode.cpp: Make AddStandardRoom() call AddPiece() for the traversables
1:06:53handmade_world_mode.cpp: Make AddStandardRoom() call AddPiece() for the traversables
1:06:53handmade_world_mode.cpp: Make AddStandardRoom() call AddPiece() for the traversables
1:11:26handmade_opengl.cpp: Enable OpenGLRenderCommands() to handle the cube case
1:11:26handmade_opengl.cpp: Enable OpenGLRenderCommands() to handle the cube case
1:11:26handmade_opengl.cpp: Enable OpenGLRenderCommands() to handle the cube case
1:13:22Blackboard: Mr. Cube
1:13:22Blackboard: Mr. Cube
1:13:22Blackboard: Mr. Cube
1:16:29handmade_opengl.cpp: Enumerate the eight faces for the cube
1:16:29handmade_opengl.cpp: Enumerate the eight faces for the cube
1:16:29handmade_opengl.cpp: Enumerate the eight faces for the cube
1:19:50Blackboard: Specifying the points for triangles in a counter-clockwise fashion
1:19:50Blackboard: Specifying the points for triangles in a counter-clockwise fashion
1:19:50Blackboard: Specifying the points for triangles in a counter-clockwise fashion
1:21:19handmade_opengl.cpp: Introduce GLQuad()
1:21:19handmade_opengl.cpp: Introduce GLQuad()
1:21:19handmade_opengl.cpp: Introduce GLQuad()
1:23:21Blackboard: Winding, and backface culling
1:23:21Blackboard: Winding, and backface culling
1:23:21Blackboard: Winding, and backface culling
1:26:09handmade_opengl.cpp: Specify the eight faces of the cube for OpenGLRenderCommands() to pass to GLQuad()
1:26:09handmade_opengl.cpp: Specify the eight faces of the cube for OpenGLRenderCommands() to pass to GLQuad()
1:26:09handmade_opengl.cpp: Specify the eight faces of the cube for OpenGLRenderCommands() to pass to GLQuad()
1:33:41handmade_opengl.cpp: Enable OpenGLRenderCommands() to generate the cube points
1:33:41handmade_opengl.cpp: Enable OpenGLRenderCommands() to generate the cube points
1:33:41handmade_opengl.cpp: Enable OpenGLRenderCommands() to generate the cube points
1:36:12Run the game to see our first cube
1:36:12Run the game to see our first cube
1:36:12Run the game to see our first cube
1:36:48handmade_entity.cpp: Make UpdateAndRenderEntities() pass the offset to PushCube() and run the game to see all the cubes
1:36:48handmade_entity.cpp: Make UpdateAndRenderEntities() pass the offset to PushCube() and run the game to see all the cubes
1:36:48handmade_entity.cpp: Make UpdateAndRenderEntities() pass the offset to PushCube() and run the game to see all the cubes
1:39:31handmade_world_mode.cpp: Make AddStandardRoom() reduce the variance of the traversable position offsets and run the game to check it out
1:39:31handmade_world_mode.cpp: Make AddStandardRoom() reduce the variance of the traversable position offsets and run the game to check it out
1:39:31handmade_world_mode.cpp: Make AddStandardRoom() reduce the variance of the traversable position offsets and run the game to check it out
1:41:01handmade_opengl.cpp: Set the cubes' colour to white, give them a texture and run the game to check it out
1:41:01handmade_opengl.cpp: Set the cubes' colour to white, give them a texture and run the game to check it out
1:41:01handmade_opengl.cpp: Set the cubes' colour to white, give them a texture and run the game to check it out
1:43:40Demo the case in which a tree and a cube interpenetrate and Z-fight, and consider how to combat this
1:43:40Demo the case in which a tree and a cube interpenetrate and Z-fight, and consider how to combat this
1:43:40Demo the case in which a tree and a cube interpenetrate and Z-fight, and consider how to combat this
1:47:51handmade_render_group.cpp: Re-enable PushBitmap() to perform shearing, and run the game
1:47:51handmade_render_group.cpp: Re-enable PushBitmap() to perform shearing, and run the game
1:47:51handmade_render_group.cpp: Re-enable PushBitmap() to perform shearing, and run the game
1:50:05Q&A
🗩
1:50:05Q&A
🗩
1:50:05Q&A
🗩
1:52:00Blackboard: Coordinate system right-handedness and counter-clockwise winding
1:52:00Blackboard: Coordinate system right-handedness and counter-clockwise winding
1:52:00Blackboard: Coordinate system right-handedness and counter-clockwise winding
1:57:09Run the game to demo the visual interest of the tilting1
1:57:09Run the game to demo the visual interest of the tilting1
1:57:09Run the game to demo the visual interest of the tilting1
2:01:28Recommend Andrew Russell's blog on the sorting in River City Ransom2
2:01:28Recommend Andrew Russell's blog on the sorting in River City Ransom2
2:01:28Recommend Andrew Russell's blog on the sorting in River City Ransom2
2:08:41Blackboard: "Exactly n bits" vs "At least n bits"
2:08:41Blackboard: "Exactly n bits" vs "At least n bits"
2:08:41Blackboard: "Exactly n bits" vs "At least n bits"
2:17:00Close it down
🗩
2:17:00Close it down
🗩
2:17:00Close it down
🗩
⏬
Next: 'Enabling OpenGL Multisampling'
⏬