Voxelizing Light Probes
?
?

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:00Welcome to the show
🗩
0:00Welcome to the show
🗩
0:00Welcome to the show
🗩
0:06xdafal handmade_hero What's a high-level language you find bit interesting?
🗪
0:06xdafal handmade_hero What's a high-level language you find bit interesting?
🗪
0:06xdafal handmade_hero What's a high-level language you find bit interesting?
🗪
0:30Language Graph: Performance vs Speed of Development
🖌
0:30Language Graph: Performance vs Speed of Development
🖌
0:30Language Graph: Performance vs Speed of Development
🖌
8:03internationalizationist Q: What place on this graph takes Jon's Jai?
🗪
8:03internationalizationist Q: What place on this graph takes Jon's Jai?
🗪
8:03internationalizationist Q: What place on this graph takes Jon's Jai?
🗪
8:53bulmanator Q: Where is lisp on that graph? Because you said it was interesting
🗪
8:53bulmanator Q: Where is lisp on that graph? Because you said it was interesting
🗪
8:53bulmanator Q: Where is lisp on that graph? Because you said it was interesting
🗪
9:48Plug Guga Foods1
🗩
9:48Plug Guga Foods1
🗩
9:48Plug Guga Foods1
🗩
13:14Recap our switch to light probes and set the stage for the day
🗩
13:14Recap our switch to light probes and set the stage for the day
🗩
13:14Recap our switch to light probes and set the stage for the day
🗩
20:02Walk through our sketched out AddProbeToSpatialIndex()
📖
20:02Walk through our sketched out AddProbeToSpatialIndex()
📖
20:02Walk through our sketched out AddProbeToSpatialIndex()
📖
21:29Sampling discontinuities across multiple voxels
🖌
21:29Sampling discontinuities across multiple voxels
🖌
21:29Sampling discontinuities across multiple voxels
🖌
25:17One light probe per voxel cell
🖌
25:17One light probe per voxel cell
🖌
25:17One light probe per voxel cell
🖌
28:06Smoothly sampling a moving light probe in 2D
🖌
28:06Smoothly sampling a moving light probe in 2D
🖌
28:06Smoothly sampling a moving light probe in 2D
🖌
33:44Fixing light probes at the centre of voxel cells
🖌
33:44Fixing light probes at the centre of voxel cells
🖌
33:44Fixing light probes at the centre of voxel cells
🖌
37:18Continue to implement AddProbeToSpatialIndex() with light probes positioned at the centre of voxel cells, introducing light_probe struct
37:18Continue to implement AddProbeToSpatialIndex() with light probes positioned at the centre of voxel cells, introducing light_probe struct
37:18Continue to implement AddProbeToSpatialIndex() with light probes positioned at the centre of voxel cells, introducing light_probe struct
44:29Introduce GetProbeLightingFor(), accumulating the lighting contribution of all eight corners of the voxel cell
44:29Introduce GetProbeLightingFor(), accumulating the lighting contribution of all eight corners of the voxel cell
44:29Introduce GetProbeLightingFor(), accumulating the lighting contribution of all eight corners of the voxel cell
57:03Introduce GetLightFromProbe()
57:03Introduce GetLightFromProbe()
57:03Introduce GetLightFromProbe()
59:29Blending two colour values using a normal
🖌
59:29Blending two colour values using a normal
🖌
59:29Blending two colour values using a normal
🖌
1:02:43Norms, or Normalised Values
🖌
1:02:43Norms, or Normalised Values
🖌
1:02:43Norms, or Normalised Values
🖌
1:05:30Blending two colour values using a 1-norm
🖌
1:05:30Blending two colour values using a 1-norm
🖌
1:05:30Blending two colour values using a 1-norm
🖌
1:08:33Implement GetLightFromProbe(), linearly blending the colours of voxel cell faces
1:08:33Implement GetLightFromProbe(), linearly blending the colours of voxel cell faces
1:08:33Implement GetLightFromProbe(), linearly blending the colours of voxel cell faces
1:10:33Sampling out of a cube
🖌
1:10:33Sampling out of a cube
🖌
1:10:33Sampling out of a cube
🖌
1:12:08Continue to implement GetLightFromProbe()
1:12:08Continue to implement GetLightFromProbe()
1:12:08Continue to implement GetLightFromProbe()
1:14:24Ways to optimise GetLightFromProbe()
🗩
1:14:24Ways to optimise GetLightFromProbe()
🗩
1:14:24Ways to optimise GetLightFromProbe()
🗩
1:16:57Introduce AccumulateProbe()
1:16:57Introduce AccumulateProbe()
1:16:57Introduce AccumulateProbe()
1:18:38Introduce GetCenterOf(), GetSpatialIndexAddress(), GetCornerLightIndex() and MapIntoGrid()
1:18:38Introduce GetCenterOf(), GetSpatialIndexAddress(), GetCornerLightIndex() and MapIntoGrid()
1:18:38Introduce GetCenterOf(), GetSpatialIndexAddress(), GetCornerLightIndex() and MapIntoGrid()
1:27:12Shifting and Powers
🖌
1:27:12Shifting and Powers
🖌
1:27:12Shifting and Powers
🖌
1:28:59Change GetCornerLightIndex() and GetSpatialIndexAddress() to use efficient shifting
1:28:59Change GetCornerLightIndex() and GetSpatialIndexAddress() to use efficient shifting
1:28:59Change GetCornerLightIndex() and GetSpatialIndexAddress() to use efficient shifting
1:32:03Implement MapIntoGrid(), introducing light_probe_spatial_index_mapping
1:32:03Implement MapIntoGrid(), introducing light_probe_spatial_index_mapping
1:32:03Implement MapIntoGrid(), introducing light_probe_spatial_index_mapping
1:37:00Switch gen_v3 over to be a v3s, introducing conversion functions
1:37:00Switch gen_v3 over to be a v3s, introducing conversion functions
1:37:00Switch gen_v3 over to be a v3s, introducing conversion functions
1:42:12Introduce GetProbeFromCell() and GetProbe(), and clean up compile errors
1:42:12Introduce GetProbeFromCell() and GetProbe(), and clean up compile errors
1:42:12Introduce GetProbeFromCell() and GetProbe(), and clean up compile errors
1:46:46Q&A
🗩
1:46:46Q&A
🗩
1:46:46Q&A
🗩
1:47:28longboolean Q: Concerning moving light probes, could you have special purpose light probes that only affect the lighting of certain things that move? So you would end up with things that move, and things that don't and most other probes in the lighting system would be unmoving. (And perhaps the moving probes could use some of the unmoving information, and the unmoving could could gradually sample from the moving.)
🗪
1:47:28longboolean Q: Concerning moving light probes, could you have special purpose light probes that only affect the lighting of certain things that move? So you would end up with things that move, and things that don't and most other probes in the lighting system would be unmoving. (And perhaps the moving probes could use some of the unmoving information, and the unmoving could could gradually sample from the moving.)
🗪
1:47:28longboolean Q: Concerning moving light probes, could you have special purpose light probes that only affect the lighting of certain things that move? So you would end up with things that move, and things that don't and most other probes in the lighting system would be unmoving. (And perhaps the moving probes could use some of the unmoving information, and the unmoving could could gradually sample from the moving.)
🗪
1:50:16xxthebigfoxx Q: When and how often do we plan to compute the light probes?
🗪
1:50:16xxthebigfoxx Q: When and how often do we plan to compute the light probes?
🗪
1:50:16xxthebigfoxx Q: When and how often do we plan to compute the light probes?
🗪
1:51:33lspaceyl Q: How are square roots computed and how fast are they?2
🗪
1:51:33lspaceyl Q: How are square roots computed and how fast are they?2
🗪
1:51:33lspaceyl Q: How are square roots computed and how fast are they?2
🗪
2:00:16npcxx Q: Is CRT dependency a Visual Studio feature only or do other compilers such as GCC and Clang have it too? Also, does the dependency include C++ or just C?
🗪
2:00:16npcxx Q: Is CRT dependency a Visual Studio feature only or do other compilers such as GCC and Clang have it too? Also, does the dependency include C++ or just C?
🗪
2:00:16npcxx Q: Is CRT dependency a Visual Studio feature only or do other compilers such as GCC and Clang have it too? Also, does the dependency include C++ or just C?
🗪
2:02:28krystcich Q: I didn't really see this pop up before, so: Do you think using Direct2D for a 2D game is a good idea if I want to implement it from scratch or would you rather use DX11/12 today?
🗪
2:02:28krystcich Q: I didn't really see this pop up before, so: Do you think using Direct2D for a 2D game is a good idea if I want to implement it from scratch or would you rather use DX11/12 today?
🗪
2:02:28krystcich Q: I didn't really see this pop up before, so: Do you think using Direct2D for a 2D game is a good idea if I want to implement it from scratch or would you rather use DX11/12 today?
🗪
2:03:03xxthebigfoxx Q: You probably went over this last week, but how do you plan to make this faster than what we had before then?
🗪
2:03:03xxthebigfoxx Q: You probably went over this last week, but how do you plan to make this faster than what we had before then?
🗪
2:03:03xxthebigfoxx Q: You probably went over this last week, but how do you plan to make this faster than what we had before then?
🗪
2:03:53xdunex Q: Hey, I love the trick with the hot loading but having a hard time grasping the general idea. Could you make a kind of generic overlooking explanation, and would it work with a 3rd party library like SFMl?
🗪
2:03:53xdunex Q: Hey, I love the trick with the hot loading but having a hard time grasping the general idea. Could you make a kind of generic overlooking explanation, and would it work with a 3rd party library like SFMl?
🗪
2:03:53xdunex Q: Hey, I love the trick with the hot loading but having a hard time grasping the general idea. Could you make a kind of generic overlooking explanation, and would it work with a 3rd party library like SFMl?
🗪
2:06:05Targeting DX11, rather than DX12
🗩
2:06:05Targeting DX11, rather than DX12
🗩
2:06:05Targeting DX11, rather than DX12
🗩
2:09:37nickito97 Q: Do you have an opinion on C callbacks and void* userdata? Do you know any alternatives? Do you have an opinion on GCC's "nested functions"?
🗪
2:09:37nickito97 Q: Do you have an opinion on C callbacks and void* userdata? Do you know any alternatives? Do you have an opinion on GCC's "nested functions"?
🗪
2:09:37nickito97 Q: Do you have an opinion on C callbacks and void* userdata? Do you know any alternatives? Do you have an opinion on GCC's "nested functions"?
🗪
2:10:15lspaceyl Q: I'm pretty early on in the stream, like 028, and the sound on my machine was scratchy. Do you end up making it use a separate thread to help clean it up, or did DirectSound get replaced?
🗪
2:10:15lspaceyl Q: I'm pretty early on in the stream, like 028, and the sound on my machine was scratchy. Do you end up making it use a separate thread to help clean it up, or did DirectSound get replaced?
🗪
2:10:15lspaceyl Q: I'm pretty early on in the stream, like 028, and the sound on my machine was scratchy. Do you end up making it use a separate thread to help clean it up, or did DirectSound get replaced?
🗪
2:12:39xdunex Q: About hot loading game code, is it a common thing between game programmers?
🗪
2:12:39xdunex Q: About hot loading game code, is it a common thing between game programmers?
🗪
2:12:39xdunex Q: About hot loading game code, is it a common thing between game programmers?
🗪
2:13:49schw00 Q: Hey, I'm way behind on Day 027, and for some reason StretchDIBits() has started failing after changing resolution to 960x540. I reverted to 1280x720 and now it still fails... Any quick ideas?
🗪
2:13:49schw00 Q: Hey, I'm way behind on Day 027, and for some reason StretchDIBits() has started failing after changing resolution to 960x540. I reverted to 1280x720 and now it still fails... Any quick ideas?
🗪
2:13:49schw00 Q: Hey, I'm way behind on Day 027, and for some reason StretchDIBits() has started failing after changing resolution to 960x540. I reverted to 1280x720 and now it still fails... Any quick ideas?
🗪
2:14:28nickito97 Q: Would you recommend any free Windows debuggers?3
🗪
2:14:28nickito97 Q: Would you recommend any free Windows debuggers?3
🗪
2:14:28nickito97 Q: Would you recommend any free Windows debuggers?3
🗪
2:17:30nickito97 Q: Have you ever used Telemetry debugger?
🗪
2:17:30nickito97 Q: Have you ever used Telemetry debugger?
🗪
2:17:30nickito97 Q: Have you ever used Telemetry debugger?
🗪
2:17:56s0imn Q: When I look for ways of looking up the position of objects in a game, e.g. for raycasting, some sort of graph or tree is always presented as essential. Are there other ways of doing such lookups efficiently? It seems like an array sorted by the distance from the origin, and doing lookups in ranges
🗪
2:17:56s0imn Q: When I look for ways of looking up the position of objects in a game, e.g. for raycasting, some sort of graph or tree is always presented as essential. Are there other ways of doing such lookups efficiently? It seems like an array sorted by the distance from the origin, and doing lookups in ranges
🗪
2:17:56s0imn Q: When I look for ways of looking up the position of objects in a game, e.g. for raycasting, some sort of graph or tree is always presented as essential. Are there other ways of doing such lookups efficiently? It seems like an array sorted by the distance from the origin, and doing lookups in ranges
🗪
2:19:45x13pixels Data breakpoints just got finished up today
🗪
2:19:45x13pixels Data breakpoints just got finished up today
🗪
2:19:45x13pixels Data breakpoints just got finished up today
🗪
2:20:32lspaceyl Q: How do you run the .bat compile code on other platforms?
🗪
2:20:32lspaceyl Q: How do you run the .bat compile code on other platforms?
🗪
2:20:32lspaceyl Q: How do you run the .bat compile code on other platforms?
🗪
2:20:48ivereadthesequel handmade_hero The other thing you can do in VS is have your debugger not work properly
🗪
2:20:48ivereadthesequel handmade_hero The other thing you can do in VS is have your debugger not work properly
🗪
2:20:48ivereadthesequel handmade_hero The other thing you can do in VS is have your debugger not work properly
🗪
2:21:07zrizi Q: About mip map generation, I was wondering why you decided to compute on CPU and not GPU. In addition, why did you decide to go with a simple box filter and not something smoother like a tent filter?
🗪
2:21:07zrizi Q: About mip map generation, I was wondering why you decided to compute on CPU and not GPU. In addition, why did you decide to go with a simple box filter and not something smoother like a tent filter?
🗪
2:21:07zrizi Q: About mip map generation, I was wondering why you decided to compute on CPU and not GPU. In addition, why did you decide to go with a simple box filter and not something smoother like a tent filter?
🗪
2:23:06Wrap it up
🗩
2:23:06Wrap it up
🗩
2:23:06Wrap it up
🗩