Better AABB Normal Derivation
?
?

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:01Welcome to the stream with a plug of the Meow the Infinite printed comic Kickstarter1
🗩
0:01Welcome to the stream with a plug of the Meow the Infinite printed comic Kickstarter1
🗩
0:01Welcome to the stream with a plug of the Meow the Infinite printed comic Kickstarter1
🗩
0:41Recap our ongoing move to grid-based ray casting
🗩
0:41Recap our ongoing move to grid-based ray casting
🗩
0:41Recap our ongoing move to grid-based ray casting
🗩
1:56i___d___k Yeah, he's been saying "only gameplay code now" since day 300
🗪
1:56i___d___k Yeah, he's been saying "only gameplay code now" since day 300
🗪
1:56i___d___k Yeah, he's been saying "only gameplay code now" since day 300
🗪
2:54Toggle on the normal derivation code in GridRayCast()
2:54Toggle on the normal derivation code in GridRayCast()
2:54Toggle on the normal derivation code in GridRayCast()
3:19Refresh our memories on the SIMD grid-based ray casting
📖
3:19Refresh our memories on the SIMD grid-based ray casting
📖
3:19Refresh our memories on the SIMD grid-based ray casting
📖
5:12Floating-point ALUs, and when to drop down from wide to scalar operations
📖
5:12Floating-point ALUs, and when to drop down from wide to scalar operations
📖
5:12Floating-point ALUs, and when to drop down from wide to scalar operations
📖
7:40Continue to refresh our memories on the ray hit extraction in GridRayCast()
📖
7:40Continue to refresh our memories on the ray hit extraction in GridRayCast()
📖
7:40Continue to refresh our memories on the ray hit extraction in GridRayCast()
📖
9:20Make GridRayCast() set ProbeSamplePSingle and ProbeSampleNSingle
9:20Make GridRayCast() set ProbeSamplePSingle and ProbeSampleNSingle
9:20Make GridRayCast() set ProbeSamplePSingle and ProbeSampleNSingle
11:09Producing the normal of the box surface we hit
📖
11:09Producing the normal of the box surface we hit
📖
11:09Producing the normal of the box surface we hit
📖
12:39Embark on making GridRayCast() produce the normal of the box surface we hit
12:39Embark on making GridRayCast() produce the normal of the box surface we hit
12:39Embark on making GridRayCast() produce the normal of the box surface we hit
27:14Consult ComputeVoxelIrradianceAt() for SIMD potential
📖
27:14Consult ComputeVoxelIrradianceAt() for SIMD potential
📖
27:14Consult ComputeVoxelIrradianceAt() for SIMD potential
📖
28:26Rewrite our ShuffleTable in GridRayCast()
28:26Rewrite our ShuffleTable in GridRayCast()
28:26Rewrite our ShuffleTable in GridRayCast()
37:53Try making GridRayCast() test the box surfaces unpacked
37:53Try making GridRayCast() test the box surfaces unpacked
37:53Try making GridRayCast() test the box surfaces unpacked
44:01Consider unpacked testing to be worse
📖
44:01Consider unpacked testing to be worse
📖
44:01Consider unpacked testing to be worse
📖
44:29Switch our attention to making GridRayCast() test the box surfaces while packed, renaming ShuffleTable to ClearMaskTable
44:29Switch our attention to making GridRayCast() test the box surfaces while packed, renaming ShuffleTable to ClearMaskTable
44:29Switch our attention to making GridRayCast() test the box surfaces while packed, renaming ShuffleTable to ClearMaskTable
51:39Make GridRayCast() pack up the ray hit2
51:39Make GridRayCast() pack up the ray hit2
51:39Make GridRayCast() pack up the ray hit2
58:45Consider the performance of our ray packing
📖
58:45Consider the performance of our ray packing
📖
58:45Consider the performance of our ray packing
📖
59:29Determine to set up the SpatialGridNodes and SpatialGridLeaves, and pre-generate the WalkTable
📖
59:29Determine to set up the SpatialGridNodes and SpatialGridLeaves, and pre-generate the WalkTable
📖
59:29Determine to set up the SpatialGridNodes and SpatialGridLeaves, and pre-generate the WalkTable
📖
1:02:14Introduce light_sample_direction for GridRayCast() to take
1:02:14Introduce light_sample_direction for GridRayCast() to take
1:02:14Introduce light_sample_direction for GridRayCast() to take
1:06:12Consider the performance of our grid-based ray casting
📖
1:06:12Consider the performance of our grid-based ray casting
📖
1:06:12Consider the performance of our grid-based ray casting
📖
1:08:53Ray Hit Normal Derivation
🖌
1:08:53Ray Hit Normal Derivation
🖌
1:08:53Ray Hit Normal Derivation
🖌
1:15:06On the possibility to remove the PShufB() calls if the BoxMin and BoxMax were not shuffled
📖
1:15:06On the possibility to remove the PShufB() calls if the BoxMin and BoxMax were not shuffled
📖
1:15:06On the possibility to remove the PShufB() calls if the BoxMin and BoxMax were not shuffled
📖
1:15:49Consider what information obtained while picking the tRay may we use to derive the box surface normal
📖
1:15:49Consider what information obtained while picking the tRay may we use to derive the box surface normal
📖
1:15:49Consider what information obtained while picking the tRay may we use to derive the box surface normal
📖
1:19:05Temporarily relieve GridRayCast() of storing the HitBoxMin and HitBoxMax3
1:19:05Temporarily relieve GridRayCast() of storing the HitBoxMin and HitBoxMax3
1:19:05Temporarily relieve GridRayCast() of storing the HitBoxMin and HitBoxMax3
1:23:52Change GridRayCast to store HitTMinX and HitTMinY rather than HitBoxMin and HitBoxMax
1:23:52Change GridRayCast to store HitTMinX and HitTMinY rather than HitBoxMin and HitBoxMax
1:23:52Change GridRayCast to store HitTMinX and HitTMinY rather than HitBoxMin and HitBoxMax
1:27:22Make GridRayCast() more efficiently derive the box surface normal
1:27:22Make GridRayCast() more efficiently derive the box surface normal
1:27:22Make GridRayCast() more efficiently derive the box surface normal
1:38:26Consider GridRayCast() to be done
📖
1:38:26Consider GridRayCast() to be done
📖
1:38:26Consider GridRayCast() to be done
📖
1:41:22Fix up compile errors in GridRayCast()
1:41:22Fix up compile errors in GridRayCast()
1:41:22Fix up compile errors in GridRayCast()
1:42:29Run hhlightprof successfully
🏃
1:42:29Run hhlightprof successfully
🏃
1:42:29Run hhlightprof successfully
🏃
1:43:30Q&A
🗩
1:43:30Q&A
🗩
1:43:30Q&A
🗩
1:43:55somebody_took_my_name Q: Nice upgrade of the routine! Just wanted to let you know there is a double PShufB() in the creation of tRaySingle. Which leads me to a question, what do the P and B in PShufB() stand for, position and bit?
🗪
1:43:55somebody_took_my_name Q: Nice upgrade of the routine! Just wanted to let you know there is a double PShufB() in the creation of tRaySingle. Which leads me to a question, what do the P and B in PShufB() stand for, position and bit?
🗪
1:43:55somebody_took_my_name Q: Nice upgrade of the routine! Just wanted to let you know there is a double PShufB() in the creation of tRaySingle. Which leads me to a question, what do the P and B in PShufB() stand for, position and bit?
🗪
1:44:13Relieve GridRayCast() of calling PShufB() twice in the creation of tRaySingle
1:44:13Relieve GridRayCast() of calling PShufB() twice in the creation of tRaySingle
1:44:13Relieve GridRayCast() of calling PShufB() twice in the creation of tRaySingle
1:44:21What PShufB stands for: Packed Shuffle Bytes4
📖
1:44:21What PShufB stands for: Packed Shuffle Bytes4
📖
1:44:21What PShufB stands for: Packed Shuffle Bytes4
📖
1:49:34miltondts Q: Hi Casey, love your show. Lately you seem to be having some problems with your voice (breaking, coughing). Have you considered visiting a speech therapist?
🗪
1:49:34miltondts Q: Hi Casey, love your show. Lately you seem to be having some problems with your voice (breaking, coughing). Have you considered visiting a speech therapist?
🗪
1:49:34miltondts Q: Hi Casey, love your show. Lately you seem to be having some problems with your voice (breaking, coughing). Have you considered visiting a speech therapist?
🗪
1:49:51Miblo Q: Mostly off-topic: Happy 600th Day! The stars have aligned and the Episode Guide5 has received an update
🗪
1:49:51Miblo Q: Mostly off-topic: Happy 600th Day! The stars have aligned and the Episode Guide5 has received an update
🗪
1:49:51Miblo Q: Mostly off-topic: Happy 600th Day! The stars have aligned and the Episode Guide5 has received an update
🗪
1:51:03pancelor Q: Could you explain the math and diagram behind why the sign bits are the inverse of the ray's sign again? I showed up halfway through that and I think I'm missing some context
🗪
1:51:03pancelor Q: Could you explain the math and diagram behind why the sign bits are the inverse of the ray's sign again? I showed up halfway through that and I think I'm missing some context
🗪
1:51:03pancelor Q: Could you explain the math and diagram behind why the sign bits are the inverse of the ray's sign again? I showed up halfway through that and I think I'm missing some context
🗪
1:51:25Plug(?) "Behind the Curve"
🖌
1:51:25Plug(?) "Behind the Curve"
🖌
1:51:25Plug(?) "Behind the Curve"
🖌
1:56:01Understanding why the sign of the hit surface normal is the inverse of that of the ray, in infinite planes
🖌
1:56:01Understanding why the sign of the hit surface normal is the inverse of that of the ray, in infinite planes
🖌
1:56:01Understanding why the sign of the hit surface normal is the inverse of that of the ray, in infinite planes
🖌
1:58:55Understanding why the sign of the hit surface normal is the inverse of that of the ray, in boxes
🖌
1:58:55Understanding why the sign of the hit surface normal is the inverse of that of the ray, in boxes
🖌
1:58:55Understanding why the sign of the hit surface normal is the inverse of that of the ray, in boxes
🖌
2:02:19pancelor But it forms nine quadrants, not four quadrants? I guess we know we're not stuck in between the fake heavens somehow?
🗪
2:02:19pancelor But it forms nine quadrants, not four quadrants? I guess we know we're not stuck in between the fake heavens somehow?
🗪
2:02:19pancelor But it forms nine quadrants, not four quadrants? I guess we know we're not stuck in between the fake heavens somehow?
🗪
2:02:48Deterministically knowing which surface we hit when our ray is in the edge octants
🖌
2:02:48Deterministically knowing which surface we hit when our ray is in the edge octants
🖌
2:02:48Deterministically knowing which surface we hit when our ray is in the edge octants
🖌
2:04:38pancelor But assuming that we know we're in the four corner quadrants, and that the boxes are axis-aligned, then that all makes sense now
🗪
2:04:38pancelor But assuming that we know we're in the four corner quadrants, and that the boxes are axis-aligned, then that all makes sense now
🗪
2:04:38pancelor But assuming that we know we're in the four corner quadrants, and that the boxes are axis-aligned, then that all makes sense now
🗪
2:04:49The utility of transforming into an axis-aligned space for hit testing
🖌
2:04:49The utility of transforming into an axis-aligned space for hit testing
🖌
2:04:49The utility of transforming into an axis-aligned space for hit testing
🖌
2:09:32stovecat Is it faster to do the matrix rotation or the dot product, though? I guess there's only one rotation and plenty of dot products
🗪
2:09:32stovecat Is it faster to do the matrix rotation or the dot product, though? I guess there's only one rotation and plenty of dot products
🗪
2:09:32stovecat Is it faster to do the matrix rotation or the dot product, though? I guess there's only one rotation and plenty of dot products
🗪
2:10:33Signed distance fields6
📖
2:10:33Signed distance fields6
📖
2:10:33Signed distance fields6
📖
2:11:51Wrap it up with a plug of the Meow the Infinite printed comic Kickstarter7
🗩
2:11:51Wrap it up with a plug of the Meow the Infinite printed comic Kickstarter7
🗩
2:11:51Wrap it up with a plug of the Meow the Infinite printed comic Kickstarter7
🗩