1 Introduction Occlusion culling and z -fail for soft shadow volume algorithms Ulf Assarsson, Tomas Akenine-Möller Chalmers University of Technology, Department of Computer Engineering, 412 63 Gothenburg, Sweden E-mail: tompa@ce.chalmers.se Published online: 12 October 2004 c Springer-Verlag 2004 This paper presents a significant improve- ment of our previously proposed soft shadow volume algorithm for simulating soft shad- ows. By restructuring the algorithm, we can considerably simplify the computations, introduce efficient occlusion culling with speedups of 3–4 times, thus approaching real-time performance. We can also general- ize the algorithm to produce correct shadows even when the eye is inside a shadowed re- gion (using z -fail). We present and evaluate a three pass implementation of the restruc- tured algorithm for near real-time render- ing of soft shadows on a computer with a commodity graphics accelerator. How- ever, preferably the rendering of the wedges should be implemented in hardware, and for this we suggest and evaluate a single pass algorithm. Key words: Soft shadows – Graphics hard- ware – Shadow volumes Rendering realistic shadows in real-time is highly desirable, both for increasing the level of realism, and because shadows give important spatial clues. For real-time purposes, it is common to approxi- mate all light sources as point lights, i.e., with an infinitely small extension. This gives rise to so-called hard shadows, where the transition from no shadow to full shadow is instant. However, in reality, all light sources have some extension (area or volume), which gives a smooth transition, called the penum- bra region, from no shadow to full shadow, called the umbra region. Several soft shadow algorithms exist, but most of them suffer from either (1) not being suit- able for real-time rendering, or (2) only being able to handle planar shadow receivers, or (3) suffer from sampling artifacts. Our recently presented penumbra wedge algorithm [1] can handle all of the following goals: 1. The softness of the penumbra should increase lin- early with distance from the occluder, starting at zero at the occluder [12]. 2. The umbra region should diminish in size with in- creasing light source size. 3. Typical sampling artifacts should be avoided. Of- ten a number of super-positioned hard shadows can be discerned [13]. The result should be visu- ally smooth [12]. 4. The algorithm should be amenable for hardware implementation giving real-time performance (and interactive rates for a software implementa- tion). 5. It should be possible to cast soft shadows on ar- bitrary surfaces, and work for dynamic scenes as well. Our penumbra wedge algorithm is based on Crow’s shadow volume (SV) algorithm [5], described in Sect. 2. We do not require the soft shadows to be totally physically correct, but rather they should be perceptually pleasing without obvious artifacts. Al- though the algorithm is mainly targeted for spherical or circular light sources, it can approximate the soft shadow generated by any convex light source. In this paper, we present some speedup techniques that give near real-time performance, and generaliza- tions to our previously presented penumbra wedge algorithm. In particular, we examine the algorithm from a hardware implementation perspective. The contributions of this paper are as follows: (1) We present a restructured version of our original algo- rithm that significantly reduces the number of calcu- The Visual Computer (2004) 20:601–612 Digital Object Identifier (DOI) 10.1007/s00371-004-0254-2