Using the Light Probe Spatial Index
?
?

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:00Recap and set the stage for the day
🗩
0:00Recap and set the stage for the day
🗩
0:00Recap and set the stage for the day
🗩
0:26Demo our current lighting sampling, with the trilinear blend artifacts
🏃
0:26Demo our current lighting sampling, with the trilinear blend artifacts
🏃
0:26Demo our current lighting sampling, with the trilinear blend artifacts
🏃
3:07Determine to move on to light transmission
🏃
3:07Determine to move on to light transmission
🏃
3:07Determine to move on to light transmission
🏃
6:01Reacquaint ourselves with BeginLightingComputation() and EndLightingComputation()
📖
6:01Reacquaint ourselves with BeginLightingComputation() and EndLightingComputation()
📖
6:01Reacquaint ourselves with BeginLightingComputation() and EndLightingComputation()
📖
9:02Admire our sampling sphere
🏃
9:02Admire our sampling sphere
🏃
9:02Admire our sampling sphere
🏃
9:40Remove the SampleTable from EndLightingComputation() and lighting_solution
9:40Remove the SampleTable from EndLightingComputation() and lighting_solution
9:40Remove the SampleTable from EndLightingComputation() and lighting_solution
10:33Walk through the rest of EndLightingComputation()
📖
10:33Walk through the rest of EndLightingComputation()
📖
10:33Walk through the rest of EndLightingComputation()
📖
11:57Determine to store persistent information in the light probes
🗩
11:57Determine to store persistent information in the light probes
🗩
11:57Determine to store persistent information in the light probes
🗩
13:20Determine to specify and track light sources
🗩
13:20Determine to specify and track light sources
🗩
13:20Determine to specify and track light sources
🗩
14:55"Bias" in the context of rendering vs sampling
🗩
14:55"Bias" in the context of rendering vs sampling
🗩
14:55"Bias" in the context of rendering vs sampling
🗩
16:59Summarise our determination regarding light probes and tracking of light sources
🗩
16:59Summarise our determination regarding light probes and tracking of light sources
🗩
16:59Summarise our determination regarding light probes and tracking of light sources
🗩
17:34Prepare EndLightingComputation() to implement persistent light probes
17:34Prepare EndLightingComputation() to implement persistent light probes
17:34Prepare EndLightingComputation() to implement persistent light probes
21:00Reacquaint ourselves with the light probe data in game_render_commands and lighting_solution
📖
21:00Reacquaint ourselves with the light probe data in game_render_commands and lighting_solution
📖
21:00Reacquaint ourselves with the light probe data in game_render_commands and lighting_solution
📖
23:35Remove light_probe and the LightProbes buffer from lighting_solution
23:35Remove light_probe and the LightProbes buffer from lighting_solution
23:35Remove light_probe and the LightProbes buffer from lighting_solution
23:59Consider handling variable amounts of light from the six directions, by using a uniform sampling pattern, pre-multiplied based on the rays-per-face
🗩
23:59Consider handling variable amounts of light from the six directions, by using a uniform sampling pattern, pre-multiplied based on the rays-per-face
🗩
23:59Consider handling variable amounts of light from the six directions, by using a uniform sampling pattern, pre-multiplied based on the rays-per-face
🗩
26:59Make EndLightingComputation() accumulate light persistently across frames
26:59Make EndLightingComputation() accumulate light persistently across frames
26:59Make EndLightingComputation() accumulate light persistently across frames
35:26Probe Accumulation
🖌
35:26Probe Accumulation
🖌
35:26Probe Accumulation
🖌
39:58Make EndLightingComputation() blend the accumulated light using our equation, rather than pre-multiplying in a first pass
39:58Make EndLightingComputation() blend the accumulated light using our equation, rather than pre-multiplying in a first pass
39:58Make EndLightingComputation() blend the accumulated light using our equation, rather than pre-multiplying in a first pass
44:28Prepare to voxelise our light probes
📖
44:28Prepare to voxelise our light probes
📖
44:28Prepare to voxelise our light probes
📖
45:39Consider the performance of our voxel sampling and trilinear blending
🏃
45:39Consider the performance of our voxel sampling and trilinear blending
🏃
45:39Consider the performance of our voxel sampling and trilinear blending
🏃
46:34Determine to use our voxel spatial indexing for now
🗩
46:34Determine to use our voxel spatial indexing for now
🗩
46:34Determine to use our voxel spatial indexing for now
🗩
47:39Make EndLightingComputation() call AddProbeToSpatialIndex() on all light probes, making the latter take the ProbeP and Radius to save it having to look up the light_probe
47:39Make EndLightingComputation() call AddProbeToSpatialIndex() on all light probes, making the latter take the ProbeP and Radius to save it having to look up the light_probe
47:39Make EndLightingComputation() call AddProbeToSpatialIndex() on all light probes, making the latter take the ProbeP and Radius to save it having to look up the light_probe
54:58Make EndLightingComputation() accumulate the irradiance of light probes during voxelisation, introducing IrradiancePack()
54:58Make EndLightingComputation() accumulate the irradiance of light probes during voxelisation, introducing IrradiancePack()
54:58Make EndLightingComputation() accumulate the irradiance of light probes during voxelisation, introducing IrradiancePack()
1:05:05Reacquaint ourselves with GetCornerLightIndex() and GetProbeLightingFor(), noting a positional bug
📖
1:05:05Reacquaint ourselves with GetCornerLightIndex() and GetProbeLightingFor(), noting a positional bug
📖
1:05:05Reacquaint ourselves with GetCornerLightIndex() and GetProbeLightingFor(), noting a positional bug
📖
1:08:54Make EndLightingComputation() call GetCornerLightIndex()
1:08:54Make EndLightingComputation() call GetCornerLightIndex()
1:08:54Make EndLightingComputation() call GetCornerLightIndex()
1:10:19Make EndLightingComputation() stuff some test irradiance into our light probes
1:10:19Make EndLightingComputation() stuff some test irradiance into our light probes
1:10:19Make EndLightingComputation() stuff some test irradiance into our light probes
1:15:11Make InitLighting() and BeginLightingComputation() set up our light probe voxel grid, and EndLightingComputation() clear the ProbeIndexPtr (while meaning to clear the ProbeIndex)
1:15:11Make InitLighting() and BeginLightingComputation() set up our light probe voxel grid, and EndLightingComputation() clear the ProbeIndexPtr (while meaning to clear the ProbeIndex)
1:15:11Make InitLighting() and BeginLightingComputation() set up our light probe voxel grid, and EndLightingComputation() clear the ProbeIndexPtr (while meaning to clear the ProbeIndex)
1:32:47Switch ComputeLightPropagation() and friends to our new implementation of light probes, augmenting the lighting_solution with LightProbeP and LightProbeIrradiance pointers
1:32:47Switch ComputeLightPropagation() and friends to our new implementation of light probes, augmenting the lighting_solution with LightProbeP and LightProbeIrradiance pointers
1:32:47Switch ComputeLightPropagation() and friends to our new implementation of light probes, augmenting the lighting_solution with LightProbeP and LightProbeIrradiance pointers
1:42:59Make EndLightingComputation() set the solution's light probe data
1:42:59Make EndLightingComputation() set the solution's light probe data
1:42:59Make EndLightingComputation() set the solution's light probe data
1:44:14Crash in AddProbeToSpatialIndex()
🏃
1:44:14Crash in AddProbeToSpatialIndex()
🏃
1:44:14Crash in AddProbeToSpatialIndex()
🏃
1:44:57Fix MapIntoGrid() to clamp the light probe voxel cell coordinates
1:44:57Fix MapIntoGrid() to clamp the light probe voxel cell coordinates
1:44:57Fix MapIntoGrid() to clamp the light probe voxel cell coordinates
1:49:29See something totally wrong
🏃
1:49:29See something totally wrong
🏃
1:49:29See something totally wrong
🏃
1:50:12Q&A
🗩
1:50:12Q&A
🗩
1:50:12Q&A
🗩
1:51:12roam00010011 handmade_hero Why does the Handmade Hero channel not have the "game development" and "programming" tags?
🗪
1:51:12roam00010011 handmade_hero Why does the Handmade Hero channel not have the "game development" and "programming" tags?
🗪
1:51:12roam00010011 handmade_hero Why does the Handmade Hero channel not have the "game development" and "programming" tags?
🗪
1:52:35Brian Q: The debug text still not working? I'm guessing yes for I've not seen it, but was curious if I just missed it). I did see earlier that you have begin / end lighting
🗪
1:52:35Brian Q: The debug text still not working? I'm guessing yes for I've not seen it, but was curious if I just missed it). I did see earlier that you have begin / end lighting
🗪
1:52:35Brian Q: The debug text still not working? I'm guessing yes for I've not seen it, but was curious if I just missed it). I did see earlier that you have begin / end lighting
🗪
1:53:04mindfulkid Q: Do you have any examples of good written software (open source) that you would recommend someone to study or that you yourself studied in the past?
🗪
1:53:04mindfulkid Q: Do you have any examples of good written software (open source) that you would recommend someone to study or that you yourself studied in the past?
🗪
1:53:04mindfulkid Q: Do you have any examples of good written software (open source) that you would recommend someone to study or that you yourself studied in the past?
🗪
1:54:38eddiesutrecht Q: Where's puss?
🗪
1:54:38eddiesutrecht Q: Where's puss?
🗪
1:54:38eddiesutrecht Q: Where's puss?
🗪
1:55:01dragoonx6 Q: " jhucktemp: Does his color scheme have a name? It's very pleasing to the eye"
🗪
1:55:01dragoonx6 Q: " jhucktemp: Does his color scheme have a name? It's very pleasing to the eye"
🗪
1:55:01dragoonx6 Q: " jhucktemp: Does his color scheme have a name? It's very pleasing to the eye"
🗪
1:55:33altoverflow Q: How can we improve the web?
🗪
1:55:33altoverflow Q: How can we improve the web?
🗪
1:55:33altoverflow Q: How can we improve the web?
🗪
1:58:14Brian Q: Someone had mentioned during the stream perhaps you needed 1.0f - IrrBlendU? (You had 1 - IrrBlendU). Perhaps you have already addressed this
🗪
1:58:14Brian Q: Someone had mentioned during the stream perhaps you needed 1.0f - IrrBlendU? (You had 1 - IrrBlendU). Perhaps you have already addressed this
🗪
1:58:14Brian Q: Someone had mentioned during the stream perhaps you needed 1.0f - IrrBlendU? (You had 1 - IrrBlendU). Perhaps you have already addressed this
🗪
1:59:09npcxx Q: Is DirectX dependent on the C runtime? Can it be used without it?
🗪
1:59:09npcxx Q: Is DirectX dependent on the C runtime? Can it be used without it?
🗪
1:59:09npcxx Q: Is DirectX dependent on the C runtime? Can it be used without it?
🗪
2:01:13Brian Q: I would guess so, because it might cast it to a integer. I had just read the chat
🗪
2:01:13Brian Q: I would guess so, because it might cast it to a integer. I had just read the chat
🗪
2:01:13Brian Q: I would guess so, because it might cast it to a integer. I had just read the chat
🗪
2:01:23Walk through the IrrBlendV initialisation in terms of int-to-float conversion
2:01:23Walk through the IrrBlendV initialisation in terms of int-to-float conversion
2:01:23Walk through the IrrBlendV initialisation in terms of int-to-float conversion
2:04:31Test int-to-float conversion
2:04:31Test int-to-float conversion
2:04:31Test int-to-float conversion
2:08:52Compile and see our int-to-float conversion warning
2:08:52Compile and see our int-to-float conversion warning
2:08:52Compile and see our int-to-float conversion warning
2:10:40Confirm the compiler's reluctance to warn when converting int-to-float in the IrrBlendV initialisation
2:10:40Confirm the compiler's reluctance to warn when converting int-to-float in the IrrBlendV initialisation
2:10:40Confirm the compiler's reluctance to warn when converting int-to-float in the IrrBlendV initialisation
2:12:00Use 1.0f in the IrrBlendV initialisation
2:12:00Use 1.0f in the IrrBlendV initialisation
2:12:00Use 1.0f in the IrrBlendV initialisation
2:12:14Step to our int-to-float test code and inspect these values
🏃
2:12:14Step to our int-to-float test code and inspect these values
🏃
2:12:14Step to our int-to-float test code and inspect these values
🏃
2:15:05Representing 5 as an int and a float
🖌
2:15:05Representing 5 as an int and a float
🖌
2:15:05Representing 5 as an int and a float
🖌
2:17:56Continue to describe our test int-to-float values
🏃
2:17:56Continue to describe our test int-to-float values
🏃
2:17:56Continue to describe our test int-to-float values
🏃
2:19:44Floating-point hexadecimal to binary
🖌
2:19:44Floating-point hexadecimal to binary
🖌
2:19:44Floating-point hexadecimal to binary
🖌
2:20:42Check the IEEE 754 floating-point format1,2
📖
2:20:42Check the IEEE 754 floating-point format1,2
📖
2:20:42Check the IEEE 754 floating-point format1,2
📖
2:23:00Inspect TestFloat in memory
🏃
2:23:00Inspect TestFloat in memory
🏃
2:23:00Inspect TestFloat in memory
🏃
2:24:07Convert TestFloat from hexadecimal to binary, and understand its floating-point representations3
🖌
2:24:07Convert TestFloat from hexadecimal to binary, and understand its floating-point representations3
🖌
2:24:07Convert TestFloat from hexadecimal to binary, and understand its floating-point representations3
🖌
2:30:04Step through our int-to-float conversion of 5
🏃
2:30:04Step through our int-to-float conversion of 5
🏃
2:30:04Step through our int-to-float conversion of 5
🏃
2:30:57Increase TestVal from 5 to 1 << 26
2:30:57Increase TestVal from 5 to 1 << 26
2:30:57Increase TestVal from 5 to 1 << 26
2:31:18Step through our int-to-float conversion of 1 << 26
🏃
2:31:18Step through our int-to-float conversion of 1 << 26
🏃
2:31:18Step through our int-to-float conversion of 1 << 26
🏃
2:31:27Why 1 << 26 fits in a float
🖌
2:31:27Why 1 << 26 fits in a float
🖌
2:31:27Why 1 << 26 fits in a float
🖌
2:32:03Set TestVal to (1 << 26) | 1
2:32:03Set TestVal to (1 << 26) | 1
2:32:03Set TestVal to (1 << 26) | 1
2:32:46Step through our int-to-float conversion of (1 << 26) | 1, to see our truncation problem
🏃
2:32:46Step through our int-to-float conversion of (1 << 26) | 1, to see our truncation problem
🏃
2:32:46Step through our int-to-float conversion of (1 << 26) | 1, to see our truncation problem
🏃
2:34:54dragoonx6 Q: What debugger is that?4
🗪
2:34:54dragoonx6 Q: What debugger is that?4
🗪
2:34:54dragoonx6 Q: What debugger is that?4
🗪
2:35:37Demo the sheer speed of remedybg, and praise its installation and the productivity of its writer x13pixels5
🏃
2:35:37Demo the sheer speed of remedybg, and praise its installation and the productivity of its writer x13pixels5
🏃
2:35:37Demo the sheer speed of remedybg, and praise its installation and the productivity of its writer x13pixels5
🏃
2:37:12ryuukk_ Q: Have you tried CLion?6 Its debugger is awesome
🗪
2:37:12ryuukk_ Q: Have you tried CLion?6 Its debugger is awesome
🗪
2:37:12ryuukk_ Q: Have you tried CLion?6 Its debugger is awesome
🗪
2:41:50Wind it down
🗩
2:41:50Wind it down
🗩
2:41:50Wind it down
🗩