I’m possibly wrong but… I suppose the problem can be in the vertex shader:
#ifdef MATERIAL_COLORS
AmbientSum = (m_Ambient * g_AmbientLightColor).rgb;
DiffuseSum = m_Diffuse * lightColor;
SpecularSum = (m_Specular * lightColor).rgb;
#else
AmbientSum = vec3(0.2, 0.2, 0.2) * g_AmbientLightColor.rgb; // Default: ambient color is dark gray
DiffuseSum = lightColor;
SpecularSum = vec3(0.0);
#endif
When SpecularSum = 0, so it becomes nothing. And in the fragment shader:
vec4 SpecularSum2 = vec4(SpecularSum, 1.0);
gl_FragColor.rgb = AmbientSum * diffuseColor.rgb +
DiffuseSum.rgb * diffuseColor.rgb * vec3(light.x) +
SpecularSum2.rgb * specularColor.rgb * vec3(light.y);
So, specular effect becomes 0 in the fragment shader. I would suggest to have always SpecularSum = (m_Specular * lightColor).rgb; .