Grid Raycaster Table Generation
?
?

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
🗩
1:42Set up to implement ComputeWalkTable()
📖
1:42Set up to implement ComputeWalkTable()
📖
1:42Set up to implement ComputeWalkTable()
📖
3:33Implement ComputeWalkTable()
3:33Implement ComputeWalkTable()
3:33Implement ComputeWalkTable()
7:24Consider how to encode the dGrid in walk_table_entry, computing it at runtime
📖
7:24Consider how to encode the dGrid in walk_table_entry, computing it at runtime
📖
7:24Consider how to encode the dGrid in walk_table_entry, computing it at runtime
📖
9:10Augment the lighting_solution with a walk_table_entry
9:10Augment the lighting_solution with a walk_table_entry
9:10Augment the lighting_solution with a walk_table_entry
10:13Make ComputeWalkTable() write to our dynamic lighting_solution
10:13Make ComputeWalkTable() write to our dynamic lighting_solution
10:13Make ComputeWalkTable() write to our dynamic lighting_solution
16:22Make InitLighting() call ComputeWalkTable(), removing light_sampling_sphere_2
16:22Make InitLighting() call ComputeWalkTable(), removing light_sampling_sphere_2
16:22Make InitLighting() call ComputeWalkTable(), removing light_sampling_sphere_2
21:21Desire a big, easy-to-clean glass bottle
🗩
21:21Desire a big, easy-to-clean glass bottle
🗩
21:21Desire a big, easy-to-clean glass bottle
🗩
22:11Augment lighting_solution with a memory_arena TableMemory and TableVoxelDim for BeginLightingComputation() to use
22:11Augment lighting_solution with a memory_arena TableMemory and TableVoxelDim for BeginLightingComputation() to use
22:11Augment lighting_solution with a memory_arena TableMemory and TableVoxelDim for BeginLightingComputation() to use
29:29Estimate the memory requirements (393,216 rays' worth) and cycles available (509) for the ray casting
🗹
29:29Estimate the memory requirements (393,216 rays' worth) and cycles available (509) for the ray casting
🗹
29:29Estimate the memory requirements (393,216 rays' worth) and cycles available (509) for the ray casting
🗹
31:53Define our LIGHT_SAMPLING values for FullCast() to use, and include handmade_simd.h and handmade_sampling_spheres.inl in handmade_lighting.cpp
31:53Define our LIGHT_SAMPLING values for FullCast() to use, and include handmade_simd.h and handmade_sampling_spheres.inl in handmade_lighting.cpp
31:53Define our LIGHT_SAMPLING values for FullCast() to use, and include handmade_simd.h and handmade_sampling_spheres.inl in handmade_lighting.cpp
42:18Consider the pipeline to be running properly
🗩
42:18Consider the pipeline to be running properly
🗩
42:18Consider the pipeline to be running properly
🗩
42:43Break
🗹
42:43Break
🗹
42:43Break
🗹
45:13Return
🗹
45:13Return
🗹
45:13Return
🗹
45:27math_daemon_ Plot twist: Casey accidentally hit the switch and is still coding / talking
🗪
45:27math_daemon_ Plot twist: Casey accidentally hit the switch and is still coding / talking
🗪
45:27math_daemon_ Plot twist: Casey accidentally hit the switch and is still coding / talking
🗪
45:50somebody_took_my_name Can I get a recap of the first hour?
🗪
45:50somebody_took_my_name Can I get a recap of the first hour?
🗪
45:50somebody_took_my_name Can I get a recap of the first hour?
🗪
45:54Make OutputSphereINL() write out the new light_sample_direction struct and LIGHT_SAMPLING defines
45:54Make OutputSphereINL() write out the new light_sample_direction struct and LIGHT_SAMPLING defines
45:54Make OutputSphereINL() write out the new light_sample_direction struct and LIGHT_SAMPLING defines
48:42Reacquaint ourselves with GenerateOctahedralLightingPattern()
📖
48:42Reacquaint ourselves with GenerateOctahedralLightingPattern()
📖
48:42Reacquaint ourselves with GenerateOctahedralLightingPattern()
📖
50:52Make GenerateOctahedralLightingPattern() return the OutputDirections to be passed to OutputSphereINL()
50:52Make GenerateOctahedralLightingPattern() return the OutputDirections to be passed to OutputSphereINL()
50:52Make GenerateOctahedralLightingPattern() return the OutputDirections to be passed to OutputSphereINL()
54:57Invoke hhsphere
🗹
54:57Invoke hhsphere
🗹
54:57Invoke hhsphere
🗹
55:18Respecify hhsphere to take as arguments <octahedron count> and <rays per octahedron>
55:18Respecify hhsphere to take as arguments <octahedron count> and <rays per octahedron>
55:18Respecify hhsphere to take as arguments <octahedron count> and <rays per octahedron>
1:00:40Invoke hhsphere
🗹
1:00:40Invoke hhsphere
🗹
1:00:40Invoke hhsphere
🗹
1:00:51Respecify hhsphere to take as an argument <octahedron dim>
1:00:51Respecify hhsphere to take as an argument <octahedron dim>
1:00:51Respecify hhsphere to take as an argument <octahedron dim>
1:02:14Invoke hhsphere
🗹
1:02:14Invoke hhsphere
🗹
1:02:14Invoke hhsphere
🗹
1:03:02trolledwoods Jonathan Blow would like to know your address
🗪
1:03:02trolledwoods Jonathan Blow would like to know your address
🗪
1:03:02trolledwoods Jonathan Blow would like to know your address
🗪
1:03:36somebody_took_my_name Always send him your address
🗪
1:03:36somebody_took_my_name Always send him your address
🗪
1:03:36somebody_took_my_name Always send him your address
🗪
1:03:39Send our address to Jon
🗹
1:03:39Send our address to Jon
🗹
1:03:39Send our address to Jon
🗹
1:05:34philoez98 They're trolling
🗪
1:05:34philoez98 They're trolling
🗪
1:05:34philoez98 They're trolling
🗪
1:05:49Inspect temp.inl
🗹
1:05:49Inspect temp.inl
🗹
1:05:49Inspect temp.inl
🗹
1:06:17Make OutputSphereINL() write out the RawDirections
1:06:17Make OutputSphereINL() write out the RawDirections
1:06:17Make OutputSphereINL() write out the RawDirections
1:07:49pragmascrypt Everyone is fired
🗪
1:07:49pragmascrypt Everyone is fired
🗪
1:07:49pragmascrypt Everyone is fired
🗪
1:08:14Invoke hhsphere
🗹
1:08:14Invoke hhsphere
🗹
1:08:14Invoke hhsphere
🗹
1:08:43Inspect temp.inl and copy it into place
🗹
1:08:43Inspect temp.inl and copy it into place
🗹
1:08:43Inspect temp.inl and copy it into place
🗹
1:09:41Fix compile errors
1:09:41Fix compile errors
1:09:41Fix compile errors
1:09:55Fix OutputSphereINL() to insert the semicolon
1:09:55Fix OutputSphereINL() to insert the semicolon
1:09:55Fix OutputSphereINL() to insert the semicolon
1:10:01Make ProfileRun() initialise the TableMemory
1:10:01Make ProfileRun() initialise the TableMemory
1:10:01Make ProfileRun() initialise the TableMemory
1:12:57Run hhlighprof and hit a read access violation in BuildSpatialPartitionForLighting()
🏃
1:12:57Run hhlighprof and hit a read access violation in BuildSpatialPartitionForLighting()
🏃
1:12:57Run hhlighprof and hit a read access violation in BuildSpatialPartitionForLighting()
🏃
1:13:53Make BuildSpatialPartitionForLighting() allocate memory for the SpatialGridNodes
1:13:53Make BuildSpatialPartitionForLighting() allocate memory for the SpatialGridNodes
1:13:53Make BuildSpatialPartitionForLighting() allocate memory for the SpatialGridNodes
1:15:07Run hhlighprof and hit a read access violation in ComputeVoxelIrradianceAt()
🏃
1:15:07Run hhlighprof and hit a read access violation in ComputeVoxelIrradianceAt()
🏃
1:15:07Run hhlighprof and hit a read access violation in ComputeVoxelIrradianceAt()
🏃
1:16:14On indexing into similar but not identical overlapping sets of data
🗩
1:16:14On indexing into similar but not identical overlapping sets of data
🗩
1:16:14On indexing into similar but not identical overlapping sets of data
🗩
1:19:46Fix ComputeLightPropagationWork() to index in to the aproned voxel
1:19:46Fix ComputeLightPropagationWork() to index in to the aproned voxel
1:19:46Fix ComputeLightPropagationWork() to index in to the aproned voxel
1:22:41Run hhlighprof and hit the same read access violation in ComputeVoxelIrradianceAt()
🏃
1:22:41Run hhlighprof and hit the same read access violation in ComputeVoxelIrradianceAt()
🏃
1:22:41Run hhlighprof and hit the same read access violation in ComputeVoxelIrradianceAt()
🏃
1:24:44Fix ComputeWalkTable() to set the tTerminate to a valid value
1:24:44Fix ComputeWalkTable() to set the tTerminate to a valid value
1:24:44Fix ComputeWalkTable() to set the tTerminate to a valid value
1:25:52Run hhlighprof and hit the same read access violation in ComputeVoxelIrradianceAt()
🏃
1:25:52Run hhlighprof and hit the same read access violation in ComputeVoxelIrradianceAt()
🏃
1:25:52Run hhlighprof and hit the same read access violation in ComputeVoxelIrradianceAt()
🏃
1:28:18Make GridRayCast() initialise the ProbeSamplePSingle to the incoming RayOriginSingle
1:28:18Make GridRayCast() initialise the ProbeSamplePSingle to the incoming RayOriginSingle
1:28:18Make GridRayCast() initialise the ProbeSamplePSingle to the incoming RayOriginSingle
1:28:36Run hhlighprof and hit the same read access violation in ComputeVoxelIrradianceAt()
🏃
1:28:36Run hhlighprof and hit the same read access violation in ComputeVoxelIrradianceAt()
🏃
1:28:36Run hhlighprof and hit the same read access violation in ComputeVoxelIrradianceAt()
🏃
1:30:41Consider the rounding subtraction in ComputeVoxelIrradianceAt()
🏃
1:30:41Consider the rounding subtraction in ComputeVoxelIrradianceAt()
🏃
1:30:41Consider the rounding subtraction in ComputeVoxelIrradianceAt()
🏃
1:32:06Prevent ComputeVoxelIrradianceAt() from rounding down when setting the FCoord
1:32:06Prevent ComputeVoxelIrradianceAt() from rounding down when setting the FCoord
1:32:06Prevent ComputeVoxelIrradianceAt() from rounding down when setting the FCoord
1:32:27Run hhlighprof and hit the same read access violation in ComputeVoxelIrradianceAt()
🏃
1:32:27Run hhlighprof and hit the same read access violation in ComputeVoxelIrradianceAt()
🏃
1:32:27Run hhlighprof and hit the same read access violation in ComputeVoxelIrradianceAt()
🏃
1:33:19Make GridRayCast() initialise the ProbeSampleNSingle to the incoming RayDSingle
1:33:19Make GridRayCast() initialise the ProbeSampleNSingle to the incoming RayDSingle
1:33:19Make GridRayCast() initialise the ProbeSampleNSingle to the incoming RayDSingle
1:33:49Run hhlightprof successfully
🏃
1:33:49Run hhlightprof successfully
🏃
1:33:49Run hhlightprof successfully
🏃
1:34:11hhlightprof total seconds elapsed: 5.363018
🏃
1:34:11hhlightprof total seconds elapsed: 5.363018
🏃
1:34:11hhlightprof total seconds elapsed: 5.363018
🏃
1:35:46Q&A
🗩
1:35:46Q&A
🗩
1:35:46Q&A
🗩
1:36:14insobot Q: Cathedral or bust?
🗪
1:36:14insobot Q: Cathedral or bust?
🗪
1:36:14insobot Q: Cathedral or bust?
🗪
1:37:29somebody_took_my_name Q: Can we try the game in the current state?
🗪
1:37:29somebody_took_my_name Q: Can we try the game in the current state?
🗪
1:37:29somebody_took_my_name Q: Can we try the game in the current state?
🗪
1:37:55Run the game to see a black screen
🏃
1:37:55Run the game to see a black screen
🏃
1:37:55Run the game to see a black screen
🏃
1:38:25billdstrong Q: Since this new pass is to speed up performance, where do you foresee getting speedups after this pass?
🗪
1:38:25billdstrong Q: Since this new pass is to speed up performance, where do you foresee getting speedups after this pass?
🗪
1:38:25billdstrong Q: Since this new pass is to speed up performance, where do you foresee getting speedups after this pass?
🗪
1:39:30mindmark42 Q: Given two points, do you think there might be a way to calculate the number voxel cells a Bresenham-like line algorithm will touch? Without walking?
🗪
1:39:30mindmark42 Q: Given two points, do you think there might be a way to calculate the number voxel cells a Bresenham-like line algorithm will touch? Without walking?
🗪
1:39:30mindmark42 Q: Given two points, do you think there might be a way to calculate the number voxel cells a Bresenham-like line algorithm will touch? Without walking?
🗪
1:39:58uplinkcoder Q: Can you run hhlightprof?
🗪
1:39:58uplinkcoder Q: Can you run hhlightprof?
🗪
1:39:58uplinkcoder Q: Can you run hhlightprof?
🗪
1:41:40erik_ava Q: Has it ever happened that you put so much work in an idea and it turned out not working out?
🗪
1:41:40erik_ava Q: Has it ever happened that you put so much work in an idea and it turned out not working out?
🗪
1:41:40erik_ava Q: Has it ever happened that you put so much work in an idea and it turned out not working out?
🗪
1:43:33billdstrong Q: Could we generate all these tests we do for the lighting at box creation?
🗪
1:43:33billdstrong Q: Could we generate all these tests we do for the lighting at box creation?
🗪
1:43:33billdstrong Q: Could we generate all these tests we do for the lighting at box creation?
🗪
1:43:56mattiamanzati Q: Since hhlightprof just runs RayCast(), maybe we put more work into building the occluder leaves than before?
🗪
1:43:56mattiamanzati Q: Since hhlightprof just runs RayCast(), maybe we put more work into building the occluder leaves than before?
🗪
1:43:56mattiamanzati Q: Since hhlightprof just runs RayCast(), maybe we put more work into building the occluder leaves than before?
🗪
1:47:08sagian2005 Q: Glass milk bottles
🗪
1:47:08sagian2005 Q: Glass milk bottles
🗪
1:47:08sagian2005 Q: Glass milk bottles
🗪
1:47:53thetamiel Q: You've mentioned before at RAD you made a tool for detecting indexing errors. How would a tool like that work?
🗪
1:47:53thetamiel Q: You've mentioned before at RAD you made a tool for detecting indexing errors. How would a tool like that work?
🗪
1:47:53thetamiel Q: You've mentioned before at RAD you made a tool for detecting indexing errors. How would a tool like that work?
🗪
1:50:33xsinxdx sagian2005 How old are you?
🗪
1:50:33xsinxdx sagian2005 How old are you?
🗪
1:50:33xsinxdx sagian2005 How old are you?
🗪
1:51:39billdstrong Q: Could we look for only the farthest box a Ray would hit, and eliminate testing all the boxes in between?
🗪
1:51:39billdstrong Q: Could we look for only the farthest box a Ray would hit, and eliminate testing all the boxes in between?
🗪
1:51:39billdstrong Q: Could we look for only the farthest box a Ray would hit, and eliminate testing all the boxes in between?
🗪
1:52:24infinum Q: How has that 30 Million Lines Problem been going on? Have some hardware vendors contacted you about it or maybe said something?
🗪
1:52:24infinum Q: How has that 30 Million Lines Problem been going on? Have some hardware vendors contacted you about it or maybe said something?
🗪
1:52:24infinum Q: How has that 30 Million Lines Problem been going on? Have some hardware vendors contacted you about it or maybe said something?
🗪
1:53:48Wrap it up
🗩
1:53:48Wrap it up
🗩
1:53:48Wrap it up
🗩