Removing Old Lighting Lookups
?
?

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

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

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)
0:01Recap our ongoing switch to light probes and set the stage for the day
🗩
0:01Recap our ongoing switch to light probes and set the stage for the day
🗩
0:01Recap our ongoing switch to light probes and set the stage for the day
🗩
8:17Demo the currently unlit game
🏃
8:17Demo the currently unlit game
🏃
8:17Demo the currently unlit game
🏃
9:06Disable ComputeLightPropagation()
9:06Disable ComputeLightPropagation()
9:06Disable ComputeLightPropagation()
10:05Consult the profiler, to see that RenderGroundCover is our expensive routine
🏃
10:05Consult the profiler, to see that RenderGroundCover is our expensive routine
🏃
10:05Consult the profiler, to see that RenderGroundCover is our expensive routine
🏃
11:34Gauge the expense of DrawGroundCover(), and note the potential for caching it
📖
11:34Gauge the expense of DrawGroundCover(), and note the potential for caching it
📖
11:34Gauge the expense of DrawGroundCover(), and note the potential for caching it
📖
14:43Note that we are not quite hitting 60FPS
🏃
14:43Note that we are not quite hitting 60FPS
🏃
14:43Note that we are not quite hitting 60FPS
🏃
15:27Add a VSync toggle
15:27Add a VSync toggle
15:27Add a VSync toggle
16:37Find that VSync toggling seems not to affect the frame rate
🏃
16:37Find that VSync toggling seems not to affect the frame rate
🏃
16:37Find that VSync toggling seems not to affect the frame rate
🏃
17:23Consult our VSync toggling code
📖
17:23Consult our VSync toggling code
📖
17:23Consult our VSync toggling code
📖
17:56Break in to PlatformOpenGLSetVSync(), toggle VSync, but conclude that we always get VSync
🏃
17:56Break in to PlatformOpenGLSetVSync(), toggle VSync, but conclude that we always get VSync
🏃
17:56Break in to PlatformOpenGLSetVSync(), toggle VSync, but conclude that we always get VSync
🏃
21:02Consult the documentation on OpenGL's Swap Interval1
📖
21:02Consult the documentation on OpenGL's Swap Interval1
📖
21:02Consult the documentation on OpenGL's Swap Interval1
📖
22:09Create issue "Are we actually able to turn off VSync?"2
🗹
22:09Create issue "Are we actually able to turn off VSync?"2
🗹
22:09Create issue "Are we actually able to turn off VSync?"2
🗹
23:13Determine to feed our new light probes through to the renderer
🗩
23:13Determine to feed our new light probes through to the renderer
🗩
23:13Determine to feed our new light probes through to the renderer
🗩
26:21Remove lighting_point_state from the entity struct, and TextureIndex from textured_vertex
26:21Remove lighting_point_state from the entity struct, and TextureIndex from textured_vertex
26:21Remove lighting_point_state from the entity struct, and TextureIndex from textured_vertex
39:16Remove LightIndex and FragLightIndex from CompileZBiasProgram()
39:16Remove LightIndex and FragLightIndex from CompileZBiasProgram()
39:16Remove LightIndex and FragLightIndex from CompileZBiasProgram()
41:02See that our textures are absent
🏃
41:02See that our textures are absent
🏃
41:02See that our textures are absent
🏃
41:50Reinstate TextureIndex in textured_vertex
41:50Reinstate TextureIndex in textured_vertex
41:50Reinstate TextureIndex in textured_vertex
45:22See that our textures are still absent
🏃
45:22See that our textures are still absent
🏃
45:22See that our textures are still absent
🏃
45:46Remove VertLightIndex from CompileZBiasProgram()
45:46Remove VertLightIndex from CompileZBiasProgram()
45:46Remove VertLightIndex from CompileZBiasProgram()
46:24See that our textures are still absent
🏃
46:24See that our textures are still absent
🏃
46:24See that our textures are still absent
🏃
46:26Remove VertLightIndex from opengl_program_common
46:26Remove VertLightIndex from opengl_program_common
46:26Remove VertLightIndex from opengl_program_common
47:25See that our textures are still absent
🏃
47:25See that our textures are still absent
🏃
47:25See that our textures are still absent
🏃
47:42Scan through the hardware renderer for texture index
📖
47:42Scan through the hardware renderer for texture index
📖
47:42Scan through the hardware renderer for texture index
📖
49:00Let WriteQuad() and PushQuad() set the TextureIndex again
49:00Let WriteQuad() and PushQuad() set the TextureIndex again
49:00Let WriteQuad() and PushQuad() set the TextureIndex again
52:00See that our textures are back
🏃
52:00See that our textures are back
🏃
52:00See that our textures are back
🏃
54:04Plan to push light probes through to the renderer
🗩
54:04Plan to push light probes through to the renderer
🗩
54:04Plan to push light probes through to the renderer
🗩
58:08Remove LightIndex and Transparency from lighting_box
58:08Remove LightIndex and Transparency from lighting_box
58:08Remove LightIndex and Transparency from lighting_box
1:07:05Find that the game runs fine
🏃
1:07:05Find that the game runs fine
🏃
1:07:05Find that the game runs fine
🏃
1:08:07Enable PushCube() to push a lighting_box onto the lighting system, augmenting that structure with a TextureIndex
1:08:07Enable PushCube() to push a lighting_box onto the lighting system, augmenting that structure with a TextureIndex
1:08:07Enable PushCube() to push a lighting_box onto the lighting system, augmenting that structure with a TextureIndex
1:14:39Consider building into the ray tracing process the idea that every ray has a set destination to write to
🗩
1:14:39Consider building into the ray tracing process the idea that every ray has a set destination to write to
🗩
1:14:39Consider building into the ray tracing process the idea that every ray has a set destination to write to
🗩
1:16:46Consider blending the colours of each face of the lighting_box into one colour
🗩
1:16:46Consider blending the colours of each face of the lighting_box into one colour
🗩
1:16:46Consider blending the colours of each face of the lighting_box into one colour
🗩
1:19:41Toggle off all the surface colour computation in RayCast()
1:19:41Toggle off all the surface colour computation in RayCast()
1:19:41Toggle off all the surface colour computation in RayCast()
1:23:57Consider the necessity of breaking out early of the surface colour computation in RayCast()
📖
1:23:57Consider the necessity of breaking out early of the surface colour computation in RayCast()
📖
1:23:57Consider the necessity of breaking out early of the surface colour computation in RayCast()
📖
1:30:43Toggle off the early-out code in RayCast()
1:30:43Toggle off the early-out code in RayCast()
1:30:43Toggle off the early-out code in RayCast()
1:33:51Set up to accelerate RayCast(), replacing BoxIndex and BoxSurfaceIndex with Normal in raycast_result
1:33:51Set up to accelerate RayCast(), replacing BoxIndex and BoxSurfaceIndex with Normal in raycast_result
1:33:51Set up to accelerate RayCast(), replacing BoxIndex and BoxSurfaceIndex with Normal in raycast_result
1:54:18Q&A
🗩
1:54:18Q&A
🗩
1:54:18Q&A
🗩
1:55:10mikka3 Q: Do you have any tips for how someone would go about moving an existing codebase from OOP, assuming you're in control of it? By the way, thank you very much for the series. I'm learning so much, that $15 doesn't even begin to compare with the value you're providing. The fact the series is free is even more awesome
🗪
1:55:10mikka3 Q: Do you have any tips for how someone would go about moving an existing codebase from OOP, assuming you're in control of it? By the way, thank you very much for the series. I'm learning so much, that $15 doesn't even begin to compare with the value you're providing. The fact the series is free is even more awesome
🗪
1:55:10mikka3 Q: Do you have any tips for how someone would go about moving an existing codebase from OOP, assuming you're in control of it? By the way, thank you very much for the series. I'm learning so much, that $15 doesn't even begin to compare with the value you're providing. The fact the series is free is even more awesome
🗪
1:58:59s0llygaming Q: I'm only on episode 81 so excuse the noobiness: I've created different "modules" in my code that store different data for my entities (physics, render, AI, etc). Would it be silly to create an "anonymous" module type that union's these different modules into one generic struct? Meaning I can put them all into one array to pass around etc.
🗪
1:58:59s0llygaming Q: I'm only on episode 81 so excuse the noobiness: I've created different "modules" in my code that store different data for my entities (physics, render, AI, etc). Would it be silly to create an "anonymous" module type that union's these different modules into one generic struct? Meaning I can put them all into one array to pass around etc.
🗪
1:58:59s0llygaming Q: I'm only on episode 81 so excuse the noobiness: I've created different "modules" in my code that store different data for my entities (physics, render, AI, etc). Would it be silly to create an "anonymous" module type that union's these different modules into one generic struct? Meaning I can put them all into one array to pass around etc.
🗪
2:02:21zrizi Q: It seems that tracing rays to collect light is a heavy operation. If ray tracing supported GPU hardware was common these days, would it be fair to say that you would prefer to move the lighting computation to the GPU entirely?
🗪
2:02:21zrizi Q: It seems that tracing rays to collect light is a heavy operation. If ray tracing supported GPU hardware was common these days, would it be fair to say that you would prefer to move the lighting computation to the GPU entirely?
🗪
2:02:21zrizi Q: It seems that tracing rays to collect light is a heavy operation. If ray tracing supported GPU hardware was common these days, would it be fair to say that you would prefer to move the lighting computation to the GPU entirely?
🗪
2:03:12zrizi Q: (Off-topic) Talking to graphics folks, it seems that shader permutation management is a real pain point. On the other hand, you have titles like Doom that use a significant small number of permutations and pipeline states. In a more complex 3D title, what’s your take on GPU complexity management? How will you design a solution that scales?
🗪
2:03:12zrizi Q: (Off-topic) Talking to graphics folks, it seems that shader permutation management is a real pain point. On the other hand, you have titles like Doom that use a significant small number of permutations and pipeline states. In a more complex 3D title, what’s your take on GPU complexity management? How will you design a solution that scales?
🗪
2:03:12zrizi Q: (Off-topic) Talking to graphics folks, it seems that shader permutation management is a real pain point. On the other hand, you have titles like Doom that use a significant small number of permutations and pipeline states. In a more complex 3D title, what’s your take on GPU complexity management? How will you design a solution that scales?
🗪
2:06:37zrizi Q: (Off-topic) Real production related question. In Handmade Hero, we have a general idea of how the game should look and feel like (mechanics, art direction, etc.). We’re tackling engine problems because they are interesting, and I’m very grateful for you doing it. How will the process of tackling things and “exploring” the engine design look like in a real production environment based on your experience? Say, maybe, based on your experience working on The Witness with Jon Blow?
🗪
2:06:37zrizi Q: (Off-topic) Real production related question. In Handmade Hero, we have a general idea of how the game should look and feel like (mechanics, art direction, etc.). We’re tackling engine problems because they are interesting, and I’m very grateful for you doing it. How will the process of tackling things and “exploring” the engine design look like in a real production environment based on your experience? Say, maybe, based on your experience working on The Witness with Jon Blow?
🗪
2:06:37zrizi Q: (Off-topic) Real production related question. In Handmade Hero, we have a general idea of how the game should look and feel like (mechanics, art direction, etc.). We’re tackling engine problems because they are interesting, and I’m very grateful for you doing it. How will the process of tackling things and “exploring” the engine design look like in a real production environment based on your experience? Say, maybe, based on your experience working on The Witness with Jon Blow?
🗪
2:08:20bulmanator Q: Tips on reading academic papers about graphics and stuff? I always seem to get lost in their technical jargon and don’t really get anything out of them. A good example is your video about GJK3 vs the actual paper
🗪
2:08:20bulmanator Q: Tips on reading academic papers about graphics and stuff? I always seem to get lost in their technical jargon and don’t really get anything out of them. A good example is your video about GJK3 vs the actual paper
🗪
2:08:20bulmanator Q: Tips on reading academic papers about graphics and stuff? I always seem to get lost in their technical jargon and don’t really get anything out of them. A good example is your video about GJK3 vs the actual paper
🗪
2:09:17Wrap it up
🗩
2:09:17Wrap it up
🗩
2:09:17Wrap it up
🗩