Moment Shadow Mapping

In proceedings of Proceedings of the 19th Meeting of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games, San Francisco, California, pages 7-14, ACM, 2015
 

Abstract

We present moment shadow mapping, a novel technique for fast, filtered hard shadows. Like variance shadow mapping it allows for the application of all kinds of efficient texture filtering and antialiasing to its moment shadow map. However it is designed to provide a substantially higher quality. Moment shadow maps store four moments of the depth within the filter kernel. Using this information, our efficient algorithm computes the sharpest possible lower bound as approximation to the shadow intensity. The choice to compute such a bound using four moments is based upon an automated evaluation of thousands of alternatives and thus known to be optimal. To reduce memory and bandwidth requirements we present an optimized quantization scheme to allow 16-bit quantization of moment shadow maps. Our evaluation demonstrates that moment shadow mapping produces high quality results with a single shadow map sample per fragment using 64 bits per shadow map texel.

Keywords: automated evaluation, filtered hard shadows, moment problem, shadow mapping, variance shadow mapping

Errata

Due to an illness there has been little time to incorporate the excellent feedback by the reviewers into the camera-ready version of the paper. This has led to the following minor mistakes:

  • Page 5, first sentence of Section 4.1: It is stated that the upcoming algorithm solves Problem 1 for I=[0,1] but it should be I=IR.
  • Page 6, second line of continuous text: The paper states that 1-w_3 has to be returned, but it should be 1-w_1.

For your convenience these mistakes are corrected in the author's version available here.

Slides

Besides the author's version of the paper and all accompanying supplementary material (including benchmark data that is not available in the ACM digital library) you can also download the slides from the presentation at i3D 2015. To view them properly you need Powerpoint 2010 or newer or the free Powerpoint Viewer. Additionally you need an h264 video for Windows codec such as x264vfw.

The supplementary video is also available on YouTube.

Images

Download Paper

Download Paper

Additional Material

Bibtex

@INPROCEEDINGS{peters-2015-msm,
     author = {Peters, Christoph and Klein, Reinhard},
      pages = {7--14},
      title = {Moment Shadow Mapping},
  booktitle = {Proceedings of the 19th Meeting of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games},
     series = {i3D '15},
       year = {2015},
  publisher = {ACM},
   location = {San Francisco, California},
    address = {New York, NY, USA},
   keywords = {automated evaluation, filtered hard shadows, moment problem, shadow mapping, variance shadow mapping},
   abstract = {We present moment shadow mapping, a novel technique for fast, filtered hard shadows. Like variance
               shadow mapping it allows for the application of all kinds of efficient texture filtering and
               antialiasing to its moment shadow map. However it is designed to provide a substantially higher
               quality. Moment shadow maps store four moments of the depth within the filter kernel. Using this
               information, our efficient algorithm computes the sharpest possible lower bound as approximation to
               the shadow intensity. The choice to compute such a bound using four moments is based upon an
               automated evaluation of thousands of alternatives and thus known to be optimal. To reduce memory and
               bandwidth requirements we present an optimized quantization scheme to allow 16-bit quantization of
               moment shadow maps. Our evaluation demonstrates that moment shadow mapping produces high quality
               results with a single shadow map sample per fragment using 64 bits per shadow map texel.},
       isbn = {978-1-4503-3392-4},
        url = {http://doi.acm.org/10.1145/2699276.2699277},
        doi = {10.1145/2699276.2699277}
}