09 Shadow Mapping Steve Marschner CS5625 Spring 2019 Thanks to - - PowerPoint PPT Presentation

09 shadow mapping
SMART_READER_LITE
LIVE PREVIEW

09 Shadow Mapping Steve Marschner CS5625 Spring 2019 Thanks to - - PowerPoint PPT Presentation

09 Shadow Mapping Steve Marschner CS5625 Spring 2019 Thanks to previous instructor Kavita Bala Shadows as depth cue [tricks-and-illusions.com] Shadows as anchors Shadows as anchors Fake shadows Before we get into more complex methods


slide-1
SLIDE 1

09 Shadow Mapping

Steve Marschner CS5625 Spring 2019

Thanks to previous instructor Kavita Bala

slide-2
SLIDE 2

Shadows as depth cue

[tricks-and-illusions.com]

slide-3
SLIDE 3

Shadows as anchors

slide-4
SLIDE 4

Shadows as anchors

slide-5
SLIDE 5
slide-6
SLIDE 6
slide-7
SLIDE 7

Fake shadows

Before we get into more complex
 methods…

  • if a shadow is just needed to help anchor an
  • bject to a plane, very simple techniques

can suffice

  • classic: project shape of object, blur, use as

mask to darken floor

Shadow baking

  • a more principled approach
  • establish texture coordinates on floor
  • for each texel compute irradiance
  • perfectly accurate for diffuse receivers when

the light and all geometry are static

IKEA Place iOS app

slide-8
SLIDE 8

Shadow maps

slide-9
SLIDE 9

Shadow maps

slide-10
SLIDE 10

Shadow maps

Main idea: reuse the z-buffer mechanism to test for light source visibility

  • introduced by Lance Williams in 1978
  • very widely used approach for point-like lights

Shadow testing and visibility testing are similar problems

  • given a point on a surface, is it visible to an { observer | light } at a fixed location?
  • for visibility: interpolate screen-space (x,y,z); consider depth buffer value stored at screen-space

(x,y); z <= buffer(x,y) implies visible

  • for shadow: compute light-space (x,y,z) of fragment; z <= buffer(x,y) implies illuminated

Some serious differences in practice

  • most notably: fragments do not line up with depth buffer samples (they are scattered irregularly

in light space)

slide-11
SLIDE 11

[Möller et al. RTR]

slide-12
SLIDE 12

Mark Kilgard

slide-13
SLIDE 13

Mark Kilgard

slide-14
SLIDE 14

Mark Kilgard

slide-15
SLIDE 15

Mark Kilgard

slide-16
SLIDE 16

slide courtesy of Kavita Bala, Cornell University

Shadow Map Issues

  • if A and B are approximately equal?
  • Speckling
slide-17
SLIDE 17

Mark Kilgard

slide-18
SLIDE 18

Mark Kilgard

slide-19
SLIDE 19

Mark Kilgard

slide-20
SLIDE 20
  • pengl-tutorial.org

first try at shadow mapping

slide-21
SLIDE 21

Mark Kilgard not enough shadow bias good shadow bias too much shadow bias

slide-22
SLIDE 22
  • pengl-tutorial.org

shadow mapping with constant bias

slide-23
SLIDE 23
  • pengl-tutorial.org

shadow mapping with slope-dependent bias

slide-24
SLIDE 24
  • pengl-tutorial.org

closed surfaces and slope-dependent bias

slide-25
SLIDE 25
  • pengl-tutorial.org

adding percentage-closer filtering

slide-26
SLIDE 26

Shadow map sample rate—bad case

Light behind object Light’s “view direction” almost


  • pposite the eye’s view


direction “Dueling frusta”

Mark Kilgard eye view light view

slide-27
SLIDE 27

Cascaded shadow maps (aka. parallel-split SM)

[Möller et al. RTR]

slide-28
SLIDE 28

Cascaded shadow maps

Idea: split the view volume

  • cut into several slabs by depth
  • handle shadows in each slab with a separate shadow map
  • compute shadow frusta to exactly bound each piece
  • use fragment depth to decide which map to sample

Design choices

  • how to split the depth range (often logarithmically)
  • set near distance with great care (has big effect on resolution of shadows)
  • can be smarter about bounds: only need to bound objects, not whole view volume…
slide-29
SLIDE 29

Single shadow map, 2048x2048 Four 1024x1024 shadow maps (equal memory)

Fan Zhang, Chinese U. Hong Kong

slide-30
SLIDE 30

Filtering shadow maps

Shadow map lookups cause aliasing, need filtering As with normal maps, pixel is a nonlinear function of the shadow depth

  • this means applying a linear filter to the depth is wrong

We want to filter the output, not the input, of the shadow test

  • what fraction of samples pass the test
  • samples pass the test if they are closer than the shadow map depth
  • therefore “percentage closer filtering” or PCF
slide-31
SLIDE 31

Kavita Bala, Computer Science, Cornell University

Percentage Closer Filtering

  • Soften the shadow to decrease aliasing

– Reeves, Salesin, Cook 87 – GPU Gems, Chapter 11

slide-32
SLIDE 32

Kavita Bala, Computer Science, Cornell University

1 sample SM

slide-33
SLIDE 33

Kavita Bala, Computer Science, Cornell University

4 sample PCF

slide-34
SLIDE 34

Kavita Bala, Computer Science, Cornell University

16 sample PCF

slide-35
SLIDE 35

Kavita Bala, Computer Science, Cornell University

slide-36
SLIDE 36

Soft shadows from small sources

Main effect is to blur shadow boundaries

  • PCF can do this
  • …but how wide to make the filter?

Real shadows depend on area of light visible from surface

  • this can vary in complex ways
  • example: sun viewed through leafy trees

Useful approximation: convolution

  • shadows are convolutions when the blocker and source are parallel and planar
  • occluder fusion: approximating some occluding geometry as a planar blocker
slide-37
SLIDE 37

HardShadows

Completelylit Umbra

Michael Schwarz, SIGGRAPH 2013 Real Time Shadows course

slide-38
SLIDE 38

SoftShadows

Completelylit Umbra Penumbra

Michael Schwarz, SIGGRAPH 2013 Real Time Shadows course

slide-39
SLIDE 39

ShadowHardeningonContact

Michael Schwarz, SIGGRAPH 2013 Real Time Shadows course

slide-40
SLIDE 40

PercentageCloserSoftShadows

Averageoccluder depth

  • Shadowmap
  • 1. Blockersearch

Michael Schwarz, SIGGRAPH 2013 Real Time Shadows course

slide-41
SLIDE 41

PercentageCloserSoftShadows

  • 1. Blockersearch
  • 2. Penumbrawidthestimation

Planar

  • ccluder
  • Michael Schwarz, SIGGRAPH 2013 Real Time Shadows course
slide-42
SLIDE 42

PercentageCloserSoftShadows

  • 1. Blockersearch
  • 2. Penumbrawidthestimation
  • 3. Filtering
  • Filterregion

(size) 50%

Michael Schwarz, SIGGRAPH 2013 Real Time Shadows course

slide-43
SLIDE 43

Percentage-closer soft shadows

Fernando, NVidia whitepaper ~2005