Variance Shadow Mapping

An different approach to store the shadow map to gain softer shadows with less artifacts. The abstracts says the following:

“Shadow maps are a widely used shadowing technique in real time graphics. One major drawback of their use is that they cannot be filtered in the same way as color textures, typically leading to severe aliasing. This paper introduces variance shadow maps, a new real time shadowing algorithm. Instead of storing a single depth value, we store the mean and mean squared of a distribution of depths, from which we can efficiently compute the variance over any filter region. Using the variance, we derive an upper bound on the fraction of a shaded fragment that is occluded. We show that this bound often provides a good approximation to the true occlusion, and can be used as an approximate value for rendering. Our algorithm is simple to implement on current graphics processors and solves the problem of shadow map aliasing with minimal additional storage and computation.”

Variance Shadow Mapping

The original paper and demo with source code:
http://www.punkuser.net/vsm/

Nvidias implementation and description of the algorithm (source code for DirectX10 can also be found on the same page):
http://developer.download.nvidia.com/SDK/10.5/direct3d/Source/
VarianceShadowMapping/Doc/VarianceShadowMapping.pdf

Some more info from the author:
http://forum.beyond3d.com/showthread.php?t=40805

Please share:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Current
  • LinkedIn
  • Live
  • MySpace
  • Netvibes
  • StumbleUpon
  • Twitter
  • Reddit
  • Technorati
  • Yahoo! Bookmarks

One thought on “Variance Shadow Mapping

  1. Seb

    You should also add a link to exponential shadow mapping which are used in some AAA game today. (I know developers of a unveil AAA game)

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>