AngelCode.com > Reference Database

Graphics/Illumination/Shadow maps

.NET  7
Artificial Intelligence  7
  Group behavior  2
  Path finding  16
    A* and its derivatives  6
  Pattern recognition  1
  Steering behavior  2
  World interaction  4
Audio  0
  DirectX  8
  DSP  5
  Ogg Vorbis  2
  OpenAL  1
  Windows  1
Computer Science  2
  Algorithms & data structures  12
    BSP trees  8
  Encryption  12
  Randomness & noise  11
Data storage  4
  File formats  14
    Image  10
  Resource files  2
Game Development  20
  Cheat & crack prevention  10
  Input  3
  Timing  4
Graphics  27
  Character animation  6
  DirectX  24
    Optimizing  8
  Illumination  5
    Deferred lighting  7
    Global illumination  8
    Lighting models  6
    Screen Space Ambient Occlusion  4
    Shadow maps  18
    Shadow volumes  15
  Image processing & synthesizing  19
  Non-polygonal rendering  3
    Ray tracing  3
  OpenGL  12
  Particle systems  7
  Shaders  32
  Simulation  4
    Cloth  2
    Clouds & sky light  7
    Fire & smoke  4
    Liquids  12
  Surfaces & Meshes  7
    Implicit surfaces  6
    Parametric curves & surfaces  7
    Polygon reduction & LOD  3
    Subdivision surfaces  7
  Terrain  7
    Continuous LOD  12
    Generating data  4
    Voxel engines  2
  Text  6
  Transparency  1
  Visibility determination  16
Languages  5
  Assembler  20
  C & C++  25
    C++ exceptions  5
    Calling conventions  11
    Debugging  5
    Memory management  7
    Optimizations  6
  C#  4
  Creating your own language  13
    Garbage collection  7
  D  2
  Java  4
  Scripting  3
    JScript & VBScript  1
    Lua  6
    Other languages  8
    Perl  2
    Python  5
    Ruby  4
Mathematics  3
  Fourier transform  4
  Geometry  6
  Linear algebra, vectors & matrices  9
  Wavelet transform  5
Object design  3
Physics  5
  Body dynamics  8
  Collision detection  10
    Polytopes  6
Platform  2
  Linux  1
  Mac  2
  Windows  13
    COM, ATL & WTL  8
    Dynamically loaded libraries  6
    Hooks  5
    Input  2
    Networking  6
    Screensavers  3
    Services  1
    Shell  2
    Small executables  3
    Windows  8
Web Technologies  8

Shadows
Michael Skinner
This article gives a basic overview of several shadow algorithms including shadow volumes and shadow maps.

Hardware Shadow Mapping
before March 2002 - Cass Everitt, Ashu Rege, Cem Cebenoyan
This article describes how to implement Hardware Shadow Mapping with both OpenGL and Direct3D. It also goes through the problems of shadow mapping.

Perspective Shadow Maps
July 2002 - Marc Stamminger, George Drettakis
This article discusses perspective shadow maps and how they can be implemented on current hardware capable of normal shadow maps. Perspective shadow maps decreases the aliasing artifacts by increasing resolution closer to the camera.

Ease Wrapper
A free open source library that wraps both OpenGL and DirectX under one common interface. Many interesting tutorials, including shadow mapping with shaders.

Anti-aliasing and Continuity with Trapezoidal Shadow Maps
Nov, 2004 - Tobias Martin, Tiow-Seng Tan
Improved apparent shadow map resolution, by giving nearby pixels a larger piece of the shadow map texture. Warning, a patent has been filed for this algorithm. Though, the University that owns that patent may not require much to licence it.

Projected Spotlight and Dynamic Shadow Textures on Radeon
A demo with source code from ATI showing how a single pass shadow mapping is implemented in Direct3D. The shadow texture in this example is a simple black on white projection of the object, thus no self shadowing is available.

Shadow Techniques for Relief Texture Mapped Objects
Oct, 2005 - Alan Watt, Fabio Policarpo
Excerpt from the book Advanced Game Development with Programmable Graphics Hardware.

Variance Shadow Maps
Apr, 2006 - William Donnelly, Andrew Lauritzen
This article shows a technique for improving the aliasing artifacts of shadowmaps with a very small performance hit.

Percentage-Closer Soft Shadows
Randima Fernando
Shows how to implement soft shadows using shadow maps.

Parallel-Split Shadow Maps demo
Oskari 'asko' Nyman
Implements the technique explained in the paper Parallel-Split Shadow Maps for Large-scale Virtual Environments.

Parallel-Split Shadow Maps for Large-scale Virtual Environments
Fan Zhang, Hanqiu Sun, Leilei Xu, Lee Kit Lun
Improves aliasing of shadow maps by splitting the view frustum in several parts along the depth and renders one shadow map for each part with improved resolution of each part.

Shadow Caster Volumes For The Culling Of Potential Shadow Casters
Luke Hutchinson
Shows one way of improving performance by culling shadow casters that do not produce visible shadows.

Finding Next Gen - CryEngine 2
2007 - Martin Mittring
Talks about various different techniques: screen space ambient occlusion, shadow maps (various types), etc. Doesn't go into a lot of detail but gives plenty of ideas to the creative developer.

Integrating Realistic Soft Shadows into Your Game Engine
Feb, 2008 - Kevin Myers, Randima Fernando, Louis Bavoil
Shows how to do PCSS (Percentage Closer Soft Shadows) with shadow mapping, in both DirectX 10 and 9.

Layered Variance Shadow Maps
Mar, 2008 - Andrew Lauritzen, Michael McCool
This article explains how to minimize the light bleeding artifacts and high resolution requirements for ordinary variance shadow maps. This is done by separating the scene in layers, thus reducing the depth complexity of each layer.

Real-time Shadow Algorithms and Techniques
Oct, 2008 - nVidia
nVidia has set up a page full of links to articles and samples on shadowing, including most popular techniques, such as shadow mapping, shadow volumes, soft shadows, etc.

Summed-Area Variance Shadow Maps
Andrew Lauritzen
Chapter 8 from GPU Gems 3. This is a very good article that gives clear explanations on how to avoid many of the shadow mapping artifacts and also how to implement soft shadows.

Parallel-Split Shadow Maps on Programmable GPUs
Fan Zhang, Hanqiu Sun, Oskari Nyman
Chapter 10 from GPU Gems 3. This articles explains in great detail how parallel split shadow maps works. Three different implementations are described, each requiring more and more modern hardware.