Fix shader specular lighting (again)

pull/541/head
Capostrophic 6 years ago
parent e2ed90e67b
commit 02242ce66b

@ -74,9 +74,10 @@ vec4 doLighting(vec3 viewPos, vec3 viewNormal, vec4 vertexColor, out vec3 shadow
vec3 getSpecular(vec3 viewNormal, vec3 viewDirection, float shininess, vec3 matSpec)
{
vec3 lightDir = normalize(gl_LightSource[0].position.xyz);
float NdotL = max(dot(viewNormal, lightDir), 0.0);
if (NdotL < 0.0)
float NdotL = dot(viewNormal, lightDir);
if (NdotL <= 0.0)
return vec3(0.,0.,0.);
vec3 halfVec = normalize(lightDir - viewDirection);
return pow(max(dot(viewNormal, halfVec), 0.0), shininess) * gl_LightSource[0].specular.xyz * matSpec;
float NdotH = dot(viewNormal, halfVec);
return pow(max(NdotH, 0.0), max(1e-4, shininess)) * gl_LightSource[0].specular.xyz * matSpec;
}

Loading…
Cancel
Save