vistit the homepage Vienna University of TechnologyTECHNISCHE UNIVERSITÄT WIEN
Institut für Computergraphik und Algorithmen
Arbeitsbereich Computergraphik

Home  -   People  -   Courses  -   Research  -   Events  -   Resources  -   Jobs

 Light Space Perspective Shadow Maps

Michael Wimmer, Daniel Scherzer, Werner Purgathofer.
Eurographics Symposium on Rendering 2004.
[Draft version, last updated: June 8, 2004]
[Revised version, last updated: June 10, 2005]
Abstract
In this paper, we present a new shadow mapping technique that improves the quality of perspective and uniform shadow maps. Our technique uses a perspective transform specified in light space which allows treating all lights as directional lights and does not change the direction of the light sources. This gives all the benefits of the perspective mapping but avoids the problems inherent in perspective shadow mapping like singularities in post-perspective space, missed shadow casters etc. Furthermore, we show that both uniform and perspective shadow maps distribute the perspective aliasing error that occurs in shadow mapping unequally over the available z-range. We therefore propose a transform that equalizes this error and gives equally pleasing results for near and far viewing distances. Our method is simple to implement, requires no scene analysis and is therefore as fast as uniform shadow mapping.

Keywords: shadow maps, aliasing, real-time rendering

Pictures
Uniform (left), light space perspective (middle) and perspective (right) shadow maps. The second row shows images rendered from the warped light views, which also include the eye frusta (shaded transparently). Uniform shadow maps capture the distant shadow best, perspective shadow maps the near shadow, and LiSPSM work well for both. Models courtesy of www.3dcafe.com.

UNIFORM LiSPSM PSM

More samples

Source Code

A sample-implementation in C using GLUT for Windows/Linux is available for download
Readme of the program for a quick overview
Note: code last updated at 14. Oct. 2004
Changes: solved problem with certain special cases with a low sun setting. the solution is to use the "body vector" of the intersection body B as up vector for the shadow matrix calculation.

Source Code 2

A sample-implementation in C++ using GLUT OGLSL for Windows/Linux is available for download
Note: code last updated at 9. Mar. 2006

Video
Walkthrough through our test-scenes (46MB, 512x512, MPG-1)

More Pictures and Videos
More Pictures and Videos

Computer Graphics Group / Research / / Light Space Perspective Shadow Maps
Maintained by Daniel Scherzer.
Last update on 30. May 06.
Comments to scherzer (at) cg.tuwien.ac.at.
get back to the index

Favoritenstrasse 9-11 / E186, A-1040 Wien, Austria
Tel. +43 (1) 58801-18602, Fax +43 (1) 58801-18698
www.cg.tuwien.ac.at