I guess you don't really need to be math expert to solve the aliasing effect IMHO
The most commen reason why you get aliasing for the shadow mapping algorithm are the following:
- The resolution of the shadow map.
- A limited numerical precision used when performing the comparaison between depth value from shadow map and the depth value for the fragment's distance to the light.
The first element can be easily solved when using a 1024X1024 shadow map which can store depth values in a 32-bit floating point.
This was already known and is also already used to partly overcome the aliasing effect.
The second element is more complex off course but I've done some look-ups and it seems that the following aspects are the most salutary:
1) Distribution of depth values in the light's viewing frustum.
2) Adjusting the viewing frustrum of the light source so that only the visible areas of the scene are covered by the viewing frustrum of the light.
3) PCF, adjacent bilinear filtering and maybe even a jitter value.
Number 3 is easy to enhance and already used but numbers 1 and 2 are far more complex in theory but can be achieved with a rather small amount of code at the practical side AFAIK
Btw, another interesting article about AA when using shadow maps
:
http://files.filefront.com/Serverlisting+01rar/;9729203;/fileinfo.htmlCheers
Frazzle