Handmade Hero»Episode Guide
Aligning Light Voxels with the Camera
?
?

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
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 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

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:03Welcome to the stream
🗩
0:03Welcome to the stream
🗩
0:03Welcome to the stream
🗩
0:0812% frame time (64ms per frame) spent in ComputeLightPropagationWork()
🏃
0:0812% frame time (64ms per frame) spent in ComputeLightPropagationWork()
🏃
0:0812% frame time (64ms per frame) spent in ComputeLightPropagationWork()
🏃
1:13Consider shrinking the lighting box
🏃
1:13Consider shrinking the lighting box
🏃
1:13Consider shrinking the lighting box
🏃
1:46Decrease the LIGHT_LOOKUP_VOXEL_DIM_Y from 32 to 24
1:46Decrease the LIGHT_LOOKUP_VOXEL_DIM_Y from 32 to 24
1:46Decrease the LIGHT_LOOKUP_VOXEL_DIM_Y from 32 to 24
3:0411% frame time (50ms per frame) spent in ComputeLightPropagationWork()
🏃
3:0411% frame time (50ms per frame) spent in ComputeLightPropagationWork()
🏃
3:0411% frame time (50ms per frame) spent in ComputeLightPropagationWork()
🏃
3:54Consider aligning the light voxel with the camera
🏃
3:54Consider aligning the light voxel with the camera
🏃
3:54Consider aligning the light voxel with the camera
🏃
4:38Make UpdateAndRenderWorld() draw the camera bounds
4:38Make UpdateAndRenderWorld() draw the camera bounds
4:38Make UpdateAndRenderWorld() draw the camera bounds
6:40Check out the camera bounds
🏃
6:40Check out the camera bounds
🏃
6:40Check out the camera bounds
🏃
7:56Respecify BeginLightingComputation() to take (and use) the CameraCenterOffset rather than CameraOffsetFromOrigin
7:56Respecify BeginLightingComputation() to take (and use) the CameraCenterOffset rather than CameraOffsetFromOrigin
7:56Respecify BeginLightingComputation() to take (and use) the CameraCenterOffset rather than CameraOffsetFromOrigin
9:03Prepare to align the light voxel with the camera, moving by the more fine-grained world tiles
📖
9:03Prepare to align the light voxel with the camera, moving by the more fine-grained world tiles
📖
9:03Prepare to align the light voxel with the camera, moving by the more fine-grained world tiles
📖
11:09Set up BeginLightingComputation() to align the light voxel in two stages: by chunk, then around the camera position
11:09Set up BeginLightingComputation() to align the light voxel in two stages: by chunk, then around the camera position
11:09Set up BeginLightingComputation() to align the light voxel in two stages: by chunk, then around the camera position
14:11The lighting remains stable across chunks
🏃
14:11The lighting remains stable across chunks
🏃
14:11The lighting remains stable across chunks
🏃
15:01Make BeginLightingComputation() align the light voxel around the camera, introducing RoundToV3S() and augmenting lighting_solution with VoxelCameraOffset
15:01Make BeginLightingComputation() align the light voxel around the camera, introducing RoundToV3S() and augmenting lighting_solution with VoxelCameraOffset
15:01Make BeginLightingComputation() align the light voxel around the camera, introducing RoundToV3S() and augmenting lighting_solution with VoxelCameraOffset
21:08The lighting is almost copying backwards
🏃
21:08The lighting is almost copying backwards
🏃
21:08The lighting is almost copying backwards
🏃
21:53Check the lighting in a scrolling room
🏃
21:53Check the lighting in a scrolling room
🏃
21:53Check the lighting in a scrolling room
🏃
22:54Check the copying in BeginLightingComputation() for bugs
📖
22:54Check the copying in BeginLightingComputation() for bugs
📖
22:54Check the copying in BeginLightingComputation() for bugs
📖
24:28Make BeginLightingComputation() factor in the VoxelCameraOffset to the VoxMinCornerHot
24:28Make BeginLightingComputation() factor in the VoxelCameraOffset to the VoxMinCornerHot
24:28Make BeginLightingComputation() factor in the VoxelCameraOffset to the VoxMinCornerHot
26:09The lighting copy remains broken
🏃
26:09The lighting copy remains broken
🏃
26:09The lighting copy remains broken
🏃
26:23Pull out the OriginOffsetForCamera part of the VoxMinCornerHot() computation in BeginLightingComputation()
26:23Pull out the OriginOffsetForCamera part of the VoxMinCornerHot() computation in BeginLightingComputation()
26:23Pull out the OriginOffsetForCamera part of the VoxMinCornerHot() computation in BeginLightingComputation()
27:10The lighting is indeed copying backwards
🏃
27:10The lighting is indeed copying backwards
🏃
27:10The lighting is indeed copying backwards
🏃
27:33Invert the computation of VoxMinCornerHot in BeginLightingComputation()
27:33Invert the computation of VoxMinCornerHot in BeginLightingComputation()
27:33Invert the computation of VoxMinCornerHot in BeginLightingComputation()
27:58The lighting now copies correctly
🏃
27:58The lighting now copies correctly
🏃
27:58The lighting now copies correctly
🏃
28:26The lighting does not centre correctly
🏃
28:26The lighting does not centre correctly
🏃
28:26The lighting does not centre correctly
🏃
29:39Try zeroing out the VoxelCameraOffset in BeginLightingComputation()
29:39Try zeroing out the VoxelCameraOffset in BeginLightingComputation()
29:39Try zeroing out the VoxelCameraOffset in BeginLightingComputation()
30:59The lighting centring is worse, as hoped
🏃
30:59The lighting centring is worse, as hoped
🏃
30:59The lighting centring is worse, as hoped
🏃
31:16Prevent BeginLightingComputation() from zeroing out the VoxelCameraOffset
31:16Prevent BeginLightingComputation() from zeroing out the VoxelCameraOffset
31:16Prevent BeginLightingComputation() from zeroing out the VoxelCameraOffset
31:19Reacquaint ourselves with BlockCopyAtlas()
📖
31:19Reacquaint ourselves with BlockCopyAtlas()
📖
31:19Reacquaint ourselves with BlockCopyAtlas()
📖
33:19Make BlockCopyAtlas() self-documenting
33:19Make BlockCopyAtlas() self-documenting
33:19Make BlockCopyAtlas() self-documenting
35:13Prepare to respecify BeginLightingComputation() to offset the light voxel in the correct direction
📖
35:13Prepare to respecify BeginLightingComputation() to offset the light voxel in the correct direction
📖
35:13Prepare to respecify BeginLightingComputation() to offset the light voxel in the correct direction
📖
36:38Consider aligning the light voxel by re-canonicalising its coordinates
📖
36:38Consider aligning the light voxel by re-canonicalising its coordinates
📖
36:38Consider aligning the light voxel by re-canonicalising its coordinates
📖
38:00Revert BeginLightingComputation() to align the light voxel to the OriginP, making UpdateAndRenderWorld() pass as this value the Camera.SimulationCenter mapped into chunk space
38:00Revert BeginLightingComputation() to align the light voxel to the OriginP, making UpdateAndRenderWorld() pass as this value the Camera.SimulationCenter mapped into chunk space
38:00Revert BeginLightingComputation() to align the light voxel to the OriginP, making UpdateAndRenderWorld() pass as this value the Camera.SimulationCenter mapped into chunk space
40:10The light brightens and moves in the opposite direction
🏃
40:10The light brightens and moves in the opposite direction
🏃
40:10The light brightens and moves in the opposite direction
🏃
40:39Try making UpdateAndRenderWorld() pass the Camera.SimulationCenter directly to BeginLightingComputation()
40:39Try making UpdateAndRenderWorld() pass the Camera.SimulationCenter directly to BeginLightingComputation()
40:39Try making UpdateAndRenderWorld() pass the Camera.SimulationCenter directly to BeginLightingComputation()
41:12The lighting is normal
🏃
41:12The lighting is normal
🏃
41:12The lighting is normal
🏃
41:17Make UpdateAndRenderWorld() pass to BeginLightingComputation() the Camera.SimulationCenter mapped into chunk space
41:17Make UpdateAndRenderWorld() pass to BeginLightingComputation() the Camera.SimulationCenter mapped into chunk space
41:17Make UpdateAndRenderWorld() pass to BeginLightingComputation() the Camera.SimulationCenter mapped into chunk space
41:26The lighting is nuts
🏃
41:26The lighting is nuts
🏃
41:26The lighting is nuts
🏃
41:41Remove VoxelCameraOffset from lighting_solution
41:41Remove VoxelCameraOffset from lighting_solution
41:41Remove VoxelCameraOffset from lighting_solution
41:54The light brightens
🏃
41:54The light brightens
🏃
41:54The light brightens
🏃
42:05Toggle off the BlockCopyAtlas() calls in BeginLightingComputation()
42:05Toggle off the BlockCopyAtlas() calls in BeginLightingComputation()
42:05Toggle off the BlockCopyAtlas() calls in BeginLightingComputation()
42:25The light still brightens
🏃
42:25The light still brightens
🏃
42:25The light still brightens
🏃
42:31Reinstate the BlockCopyAtlas() calls in BeginLightingComputation()
42:31Reinstate the BlockCopyAtlas() calls in BeginLightingComputation()
42:31Reinstate the BlockCopyAtlas() calls in BeginLightingComputation()
43:12The light brightens
🏃
43:12The light brightens
🏃
43:12The light brightens
🏃
43:27Remove the light probe data from lighting_solution, and make UpdateAndRenderWorld() pass the Camera.SimulationCenter directly to BeginLightingComputation()
43:27Remove the light probe data from lighting_solution, and make UpdateAndRenderWorld() pass the Camera.SimulationCenter directly to BeginLightingComputation()
43:27Remove the light probe data from lighting_solution, and make UpdateAndRenderWorld() pass the Camera.SimulationCenter directly to BeginLightingComputation()
43:40The lighting is normal
🏃
43:40The lighting is normal
🏃
43:40The lighting is normal
🏃
44:01Make UpdateAndRenderWorld() pass to BeginLightingComputation() the Camera.SimulationCenter mapped into chunk space
44:01Make UpdateAndRenderWorld() pass to BeginLightingComputation() the Camera.SimulationCenter mapped into chunk space
44:01Make UpdateAndRenderWorld() pass to BeginLightingComputation() the Camera.SimulationCenter mapped into chunk space
44:09The light voxel moves, but barely
🏃
44:09The light voxel moves, but barely
🏃
44:09The light voxel moves, but barely
🏃
44:28Scour BeginLightingComputation() for bugs that may affect the lighting accumulation
📖
44:28Scour BeginLightingComputation() for bugs that may affect the lighting accumulation
📖
44:28Scour BeginLightingComputation() for bugs that may affect the lighting accumulation
📖
46:08The lighting region moves in the opposite direction
🏃
46:08The lighting region moves in the opposite direction
🏃
46:08The lighting region moves in the opposite direction
🏃
46:51Scour BeginLightingComputation() for lighting region movement bugs
📖
46:51Scour BeginLightingComputation() for lighting region movement bugs
📖
46:51Scour BeginLightingComputation() for lighting region movement bugs
📖
48:02Try making BeginLightingComputation() invert the dChunk
48:02Try making BeginLightingComputation() invert the dChunk
48:02Try making BeginLightingComputation() invert the dChunk
48:47The lighting moves oddly
🏃
48:47The lighting moves oddly
🏃
48:47The lighting moves oddly
🏃
48:57Revert the lighting movement code in BeginLightingComputation()
48:57Revert the lighting movement code in BeginLightingComputation()
48:57Revert the lighting movement code in BeginLightingComputation()
49:27What Is Happening??? [Light voxel alignment]
🖌
49:27What Is Happening??? [Light voxel alignment]
🖌
49:27What Is Happening??? [Light voxel alignment]
🖌
55:06Focus on the VoxMinCornerHot in BeginLightingComputation()
📖
55:06Focus on the VoxMinCornerHot in BeginLightingComputation()
📖
55:06Focus on the VoxMinCornerHot in BeginLightingComputation()
📖
57:26Make UpdateAndRenderWorld() pass the Camera.SimulationCenter directly to BeginLightingComputation()
57:26Make UpdateAndRenderWorld() pass the Camera.SimulationCenter directly to BeginLightingComputation()
57:26Make UpdateAndRenderWorld() pass the Camera.SimulationCenter directly to BeginLightingComputation()
57:32The lighting is normal
🏃
57:32The lighting is normal
🏃
57:32The lighting is normal
🏃
57:54Make UpdateAndRenderWorld() draw the SimBounds
57:54Make UpdateAndRenderWorld() draw the SimBounds
57:54Make UpdateAndRenderWorld() draw the SimBounds
58:16The lighting bounds are not centred about the simulation region
🏃
58:16The lighting bounds are not centred about the simulation region
🏃
58:16The lighting bounds are not centred about the simulation region
🏃
59:05Try making UpdateAndRenderWorld() set the SimBounds from the Camera.SimulationCenter
59:05Try making UpdateAndRenderWorld() set the SimBounds from the Camera.SimulationCenter
59:05Try making UpdateAndRenderWorld() set the SimBounds from the Camera.SimulationCenter
1:01:56The lighting bounds remain not centred about the simulation region
🏃
1:01:56The lighting bounds remain not centred about the simulation region
🏃
1:01:56The lighting bounds remain not centred about the simulation region
🏃
1:02:01Scour UpdateAndRenderWorld() for lighting bounds centring bugs
📖
1:02:01Scour UpdateAndRenderWorld() for lighting bounds centring bugs
📖
1:02:01Scour UpdateAndRenderWorld() for lighting bounds centring bugs
📖
1:03:13Try making BeginLightingComputation() draw a centred 1³ HotVoxelRect
1:03:13Try making BeginLightingComputation() draw a centred 1³ HotVoxelRect
1:03:13Try making BeginLightingComputation() draw a centred 1³ HotVoxelRect
1:03:50See nothing
🏃
1:03:50See nothing
🏃
1:03:50See nothing
🏃
1:03:54Increase the HotVoxelRect size from 1³ to 10³ in BeginLightingComputation()
1:03:54Increase the HotVoxelRect size from 1³ to 10³ in BeginLightingComputation()
1:03:54Increase the HotVoxelRect size from 1³ to 10³ in BeginLightingComputation()
1:04:06The lighting bounds are not centred about the simulation region
🏃
1:04:06The lighting bounds are not centred about the simulation region
🏃
1:04:06The lighting bounds are not centred about the simulation region
🏃
1:04:24Try making UpdateAndRenderWorld() draw a centred 10³ rectangle from the same Camera.SimulationCenter
1:04:24Try making UpdateAndRenderWorld() draw a centred 10³ rectangle from the same Camera.SimulationCenter
1:04:24Try making UpdateAndRenderWorld() draw a centred 10³ rectangle from the same Camera.SimulationCenter
1:05:22This Camera.SimulationCenter rectangle is also in the wrong place
🏃
1:05:22This Camera.SimulationCenter rectangle is also in the wrong place
🏃
1:05:22This Camera.SimulationCenter rectangle is also in the wrong place
🏃
1:05:39Make UpdateAndRenderWorld() draw the SimBounds, and BeginLightingComputation() invert the centring of the HotVoxelRect
1:05:39Make UpdateAndRenderWorld() draw the SimBounds, and BeginLightingComputation() invert the centring of the HotVoxelRect
1:05:39Make UpdateAndRenderWorld() draw the SimBounds, and BeginLightingComputation() invert the centring of the HotVoxelRect
1:06:27The HotVoxelRect is centred
🏃
1:06:27The HotVoxelRect is centred
🏃
1:06:27The HotVoxelRect is centred
🏃
1:06:33Make BeginLightingComputation() invert the VoxMinCornerHot offset
1:06:33Make BeginLightingComputation() invert the VoxMinCornerHot offset
1:06:33Make BeginLightingComputation() invert the VoxMinCornerHot offset
1:07:23The light voxel is now aligned to the simulation region
🏃
1:07:23The light voxel is now aligned to the simulation region
🏃
1:07:23The light voxel is now aligned to the simulation region
🏃
1:08:26Make UpdateAndRenderWorld() pass to BeginLightingComputation() the Camera.SimulationCenter mapped into chunk space
1:08:26Make UpdateAndRenderWorld() pass to BeginLightingComputation() the Camera.SimulationCenter mapped into chunk space
1:08:26Make UpdateAndRenderWorld() pass to BeginLightingComputation() the Camera.SimulationCenter mapped into chunk space
1:08:45The light voxel moves with the camera, but not centred
🏃
1:08:45The light voxel moves with the camera, but not centred
🏃
1:08:45The light voxel moves with the camera, but not centred
🏃
1:09:35Make BeginLightingComputation() take a SimOriginP from which to offset the VoxMinCornerHot
1:09:35Make BeginLightingComputation() take a SimOriginP from which to offset the VoxMinCornerHot
1:09:35Make BeginLightingComputation() take a SimOriginP from which to offset the VoxMinCornerHot
1:12:21The light voxel moves with the camera, centred
🏃
1:12:21The light voxel moves with the camera, centred
🏃
1:12:21The light voxel moves with the camera, centred
🏃
1:13:49Increase the SimBounds size in UpdateAndRenderWorld()
1:13:49Increase the SimBounds size in UpdateAndRenderWorld()
1:13:49Increase the SimBounds size in UpdateAndRenderWorld()
1:14:25Check out our expanded SimBounds
🏃
1:14:25Check out our expanded SimBounds
🏃
1:14:25Check out our expanded SimBounds
🏃
1:15:36Make BeginLightingComputation() move the lighting bounds by the more coarse-grained chunk
1:15:36Make BeginLightingComputation() move the lighting bounds by the more coarse-grained chunk
1:15:36Make BeginLightingComputation() move the lighting bounds by the more coarse-grained chunk
1:16:21The lighting bounds moves by the more coarse-grained chunk
🏃
1:16:21The lighting bounds moves by the more coarse-grained chunk
🏃
1:16:21The lighting bounds moves by the more coarse-grained chunk
🏃
1:17:05Consider voxel centres
📖
1:17:05Consider voxel centres
📖
1:17:05Consider voxel centres
📖
1:17:23The lighting copy looks roughly correct
🏃
1:17:23The lighting copy looks roughly correct
🏃
1:17:23The lighting copy looks roughly correct
🏃
1:18:48Set up BeginLightingComputation() to move the lighting bounds by the more fine-grained voxel
1:18:48Set up BeginLightingComputation() to move the lighting bounds by the more fine-grained voxel
1:18:48Set up BeginLightingComputation() to move the lighting bounds by the more fine-grained voxel
1:21:38Check out the lighting
🏃
1:21:38Check out the lighting
🏃
1:21:38Check out the lighting
🏃
1:21:49Make BeginLightingComputation() account for the camera offset when moving the lighting bounds
1:21:49Make BeginLightingComputation() account for the camera offset when moving the lighting bounds
1:21:49Make BeginLightingComputation() account for the camera offset when moving the lighting bounds
1:23:20The lighting bounds are drawn properly positioned
🏃
1:23:20The lighting bounds are drawn properly positioned
🏃
1:23:20The lighting bounds are drawn properly positioned
🏃
1:24:01Make BeginLightingComputation() copy the lighting into position as the bounds move, augmenting lighting_solution with VoxCameraOffset
1:24:01Make BeginLightingComputation() copy the lighting into position as the bounds move, augmenting lighting_solution with VoxCameraOffset
1:24:01Make BeginLightingComputation() copy the lighting into position as the bounds move, augmenting lighting_solution with VoxCameraOffset
1:26:52The lighting is entirely correct
🏃
1:26:52The lighting is entirely correct
🏃
1:26:52The lighting is entirely correct
🏃
1:27:16Toggle off the light map viewers in OpenGLEndFrame()
1:27:16Toggle off the light map viewers in OpenGLEndFrame()
1:27:16Toggle off the light map viewers in OpenGLEndFrame()
1:27:30Admire the lighting
🏃
1:27:30Admire the lighting
🏃
1:27:30Admire the lighting
🏃
1:27:36Toggle off the lighting debug visualisation in BeginLightingComputation() and UpdateAndRenderWorld()
1:27:36Toggle off the lighting debug visualisation in BeginLightingComputation() and UpdateAndRenderWorld()
1:27:36Toggle off the lighting debug visualisation in BeginLightingComputation() and UpdateAndRenderWorld()
1:27:54Traverse the world admiring the lighting, and note light transmission problems
🏃
1:27:54Traverse the world admiring the lighting, and note light transmission problems
🏃
1:27:54Traverse the world admiring the lighting, and note light transmission problems
🏃
1:31:13Determine to optimise the ray caster, improve the light quality, add collectors for trees and colour the walls correctly
🏃
1:31:13Determine to optimise the ray caster, improve the light quality, add collectors for trees and colour the walls correctly
🏃
1:31:13Determine to optimise the ray caster, improve the light quality, add collectors for trees and colour the walls correctly
🏃
1:33:42Q&A
🗩
1:33:42Q&A
🗩
1:33:42Q&A
🗩
1:34:08vaualbus Q: How can we disable lighting for the debug UI?
🗪
1:34:08vaualbus Q: How can we disable lighting for the debug UI?
🗪
1:34:08vaualbus Q: How can we disable lighting for the debug UI?
🗪
1:35:00futuremillennium Looks like OBS is skipping a lot of frames due to encoding lag. Even the webcam is low FPS when you move in-game
🗪
1:35:00futuremillennium Looks like OBS is skipping a lot of frames due to encoding lag. Even the webcam is low FPS when you move in-game
🗪
1:35:00futuremillennium Looks like OBS is skipping a lot of frames due to encoding lag. Even the webcam is low FPS when you move in-game
🗪
1:36:16futuremillennium "Dropped frames" are due to network only, you need to go to View → Stats to see skipped frames, handmade_hero
🗪
1:36:16futuremillennium "Dropped frames" are due to network only, you need to go to View → Stats to see skipped frames, handmade_hero
🗪
1:36:16futuremillennium "Dropped frames" are due to network only, you need to go to View → Stats to see skipped frames, handmade_hero
🗪
1:37:13futuremillennium The game is probably fighting OBS for the GPU
🗪
1:37:13futuremillennium The game is probably fighting OBS for the GPU
🗪
1:37:13futuremillennium The game is probably fighting OBS for the GPU
🗪
1:39:33ormone88 Q: I read a twitter conversation from an engine programmer at id software, about the engine for the new Doom game not having a main thread or render thread, only tasks and queues. Could you comment on this architecture?
🗪
1:39:33ormone88 Q: I read a twitter conversation from an engine programmer at id software, about the engine for the new Doom game not having a main thread or render thread, only tasks and queues. Could you comment on this architecture?
🗪
1:39:33ormone88 Q: I read a twitter conversation from an engine programmer at id software, about the engine for the new Doom game not having a main thread or render thread, only tasks and queues. Could you comment on this architecture?
🗪
1:41:03vaualbus Q: I think that is a twitch problem on the servers because Jon on his stream got the same problem where the frame rate on the game gets lower while streaming, and only on twitch it looks laggy. So maybe backend stuff on twitch
🗪
1:41:03vaualbus Q: I think that is a twitch problem on the servers because Jon on his stream got the same problem where the frame rate on the game gets lower while streaming, and only on twitch it looks laggy. So maybe backend stuff on twitch
🗪
1:41:03vaualbus Q: I think that is a twitch problem on the servers because Jon on his stream got the same problem where the frame rate on the game gets lower while streaming, and only on twitch it looks laggy. So maybe backend stuff on twitch
🗪
1:45:40internationalizationist Q: You once mentioned that there are two types of GPU: tiled and non tiled, and mobiles use the tiled method. But why? What are the benefits for mobiles of using it?
🗪
1:45:40internationalizationist Q: You once mentioned that there are two types of GPU: tiled and non tiled, and mobiles use the tiled method. But why? What are the benefits for mobiles of using it?
🗪
1:45:40internationalizationist Q: You once mentioned that there are two types of GPU: tiled and non tiled, and mobiles use the tiled method. But why? What are the benefits for mobiles of using it?
🗪
1:51:36jessem3y3r Q: Fabian recently described GPUs as possessing throughput caches as opposed to latency caches. How does a throughput cache operate differently than a latency cache?
🗪
1:51:36jessem3y3r Q: Fabian recently described GPUs as possessing throughput caches as opposed to latency caches. How does a throughput cache operate differently than a latency cache?
🗪
1:51:36jessem3y3r Q: Fabian recently described GPUs as possessing throughput caches as opposed to latency caches. How does a throughput cache operate differently than a latency cache?
🗪
1:56:02internationalizationist Q: But why are desktops using non-tiled method then? It looks like a clear benefit, including the fact that there are lots of units nowadays
🗪
1:56:02internationalizationist Q: But why are desktops using non-tiled method then? It looks like a clear benefit, including the fact that there are lots of units nowadays
🗪
1:56:02internationalizationist Q: But why are desktops using non-tiled method then? It looks like a clear benefit, including the fact that there are lots of units nowadays
🗪
1:58:38euphius Q: The new COD Battle Royale installs a shader for better game performance when being in the game. I thought shaders are "GPU programs". Can you imagine what might be behind that? It takes quite a while to install
🗪
1:58:38euphius Q: The new COD Battle Royale installs a shader for better game performance when being in the game. I thought shaders are "GPU programs". Can you imagine what might be behind that? It takes quite a while to install
🗪
1:58:38euphius Q: The new COD Battle Royale installs a shader for better game performance when being in the game. I thought shaders are "GPU programs". Can you imagine what might be behind that? It takes quite a while to install
🗪
2:01:18vaualbus Q: But on OpenGL I think there is now a way to compile the shader and read it back?
🗪
2:01:18vaualbus Q: But on OpenGL I think there is now a way to compile the shader and read it back?
🗪
2:01:18vaualbus Q: But on OpenGL I think there is now a way to compile the shader and read it back?
🗪
2:03:45teamrandb Q: Pardon me for I did not catch the end of the stream; but, what frame rate (time per frame) are we at now? I believe at the start we were at roughly 60 ms
🗪
2:03:45teamrandb Q: Pardon me for I did not catch the end of the stream; but, what frame rate (time per frame) are we at now? I believe at the start we were at roughly 60 ms
🗪
2:03:45teamrandb Q: Pardon me for I did not catch the end of the stream; but, what frame rate (time per frame) are we at now? I believe at the start we were at roughly 60 ms
🗪
2:03:5168ms per frame
🏃
2:03:5168ms per frame
🏃
2:03:5168ms per frame
🏃
2:05:02Decrease the LIGHT_LOOKUP_VOXEL_DIM_X and Y from 32 / 24 to 24 / 16 respectively
2:05:02Decrease the LIGHT_LOOKUP_VOXEL_DIM_X and Y from 32 / 24 to 24 / 16 respectively
2:05:02Decrease the LIGHT_LOOKUP_VOXEL_DIM_X and Y from 32 / 24 to 24 / 16 respectively
2:05:27Check out the lighting
🏃
2:05:27Check out the lighting
🏃
2:05:27Check out the lighting
🏃
2:05:37Make BeginLightingComputation() offset the light voxel two cells into the distance
2:05:37Make BeginLightingComputation() offset the light voxel two cells into the distance
2:05:37Make BeginLightingComputation() offset the light voxel two cells into the distance
2:06:0333ms per frame
🏃
2:06:0333ms per frame
🏃
2:06:0333ms per frame
🏃
2:07:14internationalizationist Q: Could you recommend some literature / resources etc. to dig deeper?
🗪
2:07:14internationalizationist Q: Could you recommend some literature / resources etc. to dig deeper?
🗪
2:07:14internationalizationist Q: Could you recommend some literature / resources etc. to dig deeper?
🗪
2:07:24vaualbus Q: So could it be easier to not have this dimension in a define? So that maybe the world gen can produce per-room voxel dim? That would result in optimized light system in general, I guess?
🗪
2:07:24vaualbus Q: So could it be easier to not have this dimension in a define? So that maybe the world gen can produce per-room voxel dim? That would result in optimized light system in general, I guess?
🗪
2:07:24vaualbus Q: So could it be easier to not have this dimension in a define? So that maybe the world gen can produce per-room voxel dim? That would result in optimized light system in general, I guess?
🗪
2:07:39philoez98 Q: What do you think about the new kind of pipeline that NVIDIA is pushing with mesh and task shaders?
🗪
2:07:39philoez98 Q: What do you think about the new kind of pipeline that NVIDIA is pushing with mesh and task shaders?
🗪
2:07:39philoez98 Q: What do you think about the new kind of pipeline that NVIDIA is pushing with mesh and task shaders?
🗪
2:08:01teamrandb Q: If we had a major light source from behind and we had, say, a large tree / house behind us, if this light box is too small, would it mean we would not get the shadow of whatever is behind us?
🗪
2:08:01teamrandb Q: If we had a major light source from behind and we had, say, a large tree / house behind us, if this light box is too small, would it mean we would not get the shadow of whatever is behind us?
🗪
2:08:01teamrandb Q: If we had a major light source from behind and we had, say, a large tree / house behind us, if this light box is too small, would it mean we would not get the shadow of whatever is behind us?
🗪
2:09:18czapa10 Q: Is it possible to make these 2D trees cast shadows in the shape of a tree on the ground? If yes, can you tell what keyword should I write in google to find out more about that? I wanna use it in my own 2D game
🗪
2:09:18czapa10 Q: Is it possible to make these 2D trees cast shadows in the shape of a tree on the ground? If yes, can you tell what keyword should I write in google to find out more about that? I wanna use it in my own 2D game
🗪
2:09:18czapa10 Q: Is it possible to make these 2D trees cast shadows in the shape of a tree on the ground? If yes, can you tell what keyword should I write in google to find out more about that? I wanna use it in my own 2D game
🗪
2:11:08relvet Q: Would solving the lighting wrapping in X reduce CPU load to significant extent?
🗪
2:11:08relvet Q: Would solving the lighting wrapping in X reduce CPU load to significant extent?
🗪
2:11:08relvet Q: Would solving the lighting wrapping in X reduce CPU load to significant extent?
🗪
2:11:20socraticfallacy Q: Would you consider using compute shaders for some of these lighting calculations?
🗪
2:11:20socraticfallacy Q: Would you consider using compute shaders for some of these lighting calculations?
🗪
2:11:20socraticfallacy Q: Would you consider using compute shaders for some of these lighting calculations?
🗪
2:12:18Wrap it up
🗩
2:12:18Wrap it up
🗩
2:12:18Wrap it up
🗩