I'm implementing shadow mapping and noticed that the acne not only depends on the angle between the normal and the light (the distance to the contours in the shadow map), but also on the distance to the light.
My guess is that this is the result of the floating point precision that decreases with higher numbers. To fight this I adjust the bias like this:
bias *= (1.0+DistanceToLight/500.0);
This works fine, but I worry about it because I have not seen any paper/tutorial doing something similar. And if it is the result of the limited precision it probably has to be another (logarithmic?) function.
Does this makes sense or am I doing something wrong?