Browse Source

Merge pull request #12051 from WestLangley/dev-logdepth

Logarithmic depth buffer vertex shader simplification
Mr.doob 8 years ago
parent
commit
6681d270f4

+ 2 - 2
src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl

@@ -1,5 +1,5 @@
-#if defined(USE_LOGDEPTHBUF) && defined(USE_LOGDEPTHBUF_EXT)
+#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )
 
 
-	gl_FragDepthEXT = log2(vFragDepth) * logDepthBufFC * 0.5;
+	gl_FragDepthEXT = log2( vFragDepth ) * logDepthBufFC * 0.5;
 
 
 #endif
 #endif

+ 3 - 3
src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl

@@ -1,14 +1,14 @@
 #ifdef USE_LOGDEPTHBUF
 #ifdef USE_LOGDEPTHBUF
 
 
-	gl_Position.z = log2(max( EPSILON, gl_Position.w + 1.0 )) * logDepthBufFC;
-
 	#ifdef USE_LOGDEPTHBUF_EXT
 	#ifdef USE_LOGDEPTHBUF_EXT
 
 
 		vFragDepth = 1.0 + gl_Position.w;
 		vFragDepth = 1.0 + gl_Position.w;
 
 
 	#else
 	#else
 
 
-		gl_Position.z = (gl_Position.z - 1.0) * gl_Position.w;
+		gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;
+
+		gl_Position.z *= gl_Position.w;
 
 
 	#endif
 	#endif