shadow silhouette maps pradeep sen, mike cammarano, pat hanrahan stanford university
Post on 20-Dec-2015
216 views
TRANSCRIPT
![Page 1: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/1.jpg)
Shadow Silhouette MapsShadow Silhouette Maps
Pradeep Sen , Mike Cammarano , Pat HanrahanStanford University
![Page 2: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/2.jpg)
Game PlanGame Plan
Motivation
Algorithm
Implementation
Examples
Comparison
![Page 3: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/3.jpg)
MotivationMotivation
Why another shadow algorithm?
Why not use perspective shadow maps?
Stamminger and Drettakis, SIGGRAPH 2002
![Page 4: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/4.jpg)
Perspective Shadow MapsPerspective Shadow Maps
Addresses perspective aliasing
Optimizes distribution of depth samples
Difficulties:
• Does not handle projection aliasing
![Page 5: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/5.jpg)
ObservationObservation
Shadow maps
• undersampling can occur anywhere
• artifacts visible only at shadow edges
![Page 6: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/6.jpg)
How To Fix Silhouettes?How To Fix Silhouettes?
depth map silhouette map
One solution:
• use a better silhouette approximation
![Page 7: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/7.jpg)
Shadow Map (Review)Shadow Map (Review)
light source
blocker
receiver
![Page 8: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/8.jpg)
Shadow Map (Review)Shadow Map (Review)
depth map
![Page 9: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/9.jpg)
Shadow Map (Review)Shadow Map (Review)
depth map
![Page 10: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/10.jpg)
Shadow Map (Review)Shadow Map (Review)
depth map
![Page 11: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/11.jpg)
Depth MeshDepth Mesh
depth mesh (sampling grid)
![Page 12: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/12.jpg)
Depth MeshDepth Mesh
depth mesh + dual mesh
original grid (blue)
dual grid (red)
![Page 13: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/13.jpg)
Depth MeshDepth Mesh
original grid (blue)
dual grid (red)
discrete silhouetteboundary
depth mesh + dual mesh
![Page 14: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/14.jpg)
Depth MeshDepth Mesh
original grid (blue)
dual grid (red)
discrete silhouetteboundary
continuous silhouetteboundary (green)
depth mesh + dual mesh
![Page 15: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/15.jpg)
Depth MeshDepth Mesh
original grid (blue)
dual grid (red)
discrete silhouetteboundary
continuous silhouetteboundary (green)
silhouette map pixels
depth mesh + dual mesh
![Page 16: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/16.jpg)
Depth Mesh DeformationDepth Mesh Deformation
deformed depth mesh
Move depth samplesto lie on silhouette curve
![Page 17: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/17.jpg)
Depth Mesh DeformationDepth Mesh Deformation
adjusted depth samples
deformed depth mesh
![Page 18: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/18.jpg)
Depth Mesh DeformationDepth Mesh Deformation
adjusted depth samples
deformed depth mesh
![Page 19: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/19.jpg)
Better ApproximationBetter Approximation
piecewise-linear approximation
![Page 20: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/20.jpg)
Silhouette MapSilhouette Map
silhouette mapdepth map
deformed depth map
Decomposition ofdeformed depth map
![Page 21: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/21.jpg)
What is a Silhouette Map?What is a Silhouette Map?
Many ways to think about it:
• Edge representation
• 2D image, same resolution as depth map
• Offset from depth map by ½ pixel in x, y
• Stores xy-coordinates of silhouette points
• Stores only one silhouette point per texel
• Piecewise-linear approximation
![Page 22: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/22.jpg)
Algorithm
![Page 23: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/23.jpg)
Algorithm PropertiesAlgorithm Properties
• Scalable
• Treats perspective and projection aliasing
• Supports dynamic scenes
• Maps to graphics hardware
![Page 24: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/24.jpg)
Algorithm OverviewAlgorithm Overview
![Page 25: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/25.jpg)
Algorithm OverviewAlgorithm Overview
Image-space algorithm
![Page 26: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/26.jpg)
Algorithm OverviewAlgorithm Overview
Create depth map
Step 1
![Page 27: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/27.jpg)
Algorithm OverviewAlgorithm Overview
Create silhouette map
Step 2
![Page 28: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/28.jpg)
Algorithm OverviewAlgorithm Overview
Render scene and shadows
Step 3
![Page 29: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/29.jpg)
Algorithm DetailsAlgorithm Details
![Page 30: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/30.jpg)
Algorithm DetailsAlgorithm Details
• Focus now on concepts
• Worry later about implementation
?
![Page 31: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/31.jpg)
Create Depth MapCreate Depth Map
Same as in regular shadow maps
![Page 32: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/32.jpg)
Identify Silhouette EdgesIdentify Silhouette Edges
Find object-space silhouettes (light’s view)
![Page 33: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/33.jpg)
Create Silhouette MapCreate Silhouette Map
• Rasterize silhouette edges (light’s view)
• Find points that lie on silhouette edges
• Store one such point per texel
silhouette edges silhouette points
![Page 34: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/34.jpg)
Compute Silhouette PointsCompute Silhouette Points
Example:
silhouette edges
point of view of light
![Page 35: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/35.jpg)
Compute Silhouette PointsCompute Silhouette Points
silhouette map (dual grid)
![Page 36: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/36.jpg)
Compute Silhouette PointsCompute Silhouette Points
rasterization of silhouettes
![Page 37: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/37.jpg)
Compute Silhouette PointsCompute Silhouette Points
rasterization of silhouettes
pick an edge
![Page 38: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/38.jpg)
Compute Silhouette PointsCompute Silhouette Points
rasterization of silhouettes
rasterize edge conservatively:be sure to generate fragmentsfor silhouette pixels
![Page 39: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/39.jpg)
Compute Silhouette PointsCompute Silhouette Points
rasterization of silhouettes
for each fragment:pick a point on the edge
![Page 40: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/40.jpg)
Compute Silhouette PointsCompute Silhouette Points
rasterization of silhouettes
silhouette points
![Page 41: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/41.jpg)
Compute Silhouette PointsCompute Silhouette Points
rasterization of silhouettes
do the same for other edges
![Page 42: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/42.jpg)
Compute Silhouette PointsCompute Silhouette Points
rasterization of silhouettes
completed silhouette map
subtle issues:• only one point per texel• new values overwrite old ones
how to pick silhouette points?
![Page 43: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/43.jpg)
Picking Silhouette PointsPicking Silhouette Points
Pick a point on the line that lies inside the texel
?
![Page 44: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/44.jpg)
Silhouette Point AlgorithmSilhouette Point Algorithm
Case 1:
vertex inside
![Page 45: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/45.jpg)
Silhouette Point AlgorithmSilhouette Point Algorithm
Case 1:
vertex inside
pick the vertex itself
![Page 46: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/46.jpg)
Silhouette Point AlgorithmSilhouette Point Algorithm
Case 1:
vertex inside
test for intersection against two diagonals
oneintersection
Case 2:
![Page 47: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/47.jpg)
Silhouette Point AlgorithmSilhouette Point Algorithm
Case 1:
vertex inside
pick the intersection point itself
Case 2:
oneintersection
![Page 48: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/48.jpg)
Silhouette Point AlgorithmSilhouette Point Algorithm
Case 1:
vertex inside
Case 2:
oneintersection
Case 3:
twointersections
![Page 49: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/49.jpg)
Silhouette Point AlgorithmSilhouette Point Algorithm
Case 1:
vertex inside
Case 2:
oneintersection
Case 3:
twointersections
use midpoint
![Page 50: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/50.jpg)
Silhouette Point AlgorithmSilhouette Point Algorithm
Case 1:
vertex inside
Case 2:
oneintersection
Case 3:
twointersections
Case 4:
nointersections
![Page 51: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/51.jpg)
Silhouette Point AlgorithmSilhouette Point Algorithm
Case 1:
vertex inside
Case 2:
oneintersection
Case 3:
twointersections
Case 4:
nointersections
![Page 52: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/52.jpg)
Render sceneRender scene
How to compute shadows?
Split problem into two parts:
• non-silhouette pixels: use shadow map
• silhouette pixels: use silhouette map
![Page 53: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/53.jpg)
Find Silhouette PixelsFind Silhouette Pixels
• Project sample into light space
• Compare depth against 4 nearest samples in shadow map
shadow map samples
sample to be shaded(projected to light space)
![Page 54: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/54.jpg)
Find Silhouette PixelsFind Silhouette Pixels
S
S
S
S
results agree:non-silhouette pixel
![Page 55: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/55.jpg)
L
L
S
S
Find Silhouette PixelsFind Silhouette Pixels
S
S
S
S
results agree:non-silhouette pixel
results disagree:silhouette pixel
Case #1 Case #2
![Page 56: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/56.jpg)
L
L
L
L
Treat Non-Silhouette PixelsTreat Non-Silhouette Pixels
S
S
S
S
in shadow illuminated
Easy: use depth comparison result
![Page 57: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/57.jpg)
Treat Silhouette PixelsTreat Silhouette Pixels
fetch five silhouette points
Reconstruct edge using silhouette map
L
L
S
S
![Page 58: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/58.jpg)
Treat Silhouette PixelsTreat Silhouette Pixels
Reconstruct edge using silhouette map
L
L
S
Ssplits cell into four quadrants
![Page 59: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/59.jpg)
Treat Silhouette PixelsTreat Silhouette Pixels
Shade sample according to quadrant
L
L
S
Sexample: sample in shadow
![Page 60: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/60.jpg)
Six Combinations (1 of 6)Six Combinations (1 of 6)
S
S
S
S
![Page 61: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/61.jpg)
Six Combinations (2 of 6)Six Combinations (2 of 6)
S
S
S
S
L
S
S
S
![Page 62: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/62.jpg)
Six Combinations (3 of 6)Six Combinations (3 of 6)
S
S
S
S
L
S
S
S
L
L
S
S
![Page 63: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/63.jpg)
Six Combinations (4 of 6)Six Combinations (4 of 6)
S
S
S
S
L
S
S
S
L
L
S
S
L
S
S
L
![Page 64: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/64.jpg)
Six Combinations (5 of 6)Six Combinations (5 of 6)
S
S
S
S
L
S
S
S
L
L
S
S
L
S
S
L
L
L
S
L
![Page 65: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/65.jpg)
Six Combinations (6 of 6)Six Combinations (6 of 6)
S
S
S
S
L
S
S
S
L
L
S
S
L
S
S
L
L
L
S
L
L
L
L
L
![Page 66: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/66.jpg)
Algorithm RecapAlgorithm Recap
Image-space algorithm
![Page 67: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/67.jpg)
Algorithm Recap (1 of 3)Algorithm Recap (1 of 3)
Create depth map
Easy: just like regular shadow map
![Page 68: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/68.jpg)
Algorithm Recap (2 of 3)Algorithm Recap (2 of 3)
Pick silhouette points, 1 per texel
Create silhouette map
Rasterize silhouette edges
![Page 69: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/69.jpg)
Algorithm Recap (3 of 3)Algorithm Recap (3 of 3)
Render scene and shadows
Reconstruct shadow edge
Fetch local silhouette points
![Page 70: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/70.jpg)
Implementation
![Page 71: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/71.jpg)
ImplementationImplementation
• Details
• Hardware acceleration
• Optimizations
![Page 72: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/72.jpg)
Create Silhouette MapCreate Silhouette Map
Goal: store points that lie on silhouette
![Page 73: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/73.jpg)
Initialize Silhouette MapInitialize Silhouette Map
Place default point at texel center
default silhouette point
silhouette map texel
![Page 74: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/74.jpg)
Create Silhouette MapCreate Silhouette Map
Fragment program finds silhouette points
silhouette point
![Page 75: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/75.jpg)
Create Silhouette MapCreate Silhouette Map
Fragment program finds silhouette points• use local coordinates • store only xy offsets
(0,0) (1,0)
(1,1)(0,1)
(0.6, 0.3)
![Page 76: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/76.jpg)
Rasterizing SilhouettesRasterizing Silhouettes
Two issues:• must guarantee generation
of silhouette pixels• discard occluded silhouettes
![Page 77: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/77.jpg)
Occluded Silhouette PixelsOccluded Silhouette Pixels
Example:
don’t draw these!
![Page 78: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/78.jpg)
Occluded Silhouette PixelsOccluded Silhouette Pixels
Implementing occlusion:• Use depth map from first pass• Recall silhouette map offset by ½ pixel
?
?
?
?
• Use fragment kill if depth is greater than 4 nearest samples in depth map
![Page 79: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/79.jpg)
Rendering Final ImageRendering Final Image
Recall• Draw from observer’s view• Identify silhouette vs. non-silhouette pixels• Use shadow map for non-silhouette pixels• Use silhouette map for silhouette pixels
![Page 80: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/80.jpg)
Silhouette ReconstructionSilhouette Reconstruction
sample point
Use a fragment program tocompute the shadows
![Page 81: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/81.jpg)
Silhouette ReconstructionSilhouette Reconstruction
silhouette points
Fetch silhouette points• 1 interior point• 4 neighbors
![Page 82: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/82.jpg)
Silhouette ReconstructionSilhouette Reconstruction
Fetch silhouette points• 1 interior point• 4 neighbors
Create eight wedges
![Page 83: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/83.jpg)
Silhouette ReconstructionSilhouette Reconstruction
Fetch silhouette points• 1 interior point• 4 neighbors
Create eight wedges
Find enclosing wedge• point-in-triangle tests
![Page 84: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/84.jpg)
Silhouette ReconstructionSilhouette Reconstruction
S L
S L
Fetch silhouette points• 1 interior point• 4 neighbors
Create eight wedges
Find enclosing wedge• point-in-triangle tests
Shade the sample usingwedge’s depth test result
![Page 85: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/85.jpg)
Silhouette ReconstructionSilhouette Reconstruction
S L
S L
Fetch silhouette points• 1 interior point• 4 neighbors
Create eight wedges
Find enclosing wedge• point-in-triangle tests
Shade the sample usingwedge’s depth test result
Repeat for all samples
![Page 86: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/86.jpg)
OptimizationsOptimizations
Fragment program is expensive
• lots of arithmetic
• lots of texture reads (5 silhouette points)
However, only required for silhouette pixels!
![Page 87: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/87.jpg)
OptimizationsOptimizations
Very few silhouette pixels in practice
original scene silhouette pixels(1% total image)
![Page 88: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/88.jpg)
OptimizationsOptimizations
Use fragment program branching
• Potentially huge performance wins
• Only available in latest hardware
![Page 89: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/89.jpg)
Examples and Analysis
![Page 90: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/90.jpg)
Example 1Example 1
shadow maps shadow volumes silhouette maps
![Page 91: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/91.jpg)
Example 1 (closeup)Example 1 (closeup)
shadow maps shadow volumes silhouette maps
![Page 92: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/92.jpg)
Example 2Example 2
shadow maps
![Page 93: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/93.jpg)
Example 2Example 2
projected silhouette map
![Page 94: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/94.jpg)
Example 2Example 2
shadows using silhouette map
![Page 95: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/95.jpg)
Quality ComparisonQuality Comparison
silhouette mapshadow map
![Page 96: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/96.jpg)
ArtifactsArtifacts
• Silhouette map: one point per texel
• Multiple edges inside a texel
![Page 97: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/97.jpg)
ArtifactsArtifacts
shadow maps shadow volumes silhouette maps
![Page 98: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/98.jpg)
Artifacts (closeup)Artifacts (closeup)
shadow maps shadow volumes silhouette maps
Artifacts due to multiple edges
More noticeable when animated
![Page 99: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/99.jpg)
Algorithm ComparisonAlgorithm Comparison
Perspective Shadow Maps:• same generality as shadow maps• minimal overhead (2 passes)• doesn’t address aliasing in all cases
Shadow Silhouette Maps:• addresses aliasing more generally• more overhead (3 passes + big shaders)• less general than shadow maps
![Page 100: Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University](https://reader038.vdocuments.site/reader038/viewer/2022110322/56649d445503460f94a20d4f/html5/thumbnails/100.jpg)
報告完畢