Real-time anti-aliased shadows for rigid objects
Existing real-time shadow algorithms generally require two rendering passes. One pass is used to create the shadow representation in some form, and the second pass is used to render the actual scene with shadows included. Extra passes may be required to render the scene with lighting first. Since many objects are rigid, these objects may benefit from alternative shadow algorithms. In this article we present a real-time shadowing algorithm for rigid objects similar to the algorithm used for raytracing. The combination of distance fields and ray casting allows the algorithm to be implemented in one pass on GPUs. The distance representation also allows the shadow edge to be softened. The algorithm is exceptionally efficient for self shadowing. We also show how this shadowing algorithm can be combined with existing shadowing algorithms.