Original Post
hello all, I have this question about VSM. It's algorithm goes like this: see line : float d = (Moments.x - pixdepth); this means that further the pixel is the stronger shadow I get... with this approach I get lighter shadow in areas closer to occluder and darker ones further from occluder. This is just wrong as I would like to have constant shadow. How can I achieve constant shadow area ?
float ChebyshevUpperBound(vec2 Moments, float pixdepth, float g_MinVariance)
{
float p = float(pixdepth <= Moments.x);
float Variance = Moments.y - (Moments.x*Moments.x);
Variance = max(Variance, g_MinVariance);
float d = (Moments.x - pixdepth);
float p_max = Variance / (Variance + d * d);
return max(p, p_max);
}