Realistic Soft Shadows by Penumbra-Wedges Blending

Vincent Forest, Loïc Barthe and Mathias Paulin

Eurographics Graphics Hardware 2006, Vienna, Austria.

[bibtex] [video1] [video2] [video3] [video4]


Real-time shadow generation techniques try to provide shadows with realistic penumbrae. However, most techniques are whether non-physically based or too simplified to produce convicing results. The penumbra-wedges algorithm is a physical approach based on the assumption that penumbrae are non-overlapping. In this paper, we propose an algorithm taking the advantage of the penumbra-wedges and solving the "non-overlapping" limitation. We first store the light occlusion position. Then we use this information to detect the areas where penumbrae are overlapping and we perform a realistic penumbra blending.

Half-life² scene 01 Half-life² scene 02

Our algorithm applied on a scene composed of 6662 polygons. This scene is based on the models and materials of Half-life². Objects and textures copyright Valve Corporation: used with permission.

Penumbra-wedges algorithm Penumbrae blending by a probabilistic approach Our algorithm 1024-sample shadows

Simple penumbrae blending comparison - From left to right: penumbra-wedges algorithm [SIG03], penumbrae blending by the probabilistic approach [GH03], our algorithm and a reference image using 1024-sample shadows.

Penumbra-wedges algorithm Our algorithm 1024-sample shadows

Complex penumbrae blending comparison - From left to right: penumbra-wedges algorithm, our algorithm and a reference image using 1024-sample shadows.


Accurate Shadows by Depth Complexity Sampling

Vincent Forest, Loïc Barthe and Mathias Paulin

Eurographics 2008, Crete, Greece

[bibtex] [video]


The accurate generation of soft shadows is a particularly computationally intensive task. In order to reduce rendering time, most real-time and offline applications decorrelate the generation of shadows from the computation of lighting. In addition to such approximations, they generate shadows using some restrictive assumptions only correct in very specific cases, leading to penumbra over-estimation or light-leaking artifacts. In this paper we present an algorithm that produces soft shadows without exhibiting the previous drawbacks. Using a new efficient evaluation of the number of occluders between two points (i.e. the depth complexity) we either modulate direct lighting or numerically solve the rendering equation for direct illumination. Our approach approximates shadows cast by semi-opaque occluders and naturally handles lights with spatially varying luminance. Furthermore, depending on the desired performance and quality, the resulting shadows are either very close to, or as accurate as, a ray-traced reference. As a result, the presented method is well suited to many domains, ranging from quality-sensitive to performance-critical applications.

DCS japan DCS japan DCS japan

High quality shadows produced by our algorithm. The images are computed on a traditional Japanese scene composed of 501,650 visible triangles, semi-opaque occluders and 4 omni-directional area lights.

DCS japan2 DCS kitchen DCS doom

Three test scenes. From left to right: traditionnal Japanese scene (501,650 visible polygons - semi-opaque occluders - 4 omni-directional lights); kitchen scene (146,161 visible triangles - semi-opaque occluders - 2 omni-directional lights); game scene including animated skinned characters (17,693 visible polygons - 2 omni-directional lights).

Penumbra-wedges algorithm Depth Complexity Sampling Ray-traced reference

Shadow comparison - Comparison of the shadows generated by the penumbra wedge algorithm (left), our Depth Complexity Sampling (middle) and a Ray-Traced reference (right). In addition of the overlapping penumbrae artifact, the penumbra wedge algorithm produces an incorrect lighting due to the single light sample direct lighting computation.


Soft Textured Shadow Volume

Vincent Forest, Loïc Barthe, Gaël Guennebaud and Mathias Paulin

Eurographics - Symposium on Rendering 2009, Girona, Spain

[bibtex] [video 1] [video 2]


Efficiently computing robust soft shadows is a challenging and time consuming task. On the one hand, the quality of image-based shadows is inherently limited by the discrete property of their framework. On the other hand, object-based algorithms do not exhibit such discretization issues but they can only efficiently deal with triangles having a constant transmittance factor. This paper addresses this limitation. We propose a general algorithm for the computation of robust and accurate soft shadows for triangles with a spatially varying transmittance. We then show how this technique can be efficiently included into object-based soft shadow algorithms. This results in unified object-based frameworks for computing robust direct shadows for both standard and perforated triangles in fully animated scenes.

STSV factory 0 STSV factory 1 STSV factory 2

Illustration of shadows cast by perforated triangles (fences) using our soft textured shadow volume algorithm.

STSV factory STSV Greece STSV HL2

Three test scenes. From left to right: Factory: 582,510 triangles, 14 perforated triangles and 4 omni-directional lights; Greece: 1,396,078 triangles, 26,150 perforated triangles and 3 omni-directional lights; HL2: 84,712 triangles, 4,002 perforated triangles and 2 omni-directional lights.


Shadow comparison - Comparison between the shadows computed by the Penumbra Wedge+Soft Textured Shadow Volume algorithm (left), the Depth Complexity Sampling+Soft Textured Shadow Volume technique (middle) and a Ray Traced reference [Mental Ray] computed onto the fences represented by meshes (right).


Shadow comparison - Comparison between the shadows cast by a fence represented by perforated triangles (2 perforated triangles, Soft textured shadow volume: 90 FPS) (left) and by its corresponding mesh (233,358 triangles, Depth Complexity Sampling 16: 3.3 FPS) (right).