render: phong: Zero out specular factor when material shininess is 0.
authorDavid Thompson <dthompson2@worcester.edu>
Wed, 6 Nov 2019 01:29:13 +0000 (20:29 -0500)
committerDavid Thompson <dthompson2@worcester.edu>
Wed, 6 Nov 2019 01:29:13 +0000 (20:29 -0500)
chickadee/render/phong.scm

index a07f682..886e910 100644 (file)
@@ -192,7 +192,10 @@ void main() {
     float diffuseFactor = max(dot(lightDir, fragNorm), 0.0);
     vec3 diffuseColor = diffuseFactor * baseDiffuseColor * material.diffuse;
     vec3 reflectDir = reflect(-lightDir, fragNorm);
-    float specularFactor = pow(max(dot(lightDir, reflectDir), 0.0), material.shininess);
+    float specularFactor = 0;
+    if(material.shininess > 0) {
+        specularFactor = pow(max(dot(lightDir, reflectDir), 0.0), material.shininess);
+    }
     vec3 specularColor = specularFactor * baseSpecularColor * material.specular;
     gl_FragColor = vec4(ambientColor + diffuseColor + specularColor, 1.0);
 }