Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E....
Transcript of Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E....
![Page 1: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/1.jpg)
Rendering Fake Soft Shadowswith SmoothiesRendering Fake Soft Shadowswith Smoothies
Eric ChanMassachusetts Institute of Technology
![Page 2: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/2.jpg)
ClarificationClarification
![Page 3: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/3.jpg)
ClarificationClarification
![Page 4: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/4.jpg)
Real-Time Soft ShadowsReal-Time Soft Shadows
Goals:• Interactive framerates• Hardware-accelerated• Good image quality• Dynamic environments
Challenge:• How to balance quality and performance?
NVIDIA
![Page 5: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/5.jpg)
Ordinary Shadow MapsOrdinary Shadow Maps
Image-space algorithm:• Fast and simple• Supported in hardware• Aliasing artifacts
NVIDIA Sen et al. [SIGGRAPH 2003]
![Page 6: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/6.jpg)
Soft Shadow MapsSoft Shadow Maps
Techniques:• Filtering• Stochastic sampling• Image warping
Agrawala et al. [SIGGRAPH 2000]
But: need dense sampling to minimize artifacts
Examples:• Percentage closer filtering
(Reeves et al., SIG1987)• Deep shadow maps
(Lokovic and Veach, SIG2000)
![Page 7: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/7.jpg)
Soft Shadow Maps (cont.)Soft Shadow Maps (cont.)
Approximations
Soler and Sillion
Examples:• Convolution (Soler and Sillion, SIGGRAPH 1998)• Linear lights (Heidrich et al., EGRW 2000)
![Page 8: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/8.jpg)
IdeaIdea
Extend basic shadow map approach
Extra primitives (smoothies) soften shadows
light’s view (blockers only) light’s view (blockers + smoothies)
![Page 9: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/9.jpg)
Fake Soft ShadowsFake Soft Shadows
Shadows not geometrically correct
Shadows appear qualitatively like soft shadows
Hard shadows Fake soft shadows
![Page 10: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/10.jpg)
Smoothie AlgorithmSmoothie Algorithm
Properties:• Creates soft shadow edges
• Hides aliasing artifacts• Efficient (object / image space)
• Hardware-accelerated• Supports dynamic scenes
![Page 11: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/11.jpg)
ReferencesReferences
Rendering Fake Soft Shadows with Smoothies• E. Chan and F. Durand [EGSR 2003]
Penumbra Maps• C. Wyman and C. Hansen [EGSR 2003]
![Page 12: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/12.jpg)
Algorithm
![Page 13: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/13.jpg)
Algorithm OverviewAlgorithm Overview
Implementation details later
Focus on concepts
![Page 14: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/14.jpg)
Algorithm OverviewAlgorithm Overview
Create depth map
Step 1
![Page 15: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/15.jpg)
Algorithm OverviewAlgorithm Overview
Create smoothie buffer
Step 2
![Page 16: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/16.jpg)
Algorithm OverviewAlgorithm Overview
Render scene + shadows
Step 3
![Page 17: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/17.jpg)
Create Shadow MapCreate Shadow Map
Render blockers into depth map
light’s view
observer’s view
![Page 18: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/18.jpg)
Find Silhouette EdgesFind Silhouette Edges
Find blockers’ silhouette edges in object space
object-spacesilhouettes
observer’s view
light’s view
![Page 19: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/19.jpg)
Construct SmoothiesConstruct Smoothies
Blocker only:
blocker exterior
silhouette vertex
silhouette edges
![Page 20: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/20.jpg)
Construct SmoothiesConstruct Smoothies
Blocker + smoothies:silhouette vertex
silhouette edges
smoothie edge
smoothie corner
blocker exterior
![Page 21: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/21.jpg)
Construct SmoothiesConstruct Smoothies
Smoothie edges are fixed-width rectangles in screen spaceSmoothie corners connect adjacent smoothie edges
geometry shading
![Page 22: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/22.jpg)
Render SmoothiesRender Smoothies
Store depth and alpha values into smoothie buffer
Smoothie Buffer (depth) Smoothie Buffer (alpha)
light’s viewpoint
![Page 23: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/23.jpg)
Compute ShadowsCompute Shadows
smoothie
light source
blocker
receiver
Compute intensity using depth comparisons
![Page 24: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/24.jpg)
Compute Shadows (1 of 3)Compute Shadows (1 of 3)
Image sample behind blocker (intensity = 0)
smoothie
light source
blocker
receivercompletely in shadow
![Page 25: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/25.jpg)
Compute Shadows (2 of 3)Compute Shadows (2 of 3)
partially in shadow
smoothie
light source
blocker
receiver
Image sample behind smoothie (intensity = α)
![Page 26: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/26.jpg)
Compute Shadows (3 of 3)Compute Shadows (3 of 3)
illuminated
smoothie
light source
blocker
receiver
Image sample illuminated (intensity = 1)
![Page 27: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/27.jpg)
Computing Alpha ValuesComputing Alpha Values
Intuition:• Alpha defines penumbra shape• Should vary with ratio b/r
blocker
smoothie α
receiver
light source
r b
![Page 28: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/28.jpg)
Without Alpha RemappingWithout Alpha Remapping
Linearly interpolated alpha undesired results!
smoothie contact problem
![Page 29: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/29.jpg)
With Alpha RemappingWith Alpha Remapping
Remap alpha at each pixel using ratio b/r:
smoothie fixed contact problem
α’ = α / (1 – b/r)
![Page 30: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/30.jpg)
Computing Alpha ValuesComputing Alpha Values
1. Linearly interpolate alpha2. Remap alpha at each pixel using ratio b/r:
α’ = α / (1 – b/r)
original α remapped α result
![Page 31: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/31.jpg)
Multiple ObjectsMultiple Objects
![Page 32: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/32.jpg)
Multiple ReceiversMultiple Receivers
light’s view
same thickness
Smoothie buffer(linearly-interpolated α)
![Page 33: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/33.jpg)
Multiple ReceiversMultiple Receivers
light’s view
Smoothie buffer(remapped α)
different thickness
![Page 34: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/34.jpg)
Multiple ReceiversMultiple Receivers
Final image
observer’s view
different thickness
![Page 35: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/35.jpg)
Multiple BlockersMultiple Blockers
What happens when smoothies overlap?
smoothie overlap
![Page 36: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/36.jpg)
Multiple BlockersMultiple Blockers
Minimum blending: just keep minimum of alpha values
smoothie ray tracer
![Page 37: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/37.jpg)
Implementation
![Page 38: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/38.jpg)
ImplementationImplementation
• Details (OpenGL)
• Hardware acceleration• Optimizations
![Page 39: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/39.jpg)
Create Shadow MapCreate Shadow Map
Render to standard OpenGL depth buffer• 24-bit, window space• Post-perspective, non-linear distribution of z
Also write to color buffer (using fragment program)• Floating-point, eye space• Pre-perspective, linear distribution of z• Unlike regular shadow maps
Why? Need linear depth for next rendering pass
![Page 40: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/40.jpg)
Create Smoothie BufferCreate Smoothie Buffer
Conceptually, draw the smoothies once:• store depth and alpha into a buffer
In practice, draw smoothies twice:1. store nearest depth value into depth buffer2. blend alpha values into color buffer
![Page 41: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/41.jpg)
Computing AlphaComputing Alpha
α’ = α / (1 – b/r)How to compute alpha? Recall• α is linearly interpolated from 0 to 1 across quad• b is computed in fragment program• r is obtained from shadow map (linear depth!)
blocker
smoothie α
receiver
light source
r b
current sample
![Page 42: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/42.jpg)
Minimum BlendingMinimum Blending
Implementation in OpenGL:• Supported natively in hardware• use glBlendEquationEXT(GL_MIN_EXT)
![Page 43: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/43.jpg)
Final Rendering PassFinal Rendering Pass
Implementation using fragment program:• Project each sample into light space• Multiple texture lookups
shadow map(depth)
smoothie buffer(depth)
smoothie buffer(alpha)
![Page 44: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/44.jpg)
Additional DetailsAdditional Details
Combination of methods:• percentage closer filtering (2 x 2 filtering in shader)• perspective shadow maps
See paper (course notes) for Cg shader code
![Page 45: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/45.jpg)
Examples
![Page 46: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/46.jpg)
VideoVideo
![Page 47: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/47.jpg)
Hiding Aliasing (256 x 256)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
![Page 48: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/48.jpg)
Hiding Aliasing (1k x 1k)Hiding Aliasing (1k x 1k)
17 ms 142 ms
22 ms 24 ms
shadow map bicubic filter
smoothie (t = 0.02) smoothie (t = 0.08)
![Page 49: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/49.jpg)
Antialiasing Example #1Antialiasing Example #1
shadow map
hard shadows(aliased)
![Page 50: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/50.jpg)
Antialiasing Example #1Antialiasing Example #1
smoothies
soft shadows(antialiased)
![Page 51: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/51.jpg)
Antialiasing Example #2Antialiasing Example #2
shadow map
hard shadows(aliased)
![Page 52: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/52.jpg)
Antialiasing Example #2Antialiasing Example #2
smoothies
soft shadows(antialiased)
![Page 53: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/53.jpg)
LimitationsLimitations
smoothie ray tracer
increasing sizeof light source
![Page 54: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/54.jpg)
VideoVideo
original md2shader demo courtesy of Mark Kilgard
![Page 55: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/55.jpg)
TradeoffsTradeoffs
Shadow maps:• Assumes directional light or spotlight• Discrete buffer samples
![Page 56: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/56.jpg)
TradeoffsTradeoffs
Shadow maps:• Assumes directional light or spotlight• Discrete buffer samples
Shadow volumes:• Assumes blockers are closed triangle meshes • Silhouettes identified in object space
![Page 57: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/57.jpg)
TradeoffsTradeoffs
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
![Page 58: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/58.jpg)
SummarySummary
Main points:• Simple extension to shadow maps• Shadows edges are fake, but look like soft shadows• Fast, maps well to graphics hardware
![Page 59: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/59.jpg)
AcknowledgmentsAcknowledgments
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
![Page 60: Rendering Fake Soft Shadows with Smoothies · Rendering Fake Soft Shadows with Smoothies • E. Chan and F. Durand [EGSR 2003] Penumbra Maps • C. Wyman and C. Hansen [EGSR 2003]](https://reader035.fdocuments.us/reader035/viewer/2022062920/5f02af5c7e708231d4057f26/html5/thumbnails/60.jpg)