Exploring Voxel Partitions for Raycasting
?
?

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:00"If anything, we should be looking for technologies that allow us to reduce latency"
🗩
0:00"If anything, we should be looking for technologies that allow us to reduce latency"
🗩
0:00"If anything, we should be looking for technologies that allow us to reduce latency"
🗩
0:09Welcome to the stream with a plug of the Meow the Infinite printed comic Kickstarter1
🗩
0:09Welcome to the stream with a plug of the Meow the Infinite printed comic Kickstarter1
🗩
0:09Welcome to the stream with a plug of the Meow the Infinite printed comic Kickstarter1
🗩
0:48Set up to talk about spatial partitioning for lighting
🏃
0:48Set up to talk about spatial partitioning for lighting
🏃
0:48Set up to talk about spatial partitioning for lighting
🏃
1:53A few words on our "Binary AAB Tree", with Axis-aligned split planes
🗩
1:53A few words on our "Binary AAB Tree", with Axis-aligned split planes
🗩
1:53A few words on our "Binary AAB Tree", with Axis-aligned split planes
🗩
2:28Old k-d hhlightprof total seconds elapsed: 6.279085
🏃
2:28Old k-d hhlightprof total seconds elapsed: 6.279085
🏃
2:28Old k-d hhlightprof total seconds elapsed: 6.279085
🏃
2:57Toggle off LIGHTING_USE_OLD_KD
2:57Toggle off LIGHTING_USE_OLD_KD
2:57Toggle off LIGHTING_USE_OLD_KD
3:03Run the new k-d hhlightprof without completing
🏃
3:03Run the new k-d hhlightprof without completing
🏃
3:03Run the new k-d hhlightprof without completing
🏃
4:15Toggle on LIGHTING_USE_OLD_KD
4:15Toggle on LIGHTING_USE_OLD_KD
4:15Toggle on LIGHTING_USE_OLD_KD
4:24Run the old k-d hhlightprof and consult the profiling statistics
🏃
4:24Run the old k-d hhlightprof and consult the profiling statistics
🏃
4:24Run the old k-d hhlightprof and consult the profiling statistics
🏃
5:57Make ProfileRun() print the average Partitions and Leaves per Ray
5:57Make ProfileRun() print the average Partitions and Leaves per Ray
5:57Make ProfileRun() print the average Partitions and Leaves per Ray
8:26Old k-d hhlightprof Partitions per Ray: 5; Leaves per Ray: 24
🏃
8:26Old k-d hhlightprof Partitions per Ray: 5; Leaves per Ray: 24
🏃
8:26Old k-d hhlightprof Partitions per Ray: 5; Leaves per Ray: 24
🏃
9:29Consider the notion of a Voxel Containment Field for raycasting
🗩
9:29Consider the notion of a Voxel Containment Field for raycasting
🗩
9:29Consider the notion of a Voxel Containment Field for raycasting
🗩
11:48bearexplicit Leaves and Planes switched, handmade_hero
🗪
11:48bearexplicit Leaves and Planes switched, handmade_hero
🗪
11:48bearexplicit Leaves and Planes switched, handmade_hero
🗪
11:53Fix the average Partitions and Leaves per Ray printing in ProfileRun()
11:53Fix the average Partitions and Leaves per Ray printing in ProfileRun()
11:53Fix the average Partitions and Leaves per Ray printing in ProfileRun()
12:00Old k-d hhlightprof Partitions per Ray: 24; Leaves per Ray: 5
🏃
12:00Old k-d hhlightprof Partitions per Ray: 24; Leaves per Ray: 5
🏃
12:00Old k-d hhlightprof Partitions per Ray: 24; Leaves per Ray: 5
🏃
12:58Grid Raycasting
🖌
12:58Grid Raycasting
🖌
12:58Grid Raycasting
🖌
14:00Current "Binary AAB Tree" Raycasting
🖌
14:00Current "Binary AAB Tree" Raycasting
🖌
14:00Current "Binary AAB Tree" Raycasting
🖌
15:29Possible new Grid Raycasting
🖌
15:29Possible new Grid Raycasting
🖌
15:29Possible new Grid Raycasting
🖌
17:52Storing grid square occupants as indices vs copies
🖌
17:52Storing grid square occupants as indices vs copies
🖌
17:52Storing grid square occupants as indices vs copies
🖌
19:57Determine to measure the voxel occupancy of our current geometry elements (occluders, light sources)
🖌
19:57Determine to measure the voxel occupancy of our current geometry elements (occluders, light sources)
🖌
19:57Determine to measure the voxel occupancy of our current geometry elements (occluders, light sources)
🖌
23:10Introduce GridRayCast() using RayCast() as the starting point
23:10Introduce GridRayCast() using RayCast() as the starting point
23:10Introduce GridRayCast() using RayCast() as the starting point
23:56Change RayCast() to increment TotalCastsInitiated by 4
23:56Change RayCast() to increment TotalCastsInitiated by 4
23:56Change RayCast() to increment TotalCastsInitiated by 4
25:07Continue to implement GridRayCast()
25:07Continue to implement GridRayCast()
25:07Continue to implement GridRayCast()
42:46Set up to make BuildSpatialPartitionForLighting() swizzle the lighting boxes into a 4-wide SIMD format
42:46Set up to make BuildSpatialPartitionForLighting() swizzle the lighting boxes into a 4-wide SIMD format
42:46Set up to make BuildSpatialPartitionForLighting() swizzle the lighting boxes into a 4-wide SIMD format
46:11Continue to implement GridRayCast()
46:11Continue to implement GridRayCast()
46:11Continue to implement GridRayCast()
49:41Consider the instructional implications of each ray having their answer spread across multiple values2
📖
49:41Consider the instructional implications of each ray having their answer spread across multiple values2
📖
49:41Consider the instructional implications of each ray having their answer spread across multiple values2
📖
56:15Sketch out our tRay selection in GridRayCast()
56:15Sketch out our tRay selection in GridRayCast()
56:15Sketch out our tRay selection in GridRayCast()
1:01:00Consult the old ray hit extraction code in RayCast()
📖
1:01:00Consult the old ray hit extraction code in RayCast()
📖
1:01:00Consult the old ray hit extraction code in RayCast()
📖
1:02:33Enable GridRayCast() to directly extract the ray hit
1:02:33Enable GridRayCast() to directly extract the ray hit
1:02:33Enable GridRayCast() to directly extract the ray hit
1:16:30Consider our grid raycasting to be worth doing, only questioning the tRay selection, especially its horizontal comparing
🗩
1:16:30Consider our grid raycasting to be worth doing, only questioning the tRay selection, especially its horizontal comparing
🗩
1:16:30Consider our grid raycasting to be worth doing, only questioning the tRay selection, especially its horizontal comparing
🗩
1:17:56_mm_shuffle_epi83 in SSSE34 and its availability according to the Steam Hardware & Software Survey5
📖
1:17:56_mm_shuffle_epi83 in SSSE34 and its availability according to the Steam Hardware & Software Survey5
📖
1:17:56_mm_shuffle_epi83 in SSSE34 and its availability according to the Steam Hardware & Software Survey5
📖
1:22:19Enable GridRayCast() to select the tRay using _mm_shuffle_epi8, and to extract the ray hit in SIMD
1:22:19Enable GridRayCast() to select the tRay using _mm_shuffle_epi8, and to extract the ray hit in SIMD
1:22:19Enable GridRayCast() to select the tRay using _mm_shuffle_epi8, and to extract the ray hit in SIMD
1:27:35Clean up the ray hit extraction in GridRayCast(), and set up RayCast() to compare our old and new ray casting schemes
1:27:35Clean up the ray hit extraction in GridRayCast(), and set up RayCast() to compare our old and new ray casting schemes
1:27:35Clean up the ray hit extraction in GridRayCast(), and set up RayCast() to compare our old and new ray casting schemes
1:30:48Reflect on our new grid raycasting scheme
🗩
1:30:48Reflect on our new grid raycasting scheme
🗩
1:30:48Reflect on our new grid raycasting scheme
🗩
1:35:00mystran Lighting is really really simple… until you want to make it run in real-time
🗪
1:35:00mystran Lighting is really really simple… until you want to make it run in real-time
🗪
1:35:00mystran Lighting is really really simple… until you want to make it run in real-time
🗪
1:35:37Toggle off GridRayCast() and sketch out the grid build in BuildSpatialPartitionForLighting()
1:35:37Toggle off GridRayCast() and sketch out the grid build in BuildSpatialPartitionForLighting()
1:35:37Toggle off GridRayCast() and sketch out the grid build in BuildSpatialPartitionForLighting()
1:46:06Q&A
🗩
1:46:06Q&A
🗩
1:46:06Q&A
🗩
1:46:47sagian2005 Q: Couldn't you use a couple of "_mm_hsub" to do your horizontal compare?
🗪
1:46:47sagian2005 Q: Couldn't you use a couple of "_mm_hsub" to do your horizontal compare?
🗪
1:46:47sagian2005 Q: Couldn't you use a couple of "_mm_hsub" to do your horizontal compare?
🗪
1:47:13_mm_minpos_epu16 in SSE4.16
📖
1:47:13_mm_minpos_epu16 in SSE4.16
📖
1:47:13_mm_minpos_epu16 in SSE4.16
📖
1:48:43Begin to sketch out the tRay selection using _mm_minpos_epu16 from SSE4.17
1:48:43Begin to sketch out the tRay selection using _mm_minpos_epu16 from SSE4.17
1:48:43Begin to sketch out the tRay selection using _mm_minpos_epu16 from SSE4.17
1:52:30ikojan Q: When it comes to game dev / engine dev what do you believe is the hardest aspect to implement? Lighting, editors, etc?
🗪
1:52:30ikojan Q: When it comes to game dev / engine dev what do you believe is the hardest aspect to implement? Lighting, editors, etc?
🗪
1:52:30ikojan Q: When it comes to game dev / engine dev what do you believe is the hardest aspect to implement? Lighting, editors, etc?
🗪
1:54:07ayskrym900 Q: How can you switch that fast between navigating into code and typing? The arrow keys are pretty far from the home row
🗪
1:54:07ayskrym900 Q: How can you switch that fast between navigating into code and typing? The arrow keys are pretty far from the home row
🗪
1:54:07ayskrym900 Q: How can you switch that fast between navigating into code and typing? The arrow keys are pretty far from the home row
🗪
1:54:50tek256 naysayer88 the never ending raid chain
🗪
1:54:50tek256 naysayer88 the never ending raid chain
🗪
1:54:50tek256 naysayer88 the never ending raid chain
🗪
1:55:10nivimani Jon has lunch
🗪
1:55:10nivimani Jon has lunch
🗪
1:55:10nivimani Jon has lunch
🗪
1:55:42End it here
🗩
1:55:42End it here
🗩
1:55:42End it here
🗩