Pixel Accurate Shadows with Shadow Mapping


Exact shadows are quite difficult for real-time rendering applications. This projects experiences with some new approaches of generating exact shadows using different types of multi-pass shadow rendering. A demo application has been developed to compare and benchmark these different approaches.



Shadow_cescg.pdf - Paper to the project

Shadow.avi - Short video showcase

Shadow.rar - Demo application including source files



  W,A,S,D       =  Move camera
  Left Mouse    =  Rotate light
  Middle Mouse  =  Slide camera along view plane
  Right Mouse   =  Rotate camera
  Hold STRG     =  Faster movement
  0-9           =  Select predefined camera and light setting
  Tab           =  Show/Hide menu
  Print         =  Save screenshot
  F10           =  Change resolution
  Alt+Return    =  Full screen
  ESC           =  Exit demo     

Demo Interface

Shadow Techniques

Confidence-based Shadow

This basic method covers four different confidence-based shadow techniques. Generally, they simulate a higher shadow map resolution through multiple jittered shadow maps, which get accumulated in a screen space buffer. Thereby only fragments with the best confidence value, which is defined by the distance of the sampling position to the nearest texel center, are preserved.

Frustum Splitting

This technique is also called Parallel-Split Shadow Maps [Zhang et al.] or Cascaed Shadow Maps. It slices the view frustum in several depth layers and renders a shadow map for each to overcome perspective aliasing.

Shadow Map Tiling

This technqiue is based on the paper Fitted Virtual Shadow Maps [Giegl et al.] The shadow map gets tiled. Then the required shadow map resolution of the screen-space fragments is calculated and accumulated to its shadow map tile. A pyramidal update structure is created and processed from top down and shadow maps are rendered until everything is covered.

  Christian Luksch, Student at the Vienna University of Technology, Institute of Computer Graphics and Algorithms