[16:30][handmade_opengl.cpp: Reduce the DepthThreshold in CompileResolveMultisample()]
[19:37][handmade_opengl.cpp: Prevent ResolveMultisample() from disabling the entire depth buffer in favour of disabling depth testing only, and leaving depth writes on]
[23:31][Run the game and try to toggle on multisampling]
[24:47][win32_handmade.cpp: Switch to 960x540 and enable multisampling by default]
[26:08][Run the game and inspect a screenshot to confirm that we get 1-to-2 pixels]
[27:26][Run the game and point out our diagonal lines in the ground cube primitives]
[28:32][handmade_opengl.cpp: Make CompileResolveMultisample() use all the samples and run the game to see that we're in a better place]
[31:03][handmade_opengl.cpp: Try to restore the depth range testing in CompileResolveMultisample()]
[32:44][Run the game to see some artifacts]
[33:40][handmade_opengl.cpp: Revert CompileResolveMultisample() to set, but not only pick from, the minimum depth and run the game to see some artifacts during the peel where the primitives abut]
[36:35][Consider the fact that we don't actually need multisampling here]
[39:03][handmade_opengl.cpp: Try to make CompileResolveMultisample() only pick the minimum depth again]
[40:12][handmade_opengl.cpp: Try turning off sRGB in CompileResolveMultisample() and run the game to determine that it is more correct with sRGB on]
[41:34][Blackboard: Producing a premultiplied colour from a percent-coverage value of any given pixel in a primitive]
[43:49][Blackboard: Storing each of those colour values in the peel]
[45:48][handmade_opengl.cpp: Read how CompilePeelComposite() handles sRGB]
[47:30][Blackboard: Considering the case with two triangles touching, that have the same colour value]
[49:06][handmade_opengl.cpp: Consider the possibility that CompileResolveMultisample() is computing slightly different sample positions]
[53:12][handmade_opengl.cpp: Make CompileResolveMultisample() set the InvSampleCount up front and add in that colour every time]
[53:58][Run the game to see that it looks basically the same]
[55:11][Wonder if we necessarily know how many samples there are in a pixel]
[56:49][handmade_opengl.cpp: Double-check the CompilePeelComposite() code, and wonder if the framebuffer's recording of Z values couldn't also be involved in this]
[58:20][handmade_opengl.cpp: Make CreateFramebuffer() use GL_DEPTH_COMPONENT32F in an effort to avoid quantisation errors]
[59:09][Run the game to see no effect]
[1:00:16][Closely inspect the diagonal artifact across the hero's face, and consider why that occurs]
[1:07:07][Consult the documentation on glSampleCoverage[ref
[1:22:12][Run the game and wonder if the summation from depth peel to depth peel is not correct]
[1:23:22][handmade_opengl.cpp: Try to make CompileResolveMultisample() hard set the alpha to 1, run the game and still see the summation error across the primitive boundary]
[1:25:35][Blackboard: How the alpha summation is wrong]
[1:27:44][handmade_opengl.cpp: Make CompileResolveMultisample() sum all the colours starting from the furthest depth]
[1:28:58][Run the game to see artifacts where trees overlap, but not at the triangle primitive boundaries]
[1:31:16][handmade_opengl.cpp: Set an AlphaThreshold in OpenGLRenderCommands() and run the game to see how that affects it]
[1:34:08][handmade_opengl.cpp: Try preventing CompileResolveMultisample() from performing centroid sampling, and run the game to see that it's a lot nicer]
[1:36:33][handmade_opengl.cpp: Fully remove centroid sampling and run the game to see that it's nice and smooth, but subtly wrong at some edges]
[1:41:14][Blackboard: Multisampling colours with low alpha values]
[1:43:18][handmade_opengl.cpp: Make CompileResolveMultisample() track both the min and max depth and halve that the range]
[1:44:06][Run the game to see a lot less artifacts]
[1:44:46][handmade_opengl.cpp: Make OpenGLRenderCommands() set AlphaThreshold to 0, run the game and now only see artifacts during peeling]
[1:52:12][@uplinkcoder][gl_polygon_smooth is not supported by many modern cards]
[1:52:35][@cubercaleb][What about the type cast?]
[1:52:56][@nrec_][Hi, I'm new here, sorry if this has been asked before. Looks like you're doing an engine right now. Any idea about what the game would be?]
[1:56:42][@wasenabled][As it appears you are nearing the end of the main engine dev, will you be adding in the non-Win32 layers too, or have others already done those?]