1 / 23

# Convolution Shadow Maps - PowerPoint PPT Presentation

##### Convolution Shadow Maps
An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
##### Presentation Transcript

1. Convolution Shadow Maps *MPI Informatik Germany † Hasselt University Belgium ‡University College London UK

2. Motivation: Screen-space anti-aliasing Percentage Closer Filtering (NVIDIA) Convolution Shadow Map (CSM)

3. Shadow Mapping Problem statement Filtering the z values of the Shadow Map Filtering the CSM data structure Helix scene ? ?

4. Benefits of a CSM • Efficient screen-space anti-aliasing through hardware filtering • Including mipmapping and anisotropic filtering • Enables additional convolutions • Blur filter conceals discretization artifacts • Improves temporal coherence substantially

5. Related Work • Percentage Closer Filtering (PCF) [Reeves et al. 1987] • average multiple shadow tests • NVIDIA’s GPU version • 2x2 pattern • analogous to bilinear filter • Trilinear (mipmap) not possible • Variance Shadow Maps (VSM) [Donnelly et al. 2006] • Probabilistic approach • Filtering z and z2 • Estimates upper bound only • Light leaking artifacts • Precision problems Courtesy of Donnelly [Demo]

6. L p z(p) c d(x) x Shadow Mapping [Williams 1978] • xR3 • pR2 • x equals p just in different spaces • Shadow function:s(x):=f(d(x),z(p)) • Binary result: • 1 if d(x)<=z(p) • 0 else

7. L p d(x’) z(p) c x x’ Shadow test function: s(x) • What kind of function is s(x)? • Heaviside Step Function: H(t) Shadow term for x’

8. L p q p z(p) N c d(x) x y y N How to filter s(x) ? • Filter s(x) “around” p • Assume d(y)≈ d(x) • d(x) representativedistance forN • Same for PCF • Then we get:

9. f(d,z) = ai(d) Bi(z) s(x)≈ ai(d(x)) Bi(z(p)) Non-linearity of the shadow test • = • Filtering shadow test result != filtering z values • Our new solution: Transform depth map such that we can write the shadow test as a sum (1D function) z(p) Bi(z(p))

10. Reconstruction Example • s(x) ≈ a1(d) +a2(d) +..+ a4(d) +..+ a8(d) +..+a16(d)

11. = [w * ai(d(x)) Bi(z)](p) = ai(d(x))[w * Bi(z)](p) Why is this useful? • Fill expansion into convolution formula • Convolution on s(x) == convolution on Bi(z(p)) • Note: d(x) and z(p) had to be separable! • Decoupling d(x) and z(p) enables pre-filtering! sf (x) = [w * f(d(x), z)](p)

12. s(x) ≈ a1(d) +..+a4(d) +…+ a8(d) +..+a16(d) sf (x) ≈ a1(d) +..+a4(d) +…+ a8(d) +..+a16(d) Filtering Example Original Bi(z) After filtering Bi(z) [w * Bi(z)]

13. What expansion do we use? • Approximate shadow test with Fourier series c1 +c2 +..+c4 +..+c8 +..+c16

14. c1 +c2 +..+c4 +..+c8 +..+c16 Important properties of a Fourier series • Step function becomes sum of weighted sin() • Series is separable! • Constant error due to shift invariance

15. PCF (NVIDIA) Anti-aliased shadows (SM: 5122) • Trilinear filtering and additional convolution CSM CSM – 7x7 Gauss

16. PCF (NVIDIA) CSM CSM – 7x7 Gauss Tree scene (SM: 20482) • Mipmapped CSM recovers fine details

17. Blurred Shadows Filter size: 3x3 1282 2562 5122 10242 SM: Filter size:7x7 1282 2562 5122 10242 SM:

18. Issues with a Fourier series • Ringing suppression • Reduce higher frequencies • Steepness of “ramp” • Offset (transl. invariance!) • Shift shadow test • Increases lightness prob. • Scaling • Scale shadow test • Decreases filtering • See paper for tradeoffs

19. Limitations and drawbacks • Influence of reconstruction order M • Memory consumption increases as M grows • Performance (filtering) decreases as M grows M = 1 M = 2 M = 4 M = 8 M = 16

20. Performance and Memory • Frame rate for complex scene (see video) ~365k polygons (NVIDIA GeForce 8800-GTX) • Requires (M/2) 8-bit RGBA textures • Apply convolution to each texture 256 512 1024 2048

21. Conclusion • CSM, a new data structure which enables pre-filtering of shadow maps • Mipmaps • High quality screen-space anti-aliasing for shadow rendering • Improved temporal coherence • Additional convolution conceals discretization artifacts

22. Outlook and Extensions • New separable expansion • Less memory • Higher performance • Better quality at contact points • Rendering approximate Soft shadows • Efficient algorithm based on spatial relations

23. Video