Browse Source

MeshPhongMaterial: Rescued specularMap.
@bhouston @WestLangley feel free to move this to a better place.

Mr.doob 9 years ago
parent
commit
4e9fa04be7

+ 2 - 1
src/renderers/shaders/ShaderChunk/lights_phong_fragment.glsl

@@ -2,9 +2,10 @@ BlinnPhongMaterial material;
 material.diffuseColor = diffuseColor.rgb;
 material.specularColor = specular;
 material.specularShininess = shininess;
+material.specularStrength = specularStrength;
 
 #ifdef METAL
 
 	material.diffuseColor = vec3( 0.0 );
 
-#endif
+#endif

+ 3 - 2
src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl

@@ -17,6 +17,7 @@ struct BlinnPhongMaterial {
 	vec3	diffuseColor;
 	vec3	specularColor;
 	float	specularShininess;
+	float	specularStrength;
 };
 
 void BlinnPhongMaterial_RE_DirectLight( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight directReflectedLight ) {
@@ -25,8 +26,8 @@ void BlinnPhongMaterial_RE_DirectLight( const in IncidentLight directLight, cons
 
 	directReflectedLight.diffuse += dotNL * directLight.color * BRDF_Diffuse_Lambert( material.diffuseColor );
 
-	directReflectedLight.specular += dotNL * directLight.color * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess );
-	
+	directReflectedLight.specular += dotNL * directLight.color * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;
+
 }
 
 #define Material_RE_DirectLight    BlinnPhongMaterial_RE_DirectLight