Browse Source

Merge pull request #17631 from gkjohnson/fix-logdepth-noise

Logarithmic Depth Buffer: improve test for detecting perspective matrix in fragment shader
Michael Herzog 5 years ago
parent
commit
30aea4095e
1 changed files with 3 additions and 1 deletions
  1. 3 1
      src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js

+ 3 - 1
src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js

@@ -1,7 +1,9 @@
 export default /* glsl */`
 #if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )
 
-	gl_FragDepthEXT = vIsPerspective == 1.0 ? log2( vFragDepth ) * logDepthBufFC * 0.5 : gl_FragCoord.z;
+	// Doing a strict comparison with == 1.0 can cause noise artifacts
+	// on some platforms. See issue #17623.
+	gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;
 
 #endif
 `;