Frustum-Traced Raster Shadows: Revisiting Irregular Z-Buffers
Our I3D 2015 paper
targets real-time subpixel accurate hard shadows. Highlights include:
- Avoids spatial and temporal aliasing common in shadow maps.
- Only needs a single world-space epsilon, equivalent to the epsilon used in ray tracing to avoid self-shadows.
- Under 20 ms for 32 sample per pixel shadows (and < 10 ms for 1 sample per pixel) on multi-million polygon game-quality scenes.
- Based on a fast formulation of irregular z-buffers.
- Finds a duality between shadow map aliasing and irregular z-buffer performance (i.e., cascades improve performance, not quality).
- No assumptions on input geometry. (Performance reported on triangle soup, with no frustum culling or any geometric annotation.)
Our project explicitly targets only hard shadows. We expect screen-space blurs or
PCSS style soft shadow
approximations could be used with our improved input signal rather than a shadow map. Future work will
explicitly explore more accurate soft shadows.
Currently, we provide only a binary demo. Source code may follow at a future date. The executable download
should have everything you need to run the demo on a number of fairly simple scenes. Additional, more complex
models are available as separate downloads:
- Windows executable (28.2 MB)
- Note: Currently broken on Windows 10; see requirements below for more details.
- Additional scenes:
Our algorithm has been tested on NVIDIA and AMD hardware. However due to focusing optimization efforts on
our hardware, this demo requires an NVIDIA GPU. More explicit requirements:
Running the Demo
Details for controls and caveats are in the demo's README