Chapter 10. Parallel-Split Shadow Maps on Programmable GPUs

https://developer.nvidia.com/gpugems/gpugems3/part-ii-light-and-shadows/chapter-10-parallel-split-shadow-maps-programmable-gpus

shadow mapping (Williams 1978) has been used extensively in 3D games and applications for producing shadowing effects. however, shadow mapping has inherent aliasing problems, so using standard shadow mapping is not enough to produce high-quality shadow rendering in complex and large scenes. in this chapter we present an advanced shadow-mapping technique that produces antialiased and real-time shadows for large-scale environments. we also show the implementation details of our technique on modern programmable GPUs.

10.1 Introduction
the technique we present is called parallel-split shadow maps (PSSMs) (Zhang et al. 2007 and Zhang et al. 2006). In this technique the view frustum is split into multiple depth layers using clip planes parallel to the view plane, and an independent shadow map is rendered for each layer, as shown in Figure 10-1.
Chapter 10. Parallel-Split Shadow Maps on Programmable GPUs_第1张图片

Figure 10-1 Parallel-Split Shadow Maps in
the split scheme is motivated by the observation that points at different distances from the viewer need different shadow-map sampling densities. by splitting the view frustum into parts, we allow each shadow map to sample a smaller area, so that the sampling frequency in texture space is increased. with a better matching of sampling frequencies in view space and texture space, shadow aliasing errors are significantly reduced.

in comparision with other popular shadow-mapping techniques, such as perspective shadow maps (PSMs) (Stamminger and Drettakis 2002), light-space perspective shadow maps (LiSPSMs) (Wimmer et al. 2004) and trapezoidal shadow maps (TSMs) (Martin and Tan 2004), PSSMs provide an intuitive way to discretely approximate the warped 扭曲的 distribution of the shadow-map texels, but without mapping singularities 奇异点 and special treatments.

the idea of using multiple shadow maps was introduced in Tadamura et al.2001. It was further studied in Lloyd et al. 2006 and implemented as cascaded shadow mapping in Futuremark’s benchmark application 3DMark 2006.

the two major with all these algorithms, including our PSSMs, are the following:

  1. how do we determine the split positions?
  2. how do we alleviate 缓解 the performance drop caused by multiple rendering passes when generating shadow maps and rendering the scene shadows?
    These two problems are handled well in PSSMs. We use a fast and robust scene-independent split strategy to adapt the view-driven resolution requirement, and we show how to take advantage of DirectX 9-level and DirectX 10-level hardware to improve performance.

你可能感兴趣的:(Unity)