Real-time Soft Shadows in a Game Engine Kasper Fauerby (
[email protected]) Carsten Kjær (
[email protected]) 14th December 2003 Abstract In this thesis we explore the possibilities of using various real-time shadow techniques in a 3d game engine. We describe a technique known as the stencil shadow algorithm and show how it can be extended to produce soft shadows from volume light sources using penumbra wedges. The penumbra wedge technique allows for real-time soft shadows in relatively simple scenes. We present a novel coverage calculation technique for spherical light sources, which significantly reduces the amount of pixel shader instructions and the amount of texture memory required for look-up tables. We identify a performance bottleneck in the algorithm which prevents the achievement of real-time performance in complex scenes, and we present a new version of the algorithm that eliminates this bottleneck for a limited class of shadow casting objects. We have implemented both versions of the soft shadow algorithm in our game engine, and we compare their respective performance on different hard- ware. Some implementation details are given, including the CG source code for the vertex and pixel shaders we have used. We discuss how to effectively manage a large number of shadow volumes in a dynamic game scene where both lights and shadow casters move around freely. Finally, we give an overview of some of the limitations in graphical hardware anno 2003 that introduce unnessesary work loads on the algorithm, thus degrading performance. Contents 1 Introduction 3 2 Lighting 7 2.1 Light models .