in src/Algorithm/fractals.c [538:549]
vec3 blinnPhong(vec3 color, vec3 p, vec3 n)
{
// Ambient colour based on background gradient
vec3 ambColor = clamp(mix(background2Color, background1Color, (sin(n.y * HALFPI) + 1.0) * 0.5), 0.0, 1.0);
ambColor = mix(vec3(ambientColor.x), ambColor, ambientColor.y);
vec3 halfLV = normalize(light - p);
float diffuse = max(dot(n, halfLV), 0.0);
float specular = pow(diffuse, specularExponent);
return ambColor * color + color * diffuse + specular * specularity;
}