Soft Textured Shadow Volume

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

Eurographics - Symposium on Rendering 2009, Girona, Spain

[pdf] [bibtex] [video 1] [video 2] [talk]

Abstract

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.

PWedge+STSV DCS+STSV RT

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).

STSV DCS

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).

top