[video output=day410 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Tracking Incident Light" vod_platform=youtube id=IS8fl0H1wmc annotator=Miblo] [0:09][Recap and set the stage for the day computing the lighting in software] [2:08][handmade_opengl.cpp: Comment out the LightingD contribution in CompileZBiasProgram()] [2:41][Run the game to see the current, non-directional lighting solution] [4:36][handmade_world_mode.h: Remove ambient occlusion from the lighting_element] [11:17][Blackboard: Incident Light] [14:52][Blackboard: Forward propagating emitters to reflectors] [20:29][handmade_render_group.cpp: Introduce RayCast(), ComputeLightPropagation() and GatherFinalLighting()] [27:46][Blackboard: Surface facing direction] [29:15][handmade_world_mode.h: Only store one direction in the lighting_element] [30:43][handmade_render_group.cpp: Continue to implement RayCast()] [32:28][handmade_render_group.cpp: Implement GatherFinalLighting()] [40:47][Blackboard: Emittance distance contribution] [43:39][handmade_render_group.cpp: Continue to implement GatherFinalLighting() without diminishing by distance] [51:33][handmade_render_group.cpp: Determine to implement ComputeLightPropagation()] [53:04][Blackboard: Projecting from emitters vs from reflectors] [55:50][handmade_render_group.cpp: Implement ComputeLightPropagation() casting from emitters to reflectors] [1:00:42][Consider prohibiting ourselves from hitting the same reflector twice] [1:04:19][handmade_render_group.cpp: Continue to implement ComputeLightPropagation() weighting the emission contribution] [1:14:25][handmade_render_group.cpp: Enable ExtractReflectorsFromQuads() and ExtractReflectorsFromVerts() to use our newly computed emittance] [1:20:06][Run the game to see the trippy disco lights] [1:21:39][handmade_world_mode.cpp: Prevent AddSnakeSegment() from emitting light] [1:22:18][Run the game to see our current lighting solution with just our hero's light source] [1:23:34][Q&A][:speech] [1:23:50][@finalspace][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:46][@lclhstr][Ah well... shareware visual studio] [1:25:21][@thesizik][Haven't you made an account for VS on a previous stream?] [1:25:37][@stanpancakes][Has 4coder open, runs notepad to write a TODO] [1:26:19][@lclhstr][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:06][@simekone][Did you try ConEmu instead of stock Command Prompt? I love Quake Console effect it delivers] [1:30:33][@finalspace][The good times for paying software and are happy are totally over] [1:31:03][@tinforma][Couldn't follow for a long time. Have you done something with automated (unit) testing or are you planning to?] [1:33:16][@cewxel][How do you keep your motivation going on long running projects?] [1:35:47][Wrap it up][:speech] [/video]