Efficient Shadows from Sampled Environment Maps

Aner Ben-Artzi and Ravi Ramamoorthi
Columbia University

Maneesh Agrawala
Microsoft Research

This paper appears in issue Volume 11, Number 1.
Purchase this issue from the akpeters.com web site.

Abstract

This paper addresses the problem of efficiently calculating shadows from environment maps in the context of ray tracing. Since accurate rendering of shadows from environment maps requires hundreds of lights, the expensive computation is determining visibility from each pixel to each light direction. We show that coherence in both spatial and angular domains can be used to reduce the number of shadow rays that need to be traced. Specifically, we use a coarse-to-fine evaluation of the image, predicting visibility by reusing visibility calculations from four nearby pixels that have already been evaluated. This simple method allows us to explicitely mark regions of uncertainty in the prediction. By only tracing rays in these and neighboring directions, we are able to reduce the number of shadow rays traced by up to a factor of 20 while maintaining error rates below 0.01%. For many scenes, our algorithm can add shadowing from hundreds of lights at only twice the cost of rendering without shadows. Sample source code is available online.

Author Information

Aner Ben-Artzi, Columbia University, Department of Computer Science, 450 Computer Science Building, 500 W 120th St., New York, NY 10027 aner@cs.columbia.edu

Ravi Ramamoorthi, Columbia University, Department of Computer Science, 450 Computer Science Building, 500 W 120th St., New York, NY 10027 ravir@cs.columbia.edu

Maneesh Agrawala, 615 Soda Hall #1776, Berkeley, CA 94705-1776 maneesh@graphics.stanford.edu

Additional Materials

To come.

BibTeX Entry

@article{BenArtziEtAl06,
  author = "Aner Ben-Artzi and Ravi Ramamoorthi and Maneesh Agrawala",
  title = "Efficient Shadows from Sampled Environment Maps",
  journal = "journal of graphics tools",
  volume = "11",
  number = "1",
  pages = "13-36",
  year = "2006",
}