Browse Source

MeshLambertMaterial: shadow mask no longer applied to ambient light

WestLangley 9 years ago
parent
commit
fd015c6bb9

+ 0 - 7
src/renderers/shaders/ShaderChunk/lights_lambert_vertex.glsl

@@ -73,13 +73,6 @@ vLightFront = vec3( 0.0 );
 
 
 	{
 	{
 
 
-		vLightFront += PI * ambientLightColor;
-
-		#ifdef DOUBLE_SIDED
-
-			vLightBack += PI * ambientLightColor;
-
-		#endif
 
 
 		#if NUM_HEMI_LIGHTS > 0
 		#if NUM_HEMI_LIGHTS > 0
 
 

+ 5 - 4
src/renderers/shaders/ShaderLib.js

@@ -214,8 +214,9 @@ THREE.ShaderLib = {
 
 
 			"void main() {",
 			"void main() {",
 
 
-			"	vec3 outgoingLight = vec3( 0.0 );",	// outgoing light does not have an alpha, the surface does
+			"	vec3 outgoingLight = vec3( 0.0 );",
 			"	vec4 diffuseColor = vec4( diffuse, opacity );",
 			"	vec4 diffuseColor = vec4( diffuse, opacity );",
+			"	vec3 totalAmbientLight = PI * ambientLightColor;",
 			"	vec3 shadowMask = vec3( 1.0 );",
 			"	vec3 shadowMask = vec3( 1.0 );",
 
 
 				THREE.ShaderChunk[ "logdepthbuf_fragment" ],
 				THREE.ShaderChunk[ "logdepthbuf_fragment" ],
@@ -229,13 +230,13 @@ THREE.ShaderLib = {
 			"	#ifdef DOUBLE_SIDED",
 			"	#ifdef DOUBLE_SIDED",
 
 
 			"		if ( gl_FrontFacing )",
 			"		if ( gl_FrontFacing )",
-			"			outgoingLight += RECIPROCAL_PI * diffuseColor.rgb * ( vLightFront * shadowMask ) + emissive;",
+			"			outgoingLight += RECIPROCAL_PI * diffuseColor.rgb * ( vLightFront * shadowMask + totalAmbientLight ) + emissive;",
 			"		else",
 			"		else",
-			"			outgoingLight += RECIPROCAL_PI * diffuseColor.rgb * ( vLightBack * shadowMask ) + emissive;",
+			"			outgoingLight += RECIPROCAL_PI * diffuseColor.rgb * ( vLightBack * shadowMask + totalAmbientLight ) + emissive;",
 
 
 			"	#else",
 			"	#else",
 
 
-			"		outgoingLight += RECIPROCAL_PI * diffuseColor.rgb * ( vLightFront * shadowMask ) + emissive;",
+			"		outgoingLight += RECIPROCAL_PI * diffuseColor.rgb * ( vLightFront * shadowMask + totalAmbientLight ) + emissive;",
 
 
 			"	#endif",
 			"	#endif",