Welcome

Note: This page is work in progress. In the future some videos, demo applications and source code might be added, as time allows.

Welcome to the modest home of the Virtual Shadow Mapping family of shadow mapping algorithms. Here you can find some basic information on high-quality (alias free), fully dynamic, realtime shadowing of 3D scenes.

To get more information (including source code samples) please have a look at ShaderX 5 and ShaderX 6 for the Queried Virtual Shadow Mapping and Fitted Virtual Shadow Mapping algorithms respectively.

Conventional Shadow Mapping

Shadow mapping employs rasterization to solve the first hit visibility problem and uses this result to calculate the direct light shadowing of a scene.

Virtual Tiled Shadow Mapping (VTSM)

Virtual Tiled Shadow Mapping is the basic algorithm on which the smart (scene adaptive) virtual shadow map algorithms are based. It slices the shadow map into a regular grid of shdow map tiles, and creates the shadow map for each tile, which it then uses immediately to shadow its part of the scene, reusing the video memory used for the shadow map for each tile (this means that the full shadow map at no time resides completely in memory, i.e. it exists only virtually).

Queried Virtual Shadow Mapping (QVSM)

Queried Virtual Shadow Mapping uses the occlusion query counter mechanism of the GPU to pass back information about the the number of on-screen pixels changed by applying a shadow map tile (see above) onto the scene to the CPU, which can then decide based on this information whether to refine the shadow map tile further or not.

Fitted Virtual Shadow Mapping (FVSM)

In Fitted Virtual Shadow Mapping the required resolution for each shadow map texel is discerned beforehand, by creating a shadow map tile mapping map from the eye-point whose information is then transformed into light space and used to decide how far to refine the shadow map in which area.

Comparison Table of Convetional and Virtual Shadow Mapping

 

Conventional SM

VTSM

QVSM

FVSM

Aliasing artifact free ?

no

yes

yes

yes

Implementation effort

small

moderate

medium

relatively high

Adaptive to scene ?

no

no

yes

yes

Shadow map filtering ?

yes

yes

no

yes

Uniform shadow quality reduction for increased speed  ?

N/A

yes

no

yes

Performance at maximum shadow quality

N/A (high quality shadows not possible)

very bad

good