<< Brown Games Group
Chapter 9 of GPU Gems
Effective Shadow Volume Rendering

Morgan McGuire

Brown University

[NVIDIA Page] [Images] [Demo & Code] [Credits] [Bibtex]

Introduction. A security guard's shadow precedes him into a vault-- enough advance warning to let the thief hide on the ceiling. Ready to pounce on an unwary space marine, the alien predator clings to a wall, concealed in the shadow of a nearby gun turret. Yellow and red shadows of ancient marbled gods flicker on the walls of a tomb when the knight.s torch and the druid.s staff illuminate the statues inside.

These are just a few vivid examples of how real-time shadows are used today in gaming. Real-time shadows are now required for new 3D games. Gamers are accustomed to the perceptual, strategic, and cinematic benefits of realistic lighting. Unlike other effects, shadows aren't rendered objects. Instead, they are areas of the screen that are darker than others are because they receive less light during illumination calculations. The hard part of adding shadows to a rendering engine is finding those areas in real time. This chapter describes how to use shadow volumes, the shadowing method used in id Software's Doom 3, to mark shadowed pixels in the stencil buffer. Once each pixel is classified as shadowed or illuminated, it's simple to modify the pixel program responsible for lighting in order to zero out the illumination contribution at shadowed pixels.

Some images from the chapter

   author = {Morgan McGuire},
   title = {Effective Shadow Volume Rendering},
   booktitle = {GPU Gems},
   editor = {Randima Fernando},
   publisher = {Addison Welsey},
   year = {2004},
   chapter = {9},
   pages = {137--166}


The large demo was written by Kevin Egan, Seth Block, and Morgan McGuire. The Doom 3 image is by id Software and is used with permission.