Repaired diffuse and specular calculations