I am experiencing annoying banding artefacts on monochromic surfaces. I narrowed down the cause to the attenuation over distance to the light source. At least I think it's that, since all ambient, diffuse, specular and any other rendertarget, I made sure to be floating point, so I shouldn't loose precision. Playing around with my simple phong shading also had no effect on the banding artefacts...
This is how I calculate the attenuation, L is the not yet normalized light vector
return 1 / (factor * max(dot(L, L), 0.0f) + 1) - g_LightCutoff;
I posted since I need some inspiration on where else to look for the possible causes, since I do want to have at least some sort of attenuation for god ol' physics sake (not that my attenuation calculation has anything to do with the physics I got tought at university )...
In a "real" scene with more interesting texturing, the banding is rather hard or even impossible to detect. It is more a conceptual matter of not having those artefacts.
Here are some images to show you what I mean. If you look closely you can see the banding on the floor and the green wall:
Attenuation and fall off from the spot light enabled
Attenuation enabled, but no fall off from the spot light
Only the phong shading