Handmade Hero»Episode Guide
SIMD Raycast Point and Normal Computations
?
?

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: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
🗩
2:14Putting six-rayed light probes into the lighting system
🗩
2:14Putting six-rayed light probes into the lighting system
🗩
2:14Putting six-rayed light probes into the lighting system
🗩
3:16Our old box-intersection testing in RayCast()
🗩
3:16Our old box-intersection testing in RayCast()
🗩
3:16Our old box-intersection testing in RayCast()
🗩
4:54Our box lighting primitives
🏃
4:54Our box lighting primitives
🏃
4:54Our box lighting primitives
🏃
7:00Our old box-intersection testing and reporting in RayCast(), continued
🗩
7:00Our old box-intersection testing and reporting in RayCast(), continued
🗩
7:00Our old box-intersection testing and reporting in RayCast(), continued
🗩
10:31Ways of Getting Intersection Normals for AABB
🖌
10:31Ways of Getting Intersection Normals for AABB
🖌
10:31Ways of Getting Intersection Normals for AABB
🖌
14:31Consider storing the BoxMin and BoxMax in lighting_box
14:31Consider storing the BoxMin and BoxMax in lighting_box
14:31Consider storing the BoxMin and BoxMax in lighting_box
15:39Getting an Approximate Normal from an Ellipsoid-like AABB
🖌
15:39Getting an Approximate Normal from an Ellipsoid-like AABB
🖌
15:39Getting an Approximate Normal from an Ellipsoid-like AABB
🖌
18:50Getting Accurate AABB Intersection Normals
🖌
18:50Getting Accurate AABB Intersection Normals
🖌
18:50Getting Accurate AABB Intersection Normals
🖌
24:52Set up RayCast() to compute the intersection normal for a unit cube lighting_box
24:52Set up RayCast() to compute the intersection normal for a unit cube lighting_box
24:52Set up RayCast() to compute the intersection normal for a unit cube lighting_box
29:39Could we compute our intersection normal more efficiently?
🖌
29:39Could we compute our intersection normal more efficiently?
🖌
29:39Could we compute our intersection normal more efficiently?
🖌
32:26Consider the cost of our intersection normal computation in RayCast()
📖
32:26Consider the cost of our intersection normal computation in RayCast()
📖
32:26Consider the cost of our intersection normal computation in RayCast()
📖
34:31Computing the intersection normal only of box hits, saving the box scale and centre
🖌
34:31Computing the intersection normal only of box hits, saving the box scale and centre
🖌
34:31Computing the intersection normal only of box hits, saving the box scale and centre
🖌
37:33Let RayCast() only set the box centre and scale, making ComputeLightPropagation() compute the intersection normal
37:33Let RayCast() only set the box centre and scale, making ComputeLightPropagation() compute the intersection normal
37:33Let RayCast() only set the box centre and scale, making ComputeLightPropagation() compute the intersection normal
40:17The cost and availability of _mm_blend_ps1,2,3
📖
40:17The cost and availability of _mm_blend_ps1,2,3
📖
40:17The cost and availability of _mm_blend_ps1,2,3
📖
44:25Make RayCast() select the RefColor and at the end compute the Result, augmenting raycast_result with P, Normal and RefColor4
44:25Make RayCast() select the RefColor and at the end compute the Result, augmenting raycast_result with P, Normal and RefColor4
44:25Make RayCast() select the RefColor and at the end compute the Result, augmenting raycast_result with P, Normal and RefColor4
57:37Introduce SignBitFrom()
57:37Introduce SignBitFrom()
57:37Introduce SignBitFrom()
59:37Finish making RayCast() set the HitNormal from Masks
59:37Finish making RayCast() set the HitNormal from Masks
59:37Finish making RayCast() set the HitNormal from Masks
1:07:49Clean up compile errors, making RayCast() compute BoxRadius and its approximate inverse, introducing ApproxOneOver()5
1:07:49Clean up compile errors, making RayCast() compute BoxRadius and its approximate inverse, introducing ApproxOneOver()5
1:07:49Clean up compile errors, making RayCast() compute BoxRadius and its approximate inverse, introducing ApproxOneOver()5
1:22:33Consider the potential speed improvement of RayCast()
🗩
1:22:33Consider the potential speed improvement of RayCast()
🗩
1:22:33Consider the potential speed improvement of RayCast()
🗩
1:23:39Determine to make ComputeLightPropagation() operate wide
🗩
1:23:39Determine to make ComputeLightPropagation() operate wide
🗩
1:23:39Determine to make ComputeLightPropagation() operate wide
🗩
1:24:52Lament SIMD's lack of fetching instructions
🗩
1:24:52Lament SIMD's lack of fetching instructions
🗩
1:24:52Lament SIMD's lack of fetching instructions
🗩
1:26:09Consider how to make our lighting operate wide
🗩
1:26:09Consider how to make our lighting operate wide
🗩
1:26:09Consider how to make our lighting operate wide
🗩
1:30:08Q&A
🗩
1:30:08Q&A
🗩
1:30:08Q&A
🗩
1:31:12ellesar1 Q: Origin, BoxCenter, and HitP are on the same line. Why do we use HitP – Center for the normal computation, and not Origin – Center? The direction should be the same. Problems could arise if origin is within the box (esp if origin = center), but I don't think that's a use case. I understand the HitP is useful for other purposes, just wondering if it's actually necessary for the normals computation
🗪
1:31:12ellesar1 Q: Origin, BoxCenter, and HitP are on the same line. Why do we use HitP – Center for the normal computation, and not Origin – Center? The direction should be the same. Problems could arise if origin is within the box (esp if origin = center), but I don't think that's a use case. I understand the HitP is useful for other purposes, just wondering if it's actually necessary for the normals computation
🗪
1:31:12ellesar1 Q: Origin, BoxCenter, and HitP are on the same line. Why do we use HitP – Center for the normal computation, and not Origin – Center? The direction should be the same. Problems could arise if origin is within the box (esp if origin = center), but I don't think that's a use case. I understand the HitP is useful for other purposes, just wondering if it's actually necessary for the normals computation
🗪
1:32:37uplinkcoder Q: I've just added the C++ standard reference to the issue type-name member-name, issue.6 I agree it's a stupid warning, but there seems to be no way to disable it in GCC
🗪
1:32:37uplinkcoder Q: I've just added the C++ standard reference to the issue type-name member-name, issue.6 I agree it's a stupid warning, but there seems to be no way to disable it in GCC
🗪
1:32:37uplinkcoder Q: I've just added the C++ standard reference to the issue type-name member-name, issue.6 I agree it's a stupid warning, but there seems to be no way to disable it in GCC
🗪
1:33:06ellesar1 Ahh, thanks for explaining it once more. I get it now
🗪
1:33:06ellesar1 Ahh, thanks for explaining it once more. I get it now
🗪
1:33:06ellesar1 Ahh, thanks for explaining it once more. I get it now
🗪
1:35:22rooctag Q: Why are the light probes cubes and not spheres?
🗪
1:35:22rooctag Q: Why are the light probes cubes and not spheres?
🗪
1:35:22rooctag Q: Why are the light probes cubes and not spheres?
🗪
1:36:29uplinkcoder Q: GCC is following the standard. It's just that the standard is stupid7
🗪
1:36:29uplinkcoder Q: GCC is following the standard. It's just that the standard is stupid7
🗪
1:36:29uplinkcoder Q: GCC is following the standard. It's just that the standard is stupid7
🗪
1:45:33mr4thdimention The good idea in C++ was "Let's start with C"
🗪
1:45:33mr4thdimention The good idea in C++ was "Let's start with C"
🗪
1:45:33mr4thdimention The good idea in C++ was "Let's start with C"
🗪
1:46:12maliusarth Q: Should I work on a game engine in C / C++ or just put out games in Unity / Unreal until Jai comes out?
🗪
1:46:12maliusarth Q: Should I work on a game engine in C / C++ or just put out games in Unity / Unreal until Jai comes out?
🗪
1:46:12maliusarth Q: Should I work on a game engine in C / C++ or just put out games in Unity / Unreal until Jai comes out?
🗪
1:49:14bulmanator Q: Is there any reading material you recommend for more serious real-time lighting like this (Papers, books, even blog posts etc.)? I've done simple diffuse lighting before but nothing beyond that8
🗪
1:49:14bulmanator Q: Is there any reading material you recommend for more serious real-time lighting like this (Papers, books, even blog posts etc.)? I've done simple diffuse lighting before but nothing beyond that8
🗪
1:49:14bulmanator Q: Is there any reading material you recommend for more serious real-time lighting like this (Papers, books, even blog posts etc.)? I've done simple diffuse lighting before but nothing beyond that8
🗪
1:51:00saidwho12 The PBR book is good book9
🗪
1:51:00saidwho12 The PBR book is good book9
🗪
1:51:00saidwho12 The PBR book is good book9
🗪
1:53:23oliverthebestcat What do you think is a good idea in games? I feel like I tune into so many programmer streams telling me this and that is terrible, but not really giving me another option. I don't want the answer to be "wait for Jai"! What is good today?
🗪
1:53:23oliverthebestcat What do you think is a good idea in games? I feel like I tune into so many programmer streams telling me this and that is terrible, but not really giving me another option. I don't want the answer to be "wait for Jai"! What is good today?
🗪
1:53:23oliverthebestcat What do you think is a good idea in games? I feel like I tune into so many programmer streams telling me this and that is terrible, but not really giving me another option. I don't want the answer to be "wait for Jai"! What is good today?
🗪
1:55:21sapper123 Jai demo on Macros is in an hour and a half. Just a reminder for chat
🗪
1:55:21sapper123 Jai demo on Macros is in an hour and a half. Just a reminder for chat
🗪
1:55:21sapper123 Jai demo on Macros is in an hour and a half. Just a reminder for chat
🗪
1:56:53oliverthebestcat But it's pretty difficult to listen to you or Jon's stream when it's all just "this is bad, that is bad". But hey, maybe it's true?
🗪
1:56:53oliverthebestcat But it's pretty difficult to listen to you or Jon's stream when it's all just "this is bad, that is bad". But hey, maybe it's true?
🗪
1:56:53oliverthebestcat But it's pretty difficult to listen to you or Jon's stream when it's all just "this is bad, that is bad". But hey, maybe it's true?
🗪
1:58:02Shut down, with a plug of Jon's stream10 and Handmade Seattle11
🗩
1:58:02Shut down, with a plug of Jon's stream10 and Handmade Seattle11
🗩
1:58:02Shut down, with a plug of Jon's stream10 and Handmade Seattle11
🗩