Efficient Image-Based Methods for Rendering Soft Shadows
Efficient Image
Efficient Image - - Based Methods Based Methods for Rendering Soft Shadows
for Rendering Soft Shadows
SIGGRAPH 2001SIGGRAPH 2001 Maneesh Agrawala
Ravi Ramamoorthi Alan Heirich
Laurent Moll
Pixar Animation Studios Stanford University Compaq Computer Corporation Compaq Computer Corporation
Hard vs. Soft Shadows Hard vs. Soft Shadows Hard vs. Soft Shadows
Hard Shadows Soft Shadows
Shadow maps Shadow maps Shadow maps
• Image-based hard shadows [Williams 78]
• Time, memory depend on image size, not geometric scene complexity
• Disadvantage: bias and aliasing artifacts
• Soft shadows [Chen and Williams 93]
• View interpolate multiple shadow maps
• Image-based hard shadows [Williams 78]
• Time, memory depend on image size, not geometric scene complexity
• Disadvantage: bias and aliasing artifacts
• Soft shadows [Chen and Williams 93]
• View interpolate multiple shadow maps
IBR good for soft shadows IBR good for soft shadows IBR good for soft shadows
• IBR good for secondary effects
• Artifacts less perceptible
• IBR works well for nearby viewpoints
• Shadow maps from light source
• Light source localized area
• Poorly sampled regions are also dimly lit
• IBR good for secondary effects
• Artifacts less perceptible
• IBR works well for nearby viewpoints
• Shadow maps from light source
• Light source localized area
• Poorly sampled regions are also dimly lit
IBR good for soft shadows IBR good for soft shadows IBR good for soft shadows
• Poorly sampled regions are also dimly lit• Poorly sampled regions are also dimly lit
Attenuation only With lighting Light
Shadow map
Contributions Contributions Contributions
• Extend shadow maps to soft shadows
• Image-based rendering especially suitable
• Two novel image-based algorithms:
• Layered attenuation maps (LAM)
• Coherence-based raytracing (CBRT)
• Extend shadow maps to soft shadows
• Image-based rendering especially suitable
• Two novel image-based algorithms:
• Layered attenuation maps (LAM)
• Coherence-based raytracing (CBRT)
• LAM
•Display: 5-10 fps
•Some aliasing artifacts
•Interactive applications
•Games
•Previewing
• CBRT
•Render: 19.83 min
•Speedup: 12.96x
•Production quality images
Preliminaries Preliminaries Preliminaries
Refresher: LDIs Refresher: Refresher: LDIs LDIs
• Layered depth images [Shade et al. 98]• Layered depth images [Shade et al. 98]
Geometry
Camera
Refresher: LDIs Refresher: Refresher: LDIs LDIs
• Layered depth images [Shade et al. 98]• Layered depth images [Shade et al. 98]
LDI
Refresher: LDIs Refresher: Refresher: LDIs LDIs
• Layered depth images [Shade et al. 98]• Layered depth images [Shade et al. 98]
LDI
(Depth, Color)
Precomputation Precomputation Precomputation
• Render views from points on light (hardware)
• Create layered attenuation map (software)
• Warp views into LDI
• Store (depth, attenuation)
• Objects in LAM visible in at least 1 view
• Render views from points on light (hardware)
• Create layered attenuation map (software)
• Warp views into LDI
• Store (depth, attenuation)
• Objects in LAM visible in at least 1 view
Precomputation Precomputation Precomputation
1st viewpoint
Precomputation Precomputation Precomputation
2nd viewpoint
Attenuation = 1/2 Attenuation = 2/2
Precomputation Precomputation Precomputation
Warped 2nd viewpoint
Attenuation = 1/2 Attenuation = 2/2
Not present
Display Display Display
• Render scene without shadows (hardware)
• Project into LAM (software)
• Read off attenuation
• Attenuation modulates shadowless rendering
• Render scene without shadows (hardware)
• Project into LAM (software)
• Read off attenuation
• Attenuation modulates shadowless rendering
Display Display Display
LAM (center of light)
Eye
Display Display Display
LAM (center of light)
Eye
Attenuation = 2/2 Color = Color * 2/2
Display Display Display
LAM (center of light)
Eye
Display Display Display
LAM (center of light)
Eye Not in LAM
Attenuation = 0 Color = Color * 0
Precompute algorithm Precompute Precompute algorithm algorithm
Illustration Illustration Illustration
Rendered images from light R R endered images from light endered images from light
Layered images Layered images Layered images
Layered attenuation map Layered attenuation map Layered attenuation map
Display algorithm Display algorithm Display algorithm
Attenuation map and rendering Attenuation map and rendering Attenuation map and rendering
rendering attenuation map
one layer
2nd layer 1st layer
•LAM size: 512 x 512
•Avg num depth layers: 1.5
•Precomp:
• 7.7 sec (64 views)
• 29.4 sec (256 views)
•Display: 5-10 fps
•LAM size: 512 x 512
•Avg num depth layers: 2
•Precomp:
• 6.0 sec (64 views)
• 22.4 sec (256 views)
•Display: 5-10 fps
• Layered attenuation maps – fast, aliases
• Coherence-based raytracing – slow, noise
• Layered attenuation maps – fast, aliases
• Coherence-based raytracing – slow, noise
LAM CBRT
Coherence-based raytracing Coherence Coherence - - based based raytracing raytracing
• Hierarchical raytracing through depth images
• Time, memory decoupled from geometric scene complexity
• Coherence-based sampling
• Light source visibility changes slowly
• Reduce number shadow rays traced
• Also usable with geometric raytracer
• Hierarchical raytracing through depth images
• Time, memory decoupled from geometric scene complexity
• Coherence-based sampling
• Light source visibility changes slowly
• Reduce number shadow rays traced
• Also usable with geometric raytracer
• Represent scene with multiple shadow maps• Represent scene with multiple shadow maps
Light
Image-based raytracing Image Image - - based based raytracing raytracing
1st shadow map
• Represent scene with multiple shadow maps• Represent scene with multiple shadow maps
Light
Image-based raytracing Image Image - - based based raytracing raytracing
2nd shadow map 1st shadow map
• Trace shadow ray through shadow maps• Trace shadow ray through shadow maps
Light
Image-based raytracing Image Image - - based based raytracing raytracing
2nd shadow map 1st shadow map
Light source visibility image Light source visibility image Light source visibility image
Light
Visibility image
s1
Light source visibility image Light source visibility image Light source visibility image
s1
s2
Vis image for s1 Light
Visibility image
Coherence-based sampling Coherence Coherence - - based sampling based sampling
• Compute visibility image at first point s
1• Loop over following surface points s
i• Predict visibility image at si from si-1
• Trace rays where prediction confidence low
• Compute visibility image at first point s
1• Loop over following surface points s
i• Predict visibility image at si from si-1
• Trace rays where prediction confidence low
Predicting visibility Predicting visibility Predicting visibility
Blocker pts
s1 s1
s2
Prediction
Predicting visibility Predicting visibility Predicting visibility
Blocker pts
s1 s1
s2
Prediction
• Low confidence
Light source edges
Blocked/unblocked edges
Prediction confidence Prediction confidence Prediction confidence
Predicted visibility
• Trace rays in all X’ed cells
• High confidence: 5
• Low confidence: 31
• Total cells: 36
• Ratio: 5/36 = 0.14
• Low confidence
Light source edges
Blocked/unblocked edges
Prediction confidence Prediction confidence Prediction confidence
Predicted visibility
• Trace rays in all X’ed cells
• High confidence: 56
• Low confidence: 88
• Total cells: 144
• Ratio: 56/144 = 0.40
Propagating low confidence Propagating low confidence Propagating low confidence
• If traced ray = prediction trace neighbor cells
• Similar to [Hart et al. 99]
Prediction correct
Propagating low confidence Propagating low confidence Propagating low confidence
• If traced ray = prediction trace neighbor cells
Prediction incorrect
• Light cells: 16 x 16 (256)
• Four 1024 x 1024 maps
• Precomp: 2.33 min
• Render: 19.83 min
• Rays: 79.86
• Speedup: 12.96x
2.27x due to image-based raytracing accelerations 5.71x due to coherence-based sampling
• Light cells: 16 x 16 (256)
• Four 1024 x 1024 maps
• Precomp: 3.93 min
• Render: 65.13 min
• Rays: 88.74
• Speedup: 8.52x
2.16x due to image-based raytracing accelerations 3.94x due to coherence-based sampling
LAM LAM LAM
Ray tracing Ray tracing Ray tracing
CBRT CBRT CBRT
LAM CBRT
Conclusions Conclusions Conclusions
• Two efficient image-based methods
• Layered attenuation maps
• Interactive applications
• Coherence-based raytracing
• Production quality images
• IBR ideal for soft shadows – secondary effects
• Two efficient image-based methods
• Layered attenuation maps
• Interactive applications
• Coherence-based raytracing
• Production quality images
• IBR ideal for soft shadows – secondary effects