Browse Source

Use loose comparison for detecting perspective matrix in fragment shader

Garrett Johnson 5 years ago
parent
commit
741ed63414
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.5 ? log2( vFragDepth ) * logDepthBufFC * 0.5 : gl_FragCoord.z;
 
 #endif
 `;