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 |