| Tomas Akenine-MöllerThe shadow volume algorithm is a popular technique for real-time
 shadow generation using graphics hardware. Its major disadvantage is
  that it is inherently fillrate-limited, as the performance is
  inversely proportional to the area of the projected shadow volumes.
  We present a new algorithm that reduces
  the shadow volume rasterization work significantly. With our
  algorithm, the amount of per-pixel processing becomes proportional
  to the screen-space length of the visible shadow boundary instead of
  the projected area. The first stage of the algorithm finds 8x8
  pixel tiles, whose 3D bounding boxes are either completely inside or
  outside the shadow volume. After that, the second stage performs
  per-pixel computations only for the potential shadow boundary tiles.
  We outline a two-pass implementation, and also describe an
  efficient single-pass hardware architecture, in which the two stages are
  separated using a delay stream. The only modification required in
  applications is a new pair of calls for marking the
  beginning and end of a shadow volume. In our test scenes, the
  algorithm processes up to 11.5 times fewer pixels
  compared to current state-of-the-art methods, while reducing the
  external video memory bandwidth by a factor of up
  to 17.5. |