Rendering Fake Soft Shadows with Smoothies Eric Chan Frdo - - PowerPoint PPT Presentation

rendering fake soft shadows with smoothies
SMART_READER_LITE
LIVE PREVIEW

Rendering Fake Soft Shadows with Smoothies Eric Chan Frdo - - PowerPoint PPT Presentation

Rendering Fake Soft Shadows with Smoothies Eric Chan Frdo Durand Laboratory for Computer Science Massachusetts Institute of Technology Real-Time Shadows Goals: Interactive framerates Hardware-accelerated Good image


slide-1
SLIDE 1

Rendering Fake Soft Shadows with Smoothies

Laboratory for Computer Science Massachusetts Institute of Technology Eric Chan Frédo Durand

slide-2
SLIDE 2

Goals:

  • Interactive framerates
  • Hardware-accelerated
  • Good image quality
  • Dynamic environments

Applications:

  • Game engines (e.g. Doom 3)
  • Interactive walkthroughs

Challenge: balancing quality and performance

Real-Time Shadows

NVIDIA

slide-3
SLIDE 3

Two Algorithms from the 1970’s

Shadow volumes (Crow 1977)

  • Object-space
  • Accelerated by hardware

stencil buffer

  • Large fillrate consumption

Shadow maps (Williams 1978)

  • Image-space
  • Fast and simple
  • Supported in hardware
  • Undersampling artifacts

NVIDIA

slide-4
SLIDE 4

Soft Shadow Volumes

Penumbra wedges:

  • Shadow polygons wedges
  • Compute penumbra with pixel

shaders

  • Accurate approximation

Papers:

  • Assarsson et al. (EGRW 2002,

SIGGRAPH 2003, HWWS 2003) But: much higher fillrate needed

Assarsson and Akenine-Möller

wedge

slide-5
SLIDE 5

Soft Shadow Maps

Ideas:

  • Filtering
  • Stochastic sampling
  • Image warping

Examples:

  • Percentage closer filtering (Reeves et al., SIGGRAPH 1987)
  • Deep shadow maps (Lokovic and Veach, SIGGRAPH 2000)
  • Image-based soft shadows (Agrawala et al., SIGGRAPH 2000)
  • Multisampling hard shadows (Heckbert and Herf, TR 1997)

But: need dense sampling to minimize artifacts

Agrawala et al.

slide-6
SLIDE 6

Soft Shadow Maps (cont.)

Approximations Examples:

  • Convolution (Soler and Sillion, SIGGRAPH 1998)
  • Linear lights (Heidrich et al., EGRW 2000)
  • Outer surfaces (Parker et al., TR 1998)
  • Plateaus (Haines, JGT 2001)
  • Penumbra maps (Wyman and Hansen, EGSR 2003)

Soler and Sillion

slide-7
SLIDE 7

Overview

  • Extend basic shadow map approach
  • Use extra primitives (smoothies) to soften shadows

light’s view (blockers only) light’s view (blockers + smoothies)

slide-8
SLIDE 8

Fake Soft Shadows

  • Shadows not geometrically correct
  • Shadows appear qualitatively like soft shadows

Hard shadows Fake soft shadows

slide-9
SLIDE 9

Contributions

Smoothie shadow algorithm:

  • Creates soft shadow edges
  • Hides aliasing artifacts
  • Efficient (object / image space)
  • Hardware-accelerated
  • Supports dynamic scenes
slide-10
SLIDE 10
  • 1. Create Shadow Map

Render blockers into depth map light’s view

  • bserver’s view
slide-11
SLIDE 11
  • 2. Identify Silhouette Edges

Find blockers’ silhouette edges in object space

  • bject-space

silhouettes

  • bserver’s view

light’s view

slide-12
SLIDE 12
  • 3. Construct Smoothies

Blocker only:

silhouette vertex silhouette edges blocker exterior

slide-13
SLIDE 13
  • 3. Construct Smoothies (cont.)

Blocker + smoothies:

silhouette vertex silhouette edges

smoothie edge smoothie corner

t t blocker exterior

slide-14
SLIDE 14
  • 3. Construct Smoothies (cont.)
  • Smoothie edges are rectangles in screen space with

a fixed width

  • Smoothie corners connect adjacent smoothie edges

t t

geometry shading

slide-15
SLIDE 15
  • 4. Render Smoothies

Store depth and alpha values into smoothie buffer

Smoothie Buffer (depth) Smoothie Buffer (alpha)

light’s viewpoint

slide-16
SLIDE 16
  • 5. Compute Shadows

Compute intensity using depth comparisons

smoothie light source blocker receiver

slide-17
SLIDE 17
  • 5. Compute Shadows

Image sample behind blocker (intensity = 0)

smoothie light source blocker receiver completely in shadow

slide-18
SLIDE 18
  • 5. Compute Shadows

Image sample behind smoothie (intensity = α)

partially in shadow smoothie light source blocker receiver

slide-19
SLIDE 19
  • 5. Compute Shadows

Image sample illuminated (intensity = 1)

illuminated smoothie light source blocker receiver

slide-20
SLIDE 20

Computing Alpha Values

Intuition:

  • Alpha defines penumbra shape
  • Should vary with ratio b/r

blocker smoothie α receiver light source r b

slide-21
SLIDE 21

Computing Alpha Values (cont.)

  • 1. Linearly interpolate alpha
  • 2. Remap alpha at each pixel using ratio b/r:

α’ = α / (1 – b/r)

  • riginal α

remapped α result

slide-22
SLIDE 22

Multiple Blockers and Receivers

slide-23
SLIDE 23

Multiple Receivers

light’s view

same thickness

Smoothie buffer (linearly-interpolated α)

1 2

slide-24
SLIDE 24

Multiple Receivers (cont.)

light’s view Smoothie buffer (remapped α)

different thickness 1 2

slide-25
SLIDE 25

Multiple Receivers (cont.)

Final image

  • bserver’s view

different thickness

slide-26
SLIDE 26

Multiple Blockers

What happens when smoothies overlap? smoothie overlap

slide-27
SLIDE 27

Multiple Blockers (cont.)

Minimum blending: just keep minimum of alpha values smoothie ray tracer

slide-28
SLIDE 28

Comparison to Penumbra Maps

Penumbra maps (Wyman and Hansen, EGSR 2003)

  • Same idea, different details

Smoothie depth:

  • Extra storage + comparison
  • Handles surfaces that act only as receivers

blockers + smoothies blockers only quads cones and sheets Geometry: Store depth: Penumbra Maps Smoothies

slide-29
SLIDE 29

Results

System information:

  • 2.6 GHz Intel Pentium 4
  • NVIDIA Geforce FX 5800 Ultra
slide-30
SLIDE 30

Video

slide-31
SLIDE 31

Hiding Aliasing (256 x 256)

shadow map bicubic filter smoothie (t = 0.02) smoothie (t = 0.08) 16 ms 129 ms 19 ms 19 ms

slide-32
SLIDE 32

Hiding Aliasing (1024 x 1024)

shadow map bicubic filter smoothie (t = 0.02) smoothie (t = 0.08) 17 ms 142 ms 22 ms 24 ms

slide-33
SLIDE 33

Comparison to Ray Tracer

smoothie ray tracer

increasing size

  • f light source
slide-34
SLIDE 34

Video

  • riginal md2shader demo courtesy of Mark Kilgard
slide-35
SLIDE 35

Discussion

Shadow maps:

  • Assumes directional light or spotlight
  • Discrete buffer samples

Shadow volumes:

  • Assumes blockers are closed triangle meshes
  • Silhouettes identified in object space

Smoothies:

  • Rendered from light’s viewpoint
  • Occupy small screen area inexpensive
slide-36
SLIDE 36

Summary

Contribution:

  • Simple extension to shadow maps
  • Shadows edges are fake, but look like soft shadows
  • Fast, maps well to graphics hardware
slide-37
SLIDE 37

Trends in Real-Time Shadows

Architectures and algorithms go together Currently, architectures algorithms:

  • Store per-pixel data at full precision

But also, algorithms architectures:

  • Shadow maps
  • Shadow volume depth bounds
  • Aggressive early z and stencil reject
slide-38
SLIDE 38

Acknowledgments

Hardware, drivers, and bug fixes

  • Mark Kilgard, Cass Everitt, David Kirk, Matt Papakipos (NVIDIA)
  • Michael Doggett, Evan Hart, James Percy (ATI)

Writing and code

  • Sylvain Lefebvre, George Drettakis, Janet Chen, Bill Mark
  • Xavier Décoret, Henrik Wann Jensen

Funding

  • ASEE NDSEG Fellowship