0:10Recap and set the stage for the day, with a mention of mtsmox's discovery of that problem with our depth enable
0:10Recap and set the stage for the day, with a mention of mtsmox's discovery of that problem with our depth enable
0:10Recap and set the stage for the day, with a mention of mtsmox's discovery of that problem with our depth enable
1:21A few words on the month-long failure of Google Drive to download the HandmadeCon videos
1:21A few words on the month-long failure of Google Drive to download the HandmadeCon videos
1:21A few words on the month-long failure of Google Drive to download the HandmadeCon videos
2:21Blackboard: Multisampled Depth Peeling
2:21Blackboard: Multisampled Depth Peeling
2:21Blackboard: Multisampled Depth Peeling
7:21Run the game to show off the artifact-free smoothing
7:21Run the game to show off the artifact-free smoothing
7:21Run the game to show off the artifact-free smoothing
10:07Blackboard: Splitting the min and max depth to perform the depth peeling
10:07Blackboard: Splitting the min and max depth to perform the depth peeling
10:07Blackboard: Splitting the min and max depth to perform the depth peeling
11:32Run the game, consider packing the new art into a texture atlas, and determine to get some lighting in
11:32Run the game, consider packing the new art into a texture atlas, and determine to get some lighting in
11:32Run the game, consider packing the new art into a texture atlas, and determine to get some lighting in
18:10Blackboard: In Graphics, Light = Photons
18:10Blackboard: In Graphics, Light = Photons
18:10Blackboard: In Graphics, Light = Photons
21:53Blackboard: Off-line rendered lighting, as a probabilistic sampling problem
21:53Blackboard: Off-line rendered lighting, as a probabilistic sampling problem
21:53Blackboard: Off-line rendered lighting, as a probabilistic sampling problem
25:37Blackboard: Real-time rendered lighting, and falloff
25:37Blackboard: Real-time rendered lighting, and falloff
25:37Blackboard: Real-time rendered lighting, and falloff
32:57Blackboard: Falloff affected by Distance, and the inverse square law
32:57Blackboard: Falloff affected by Distance, and the inverse square law
32:57Blackboard: Falloff affected by Distance, and the inverse square law
40:16Blackboard: Perceivable Brightness, and the projection equation as the inverse of the photon spread equation
40:16Blackboard: Perceivable Brightness, and the projection equation as the inverse of the photon spread equation
40:16Blackboard: Perceivable Brightness, and the projection equation as the inverse of the photon spread equation
44:42Blackboard: Falloff affected by Participating Media, e.g. dust, air, water droplets
44:42Blackboard: Falloff affected by Participating Media, e.g. dust, air, water droplets
44:42Blackboard: Falloff affected by Participating Media, e.g. dust, air, water droplets
48:21Blackboard: Falloff affected by Reflection
48:21Blackboard: Falloff affected by Reflection
48:21Blackboard: Falloff affected by Reflection
55:53Blackboard: Surface Diffusiveness
55:53Blackboard: Surface Diffusiveness
55:53Blackboard: Surface Diffusiveness
1:04:05Blackboard: Cosine falloff, affected by the angle at which photons hit a surface
1:04:05Blackboard: Cosine falloff, affected by the angle at which photons hit a surface
1:04:05Blackboard: Cosine falloff, affected by the angle at which photons hit a surface
1:07:16Blackboard: Regional lighting, as in Stardew Valley
1:07:16Blackboard: Regional lighting, as in Stardew Valley
1:07:16Blackboard: Regional lighting, as in Stardew Valley
1:11:22Blackboard: Normal mapped lighting, as created by Sprite Lamp1
1:11:22Blackboard: Normal mapped lighting, as created by Sprite Lamp1
1:11:22Blackboard: Normal mapped lighting, as created by Sprite Lamp1
1:13:25handmade_opengl.cpp: Add a regional light source in CompileZBiasProgram()2
1:13:25handmade_opengl.cpp: Add a regional light source in CompileZBiasProgram()2
1:13:25handmade_opengl.cpp: Add a regional light source in CompileZBiasProgram()2
1:20:08Run the game to see our light source
1:20:08Run the game to see our light source
1:20:08Run the game to see our light source
1:22:00handmade_opengl.cpp: Create a second, brighter light in CompileZBiasProgram()
1:22:00handmade_opengl.cpp: Create a second, brighter light in CompileZBiasProgram()
1:22:00handmade_opengl.cpp: Create a second, brighter light in CompileZBiasProgram()
1:23:05Run the game to see our two lights, and note that we may want to pre-compute the lights into a voxel grid
1:23:05Run the game to see our two lights, and note that we may want to pre-compute the lights into a voxel grid
1:23:05Run the game to see our two lights, and note that we may want to pre-compute the lights into a voxel grid
1:25:04Consider using the facing direction of our surfaces to improve the lighting
1:25:04Consider using the facing direction of our surfaces to improve the lighting
1:25:04Consider using the facing direction of our surfaces to improve the lighting
1:27:19Blackboard: Light scattering, and cosine falloff
1:27:19Blackboard: Light scattering, and cosine falloff
1:27:19Blackboard: Light scattering, and cosine falloff
1:31:02Practical experiment: Glancing light off a piece of paper
1:31:02Practical experiment: Glancing light off a piece of paper
1:31:02Practical experiment: Glancing light off a piece of paper
1:32:50Blackboard: Surface normal
1:32:50Blackboard: Surface normal
1:32:50Blackboard: Surface normal
1:33:49handmade_platform.h: Add N to textured_vertex
1:33:49handmade_platform.h: Add N to textured_vertex
1:33:49handmade_platform.h: Add N to textured_vertex
1:35:02Blackboard: Using the cross product to produce normals
1:35:02Blackboard: Using the cross product to produce normals
1:35:02Blackboard: Using the cross product to produce normals
1:35:43handmade_render_group.cpp: Make PushQuad() produce the surface Normal
1:35:43handmade_render_group.cpp: Make PushQuad() produce the surface Normal
1:35:43handmade_render_group.cpp: Make PushQuad() produce the surface Normal
1:39:53handmade_opengl.cpp: Enable UseProgramBegin() to use that Normal
1:39:53handmade_opengl.cpp: Enable UseProgramBegin() to use that Normal
1:39:53handmade_opengl.cpp: Enable UseProgramBegin() to use that Normal
1:42:35handmade_opengl.cpp: Make OpenGLCreateProgram() take an opengl_program_common to write into directly
1:42:35handmade_opengl.cpp: Make OpenGLCreateProgram() take an opengl_program_common to write into directly
1:42:35handmade_opengl.cpp: Make OpenGLCreateProgram() take an opengl_program_common to write into directly
1:46:43Step in to UseProgramBegin() to see if anything looks weird
1:46:43Step in to UseProgramBegin() to see if anything looks weird
1:46:43Step in to UseProgramBegin() to see if anything looks weird
1:48:23handmade_opengl.cpp: Insert space for the normals in the Vertex arrays
1:48:23handmade_opengl.cpp: Insert space for the normals in the Vertex arrays
1:48:23handmade_opengl.cpp: Insert space for the normals in the Vertex arrays
1:49:49soysaucethekid For the lighting of the sprites, do you need to compensate for the angle offset if it's using the same light source as the terrain?
🗪
1:49:49soysaucethekid For the lighting of the sprites, do you need to compensate for the angle offset if it's using the same light source as the terrain?
🗪
1:49:49soysaucethekid For the lighting of the sprites, do you need to compensate for the angle offset if it's using the same light source as the terrain?
🗪
1:51:00AsafGartner There seems to be a lot of banding around the lights
🗪
1:51:00AsafGartner There seems to be a lot of banding around the lights
🗪
1:51:00AsafGartner There seems to be a lot of banding around the lights
🗪
1:52:19handmade_opengl.cpp: Try to make OpenGLInit() use a full floating point resolution back buffer
1:52:19handmade_opengl.cpp: Try to make OpenGLInit() use a full floating point resolution back buffer
1:52:19handmade_opengl.cpp: Try to make OpenGLInit() use a full floating point resolution back buffer
1:56:15handmade_opengl.cpp: Try to make OpenGLRenderCommands() enable GL_DITHER
1:56:15handmade_opengl.cpp: Try to make OpenGLRenderCommands() enable GL_DITHER
1:56:15handmade_opengl.cpp: Try to make OpenGLRenderCommands() enable GL_DITHER
2:00:30flyingsolomon As our hero does not represent the actual hero that saves our lives every day all over the world, I took liberty and made some corrections to the game art...
🗪
2:00:30flyingsolomon As our hero does not represent the actual hero that saves our lives every day all over the world, I took liberty and made some corrections to the game art...
🗪
2:00:30flyingsolomon As our hero does not represent the actual hero that saves our lives every day all over the world, I took liberty and made some corrections to the game art...
🗪
2:00:53stashiocat What kind of rendering pipeline does this use? Forward? Deferred? Both?
🗪
2:00:53stashiocat What kind of rendering pipeline does this use? Forward? Deferred? Both?
🗪
2:00:53stashiocat What kind of rendering pipeline does this use? Forward? Deferred? Both?
🗪
2:01:24graeme7 is the debug text being lighted?
🗪
2:01:24graeme7 is the debug text being lighted?
🗪
2:01:24graeme7 is the debug text being lighted?
🗪
2:01:29mtsmox Use sampler with shift key pressed to get info window
🗪
2:01:29mtsmox Use sampler with shift key pressed to get info window
🗪
2:01:29mtsmox Use sampler with shift key pressed to get info window
🗪
2:01:40flyingsolomon I miss the little line showing the current filename inside 4coder. It was easier to follow that way
🗪
2:01:40flyingsolomon I miss the little line showing the current filename inside 4coder. It was easier to follow that way
🗪
2:01:40flyingsolomon I miss the little line showing the current filename inside 4coder. It was easier to follow that way
🗪
2:02:08areriff86 How expensive it will be if the light source is moving, for example, following the torch that hero could be carrying or the flying light projectile?
🗪
2:02:08areriff86 How expensive it will be if the light source is moving, for example, following the torch that hero could be carrying or the flying light projectile?
🗪
2:02:08areriff86 How expensive it will be if the light source is moving, for example, following the torch that hero could be carrying or the flying light projectile?
🗪
2:03:01uplinkcoder Update CodeXL. It will not be able to step into the shader, but you should be able to see the OpenGL state
🗪
2:03:01uplinkcoder Update CodeXL. It will not be able to step into the shader, but you should be able to see the OpenGL state
🗪
2:03:01uplinkcoder Update CodeXL. It will not be able to step into the shader, but you should be able to see the OpenGL state
🗪
2:03:33Wind it down, with the determination to investigate the banding, noting that the light moves with the hero
🗩
2:03:33Wind it down, with the determination to investigate the banding, noting that the light moves with the hero
🗩
2:03:33Wind it down, with the determination to investigate the banding, noting that the light moves with the hero
🗩