+ float ambient = 0.1;
+ float specularStrength = 0.5;
+ vec3 lightDir = normalize(fragPos - lightPos);
+ float diffuse = max(0, dot(-normal, lightDir));
+
+ vec3 viewDir = normalize(fragPos - viewPos);
+ vec3 reflectDir = reflect(-lightDir, normal);
+ float specular = pow(max(0, dot(viewDir, reflectDir)), 128);
+
+ vec4 lighting = (ambient + diffuse + specular) * lightColor;
+
+ FragColor = lighting * color;