Tomas Akenine-Möller, Chalmers University of Technology, Sweden.
In this presentation we will present the soft shadow volume algorithm that we have been doing research on for a couple of years. The standard hard shadow volume algorithm, presented by Crow in 1977, is augmented so that extended light sources, i.e., those having an area or volume, can be treated as well. Point light sources makes objects cast shadows that have an abrupt transition from "no shadow" to "full shadow". Area and volume light sources, on the other hand, makes the transition from "no shadow" to "full shadow" smooth. This is so, because different points on shadow receiving surfaces "sees" different amount of the light source.
In our algorithm, each silhouette edge as seen from the light source generates a penumbra wedge, and each such wedge is rendered to a visibility buffer (V-buffer). For a point inside a wedge, its soft shadow contribution is computed and accumulated in the V-buffer. To speed up the calculations, we use 4D textures to lookup coverage instead of doing expensive computations in the pixel shader. Using several optimizations, such as hand-coded assembler, a frame buffer blending technique, and simple culling, we can get frame rates of over 150 fps for simple objects, and for more complex objects, such as MD2 characters, we often get frame rates of 50-70 fps using standard graphics hardware. In addition to this, the 4D coverage textures also allows us to use colored light sources. For example, we have used textures of size 32x32 texels as light sources, and thus, each texel acts as a single square little light source. By using a video texture, i.e., a sequence of textures, even animated, textured light sources can be used.
Gallery: (click for large versions)
|
|
|
|
|
|
|
|
|