A hierarchical shadow volume algorithm

Timo Aila, Tomas Akenine-Möller
2004 Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware - HWWS '04  
Figure 1 : From left to right: Correct shadows, low-resolution shadows (sample per 8 × 8 pixel tile), tiles that may contain a shadow boundary (green/light gray), and an image showing accurately processed boundary tiles (darker gray) and data copied from the low-resolution shadows (lighter gray). If a tile contains a shadow boundary (3rd image), the corresponding low-resolution shadow data is more or less random. This is corrected by applying per-pixel rasterization to boundary tiles. Abstract
more » ... he 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 screenspace length of the visible shadow boundary instead of the projected area. The first stage of the algorithm finds 8 × 8 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 twopass 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.1.
doi:10.1145/1058129.1058132 fatcat:3up7tnwo7zcddiayxvzimh7efe