I'm currently preparing to implement variance shadow mapping based on this article. However, one point it makes concerns me:

Rendering only casters (and not receivers) into the variance shadow map is incorrect! For the interpolation to work properly, the receiving surface must be represented in the depth distribution. If it is not, shadow penumbrae will be improperly sized and fail to fade smoothly from light to dark.

This means that the naive method of rendering an object that does not cast a shadow, but can recieve shadows from other objects - simply skip rendering it into the shadow map - will not work. How else can this be accomplished?

  • $\begingroup$ I reposted this question from SO where it went unanswered. I don't know if it's a good thing to do but it seemed like a good idea since I think it's a good fit here. $\endgroup$
    – orost
    Aug 10, 2015 at 20:41
  • $\begingroup$ There is discussion and guidance about SE cross posting on Meta Stack Exchange. Despite it saying not to cross post, I think it is a good thing that you have posted here and the question clearly fits here. The meta post mentions migrating rather than cross posting, and alternatively deleting the original post (since it is too late to migrate in this case, now that you have posted). $\endgroup$ Aug 13, 2015 at 11:21

1 Answer 1


Not rendering a shadow caster could work but your mileage can vary. When variance is "large" a VSM is not able to exactly localize the occluders, which causes light leaks. Not rendering a large receiver (let say the floor of a room, a road, etc..) can dramatically increase the variance of the depth samples within a region of the shadow map that include the missing receiver(s) (e.g. the receiver depth is replaced by something much more distant, like the far plane).

On the other hand, if you skip rendering in the VSM some little object that is unlikely to ever be the most distant receiver in the scene, then you have some hope that things will work out (compatibly with the limitations of variance shadow maps). If you can afford the cost I suggest you to use something more robust like exponential variance shadow maps (see this work: https://software.intel.com/en-us/articles/sample-distribution-shadow-maps).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.