Handmade Hero»Episode Guide
Tracking Incident Light
?
?

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:09Recap and set the stage for the day computing the lighting in software
0:09Recap and set the stage for the day computing the lighting in software
0:09Recap and set the stage for the day computing the lighting in software
2:08handmade_opengl.cpp: Comment out the LightingD contribution in CompileZBiasProgram()
2:08handmade_opengl.cpp: Comment out the LightingD contribution in CompileZBiasProgram()
2:08handmade_opengl.cpp: Comment out the LightingD contribution in CompileZBiasProgram()
2:41Run the game to see the current, non-directional lighting solution
2:41Run the game to see the current, non-directional lighting solution
2:41Run the game to see the current, non-directional lighting solution
4:36handmade_world_mode.h: Remove ambient occlusion from the lighting_element
4:36handmade_world_mode.h: Remove ambient occlusion from the lighting_element
4:36handmade_world_mode.h: Remove ambient occlusion from the lighting_element
11:17Blackboard: Incident Light
11:17Blackboard: Incident Light
11:17Blackboard: Incident Light
14:52Blackboard: Forward propagating emitters to reflectors
14:52Blackboard: Forward propagating emitters to reflectors
14:52Blackboard: Forward propagating emitters to reflectors
20:29handmade_render_group.cpp: Introduce RayCast(), ComputeLightPropagation() and GatherFinalLighting()
20:29handmade_render_group.cpp: Introduce RayCast(), ComputeLightPropagation() and GatherFinalLighting()
20:29handmade_render_group.cpp: Introduce RayCast(), ComputeLightPropagation() and GatherFinalLighting()
27:46Blackboard: Surface facing direction
27:46Blackboard: Surface facing direction
27:46Blackboard: Surface facing direction
29:15handmade_world_mode.h: Only store one direction in the lighting_element
29:15handmade_world_mode.h: Only store one direction in the lighting_element
29:15handmade_world_mode.h: Only store one direction in the lighting_element
30:43handmade_render_group.cpp: Continue to implement RayCast()
30:43handmade_render_group.cpp: Continue to implement RayCast()
30:43handmade_render_group.cpp: Continue to implement RayCast()
32:28handmade_render_group.cpp: Implement GatherFinalLighting()
32:28handmade_render_group.cpp: Implement GatherFinalLighting()
32:28handmade_render_group.cpp: Implement GatherFinalLighting()
40:47Blackboard: Emittance distance contribution
40:47Blackboard: Emittance distance contribution
40:47Blackboard: Emittance distance contribution
43:39handmade_render_group.cpp: Continue to implement GatherFinalLighting() without diminishing by distance
43:39handmade_render_group.cpp: Continue to implement GatherFinalLighting() without diminishing by distance
43:39handmade_render_group.cpp: Continue to implement GatherFinalLighting() without diminishing by distance
51:33handmade_render_group.cpp: Determine to implement ComputeLightPropagation()
51:33handmade_render_group.cpp: Determine to implement ComputeLightPropagation()
51:33handmade_render_group.cpp: Determine to implement ComputeLightPropagation()
53:04Blackboard: Projecting from emitters vs from reflectors
53:04Blackboard: Projecting from emitters vs from reflectors
53:04Blackboard: Projecting from emitters vs from reflectors
55:50handmade_render_group.cpp: Implement ComputeLightPropagation() casting from emitters to reflectors
55:50handmade_render_group.cpp: Implement ComputeLightPropagation() casting from emitters to reflectors
55:50handmade_render_group.cpp: Implement ComputeLightPropagation() casting from emitters to reflectors
1:00:42Consider prohibiting ourselves from hitting the same reflector twice
1:00:42Consider prohibiting ourselves from hitting the same reflector twice
1:00:42Consider prohibiting ourselves from hitting the same reflector twice
1:04:19handmade_render_group.cpp: Continue to implement ComputeLightPropagation() weighting the emission contribution
1:04:19handmade_render_group.cpp: Continue to implement ComputeLightPropagation() weighting the emission contribution
1:04:19handmade_render_group.cpp: Continue to implement ComputeLightPropagation() weighting the emission contribution
1:14:25handmade_render_group.cpp: Enable ExtractReflectorsFromQuads() and ExtractReflectorsFromVerts() to use our newly computed emittance
1:14:25handmade_render_group.cpp: Enable ExtractReflectorsFromQuads() and ExtractReflectorsFromVerts() to use our newly computed emittance
1:14:25handmade_render_group.cpp: Enable ExtractReflectorsFromQuads() and ExtractReflectorsFromVerts() to use our newly computed emittance
1:20:06Run the game to see the trippy disco lights
1:20:06Run the game to see the trippy disco lights
1:20:06Run the game to see the trippy disco lights
1:21:39handmade_world_mode.cpp: Prevent AddSnakeSegment() from emitting light
1:21:39handmade_world_mode.cpp: Prevent AddSnakeSegment() from emitting light
1:21:39handmade_world_mode.cpp: Prevent AddSnakeSegment() from emitting light
1:22:18Run the game to see our current lighting solution with just our hero's light source
1:22:18Run the game to see our current lighting solution with just our hero's light source
1:22:18Run the game to see our current lighting solution with just our hero's light source
1:23:34Q&A
🗩
1:23:34Q&A
🗩
1:23:34Q&A
🗩
1:23:50finalspace Before I forgot, please increase the font size in visual studio for debugging; the font size is pretty small. It's not the same size as 4coder uses. Thanks!
🗪
1:23:50finalspace Before I forgot, please increase the font size in visual studio for debugging; the font size is pretty small. It's not the same size as 4coder uses. Thanks!
🗪
1:23:50finalspace Before I forgot, please increase the font size in visual studio for debugging; the font size is pretty small. It's not the same size as 4coder uses. Thanks!
🗪
1:24:46lclhstr Ah well... shareware visual studio
🗪
1:24:46lclhstr Ah well... shareware visual studio
🗪
1:24:46lclhstr Ah well... shareware visual studio
🗪
1:25:21thesizik Haven't you made an account for VS on a previous stream?
🗪
1:25:21thesizik Haven't you made an account for VS on a previous stream?
🗪
1:25:21thesizik Haven't you made an account for VS on a previous stream?
🗪
1:25:37stanpancakes Has 4coder open, runs notepad to write a TODO
🗪
1:25:37stanpancakes Has 4coder open, runs notepad to write a TODO
🗪
1:25:37stanpancakes Has 4coder open, runs notepad to write a TODO
🗪
1:26:19lclhstr Yeah, no malicious intent with my statement. I just find it funny how it expires after 30 days without you giving them "customer data"
🗪
1:26:19lclhstr Yeah, no malicious intent with my statement. I just find it funny how it expires after 30 days without you giving them "customer data"
🗪
1:26:19lclhstr Yeah, no malicious intent with my statement. I just find it funny how it expires after 30 days without you giving them "customer data"
🗪
1:30:06simekone Did you try ConEmu instead of stock Command Prompt? I love Quake Console effect it delivers
🗪
1:30:06simekone Did you try ConEmu instead of stock Command Prompt? I love Quake Console effect it delivers
🗪
1:30:06simekone Did you try ConEmu instead of stock Command Prompt? I love Quake Console effect it delivers
🗪
1:30:33finalspace The good times for paying software and are happy are totally over
🗪
1:30:33finalspace The good times for paying software and are happy are totally over
🗪
1:30:33finalspace The good times for paying software and are happy are totally over
🗪
1:31:03tinforma Couldn't follow for a long time. Have you done something with automated (unit) testing or are you planning to?
🗪
1:31:03tinforma Couldn't follow for a long time. Have you done something with automated (unit) testing or are you planning to?
🗪
1:31:03tinforma Couldn't follow for a long time. Have you done something with automated (unit) testing or are you planning to?
🗪
1:33:16cewxel How do you keep your motivation going on long running projects?
🗪
1:33:16cewxel How do you keep your motivation going on long running projects?
🗪
1:33:16cewxel How do you keep your motivation going on long running projects?
🗪
1:35:47Wrap it up
🗩
1:35:47Wrap it up
🗩
1:35:47Wrap it up
🗩