46 lines
3.4 KiB
Plaintext
46 lines
3.4 KiB
Plaintext
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Smoother Blending of Lighting Samples" vod_platform=youtube id=_ba1Mxaa2Ks annotator=Miblo]
|
|
[0:08][Recap and set the stage for the day, proceeding with lighting]
|
|
[1:00][Run the game to see our current lighting solution]
|
|
[4:48][Milton feature request: Hide title bar]
|
|
[5:39][Blackboard: Light Interpolation]
|
|
[11:50][Blackboard: Weighted sampling of multiple lighting samples per voxel]
|
|
[16:35][Run the game to see the lighting discontinuities]
|
|
[17:05][handmade_opengl.cpp: Make SumVoxelLight() in CompileZBiasProgram() map the lighting sampling to the radial dimensions of the voxels]
|
|
[18:33][Run the game to see the circular blending]
|
|
[19:15][handmade_opengl.cpp: Make SumVoxelLight() in CompileZBiasProgram() constrain the lighting sampling to each voxel]
|
|
[24:49][Run the game to see the constrained and sparse circular lighting]
|
|
[26:22][handmade_opengl.cpp: Reduce the size of the voxels]
|
|
[27:08][Run the game to see the denser lighting]
|
|
[30:38][handmade_opengl.cpp: Try to set the surface reflectance directly to the lighting colour]
|
|
[31:08][Run the game to see that we are not storing the lighting premultiplied]
|
|
[33:31][handmade_opengl.cpp: Increase the size of the voxels]
|
|
[34:23][Run the game to visualise the lighting sampling, and consider how to improve the voxel lookup scheme]
|
|
[40:09][handmade_opengl.cpp: Make CompileZBiasProgram() only sum eight voxels]
|
|
[41:57][Blackboard: Interpolating lighting between fewer voxels]
|
|
[43:38][handmade_opengl.cpp: Make CompileZBiasProgram() sample from the centre of voxels]
|
|
[45:22][Run the game to see the incorrect sampling]
|
|
[46:14][Blackboard: Sampling from the centre of voxels]
|
|
[47:20][handmade_opengl.cpp: Correctly make CompileZBiasProgram() offset the lighting sampling to the voxel centres]
|
|
[47:53][Run the game to see the incomplete sampling]
|
|
[48:23][handmade_opengl.cpp: Enable SumVoxelLight() in CompileZBiasProgram() to normalise the lighting samples in each voxel, and then interpolate between the voxels]
|
|
[56:27][Run the game to see the square, yet incorrect blending]
|
|
[57:43][handmade_opengl.cpp: Correctly compute VoxF]
|
|
[59:27][Run the game to see the stable, bilinearly filtered lighting]
|
|
[1:01:22][handmade_opengl.cpp: Make SumVoxelLight() modulate the voxel's lighting by a contribution value]
|
|
[1:03:21][Run the game to see the modulated lighting]
|
|
[1:03:51][handmade_platform.h: Reduce the size of the voxels]
|
|
[1:04:20][Run the game to see the light blending]
|
|
[1:04:45][handmade_opengl.cpp: Play with the contribution computation]
|
|
[1:06:23][Run the game and consider adding directional information to the voxels]
|
|
[1:09:56][handmade_platform.h: Consider the possibility of shrinking the lighting data]
|
|
[1:12:18][handmade_platform.h: Add D (direction) to the lighting_textures struct]
|
|
[1:14:32][handmade_opengl.cpp: Introduce a DSampler]
|
|
[1:23:12][Run the game to see that everything is black]
|
|
[1:23:31][handmade_render_group.cpp: Determine to enable the lighting scheme to use the lighting directions]
|
|
[1:27:38][handmade_render_group.cpp: Read LightingTest() and determine that it is incorrect]
|
|
[1:34:44][handmade_render_group.cpp: Reorganise LightingTest()]
|
|
[1:42:56][Run the game to see our lighting looking roughly the same]
|
|
[1:43:49][handmade_render_group.cpp: Add IncidentLight and AverageDirectionToLight to the lighting_element]
|
|
[1:47:18][Close the stream as normal]
|
|
[/video]
|