c3 view = normalize(-rd);
   vec3 heading = normalize(view + lightDir);
   float spec = pow(max(0.0, dot(heading, norm)), specularHardness);
   
   float fresnel = 0.0;
   if (reflections)
   {
      fresnel = pow(1.0 - dot(view, norm), 8.0);
	   fresnel = mix(.01, 1.0, min(1.0, fresnel));
	}
   
   light = clamp((diffuse * light) + (spec * specular * lightColour), 0.0, 1.0) * (1.0-fresnel);
   if (fresnel > 0.01)
   {
      vec3 refrd = reflect(rd, norm);
      light += Sky(refrd) * fresnel;