Page 1
Silhouette ClippingSilhouette ClippingSilhouette ClippingSilhouette Clipping
Pedro V. SanderPedro V. Sander
Xianfeng GuXianfeng Gu
Steven J. GortlerSteven J. Gortler
Harvard UniversityHarvard University
Pedro V. SanderPedro V. Sander
Xianfeng GuXianfeng Gu
Steven J. GortlerSteven J. Gortler
Harvard UniversityHarvard University
Hugues H. HoppeHugues H. Hoppe
John M. SnyderJohn M. Snyder
Microsoft ResearchMicrosoft Research
Hugues H. HoppeHugues H. Hoppe
John M. SnyderJohn M. Snyder
Microsoft ResearchMicrosoft Research
Page 2
Mesh simplificationMesh simplificationMesh simplificationMesh simplification
original meshoriginal mesh+ texture/bump map+ texture/bump map
poorpoorsilhouettesilhouette
poorpoorsilhouettesilhouette
coarse meshcoarse mesh
Page 3
silhouette clippedsilhouette clipped
Silhouette clippingSilhouette clippingSilhouette clippingSilhouette clipping
original meshoriginal mesh coarse meshcoarse mesh+ texture/bump map+ texture/bump map
Page 4
silhouette clippedsilhouette clipped
Silhouette clippingSilhouette clippingSilhouette clippingSilhouette clipping
original meshoriginal mesh coarse meshcoarse mesh+ texture/bump map+ texture/bump map
Page 5
Silhouette clipping demoSilhouette clipping demoSilhouette clipping demoSilhouette clipping demo
Page 6
normal maporiginal mesh
rendered
coarse mesh
OverviewOverviewOverviewOverview
[Soucy et al 96][Soucy et al 96][Cignoni et al 98][Cignoni et al 98][Cohen et al 98][Cohen et al 98]
RuntimePreprocess
Page 7
normal map stencil mask
edge hierarchy
original mesh
rendered
coarse hull
2D silhouette
RuntimePreprocess
OverviewOverviewOverviewOverview
Page 8
normal map silhouetteclipped
edge hierarchy
original mesh
rendered
coarse hull
2D silhouette
RuntimePreprocess
OverviewOverviewOverviewOverview
Page 9
Major contributionsMajor contributionsMajor contributionsMajor contributions Progressive hullProgressive hull Texture creationTexture creation Silhouette extractionSilhouette extraction Stencil settingStencil setting
Progressive hullProgressive hull Texture creationTexture creation Silhouette extractionSilhouette extraction Stencil settingStencil setting
Page 10
Major contributionsMajor contributionsMajor contributionsMajor contributions Progressive hullProgressive hull Texture creationTexture creation Silhouette extractionSilhouette extraction Stencil settingStencil setting
Progressive hullProgressive hull Texture creationTexture creation Silhouette extractionSilhouette extraction Stencil settingStencil setting
Page 11
Major contributionsMajor contributionsMajor contributionsMajor contributions Progressive hullProgressive hull Texture creationTexture creation Silhouette extractionSilhouette extraction Stencil settingStencil setting
Progressive hullProgressive hull Texture creationTexture creation Silhouette extractionSilhouette extraction Stencil settingStencil setting
Page 12
Major contributionsMajor contributionsMajor contributionsMajor contributions Progressive hullProgressive hull Texture creationTexture creation Silhouette extractionSilhouette extraction Stencil settingStencil setting
Progressive hullProgressive hull Texture creationTexture creation Silhouette extractionSilhouette extraction Stencil settingStencil setting
Page 13
Major contributionsMajor contributionsMajor contributionsMajor contributions Progressive hullProgressive hull Texture creationTexture creation Silhouette extractionSilhouette extraction Stencil settingStencil setting
Progressive hullProgressive hull Texture creationTexture creation Silhouette extractionSilhouette extraction Stencil settingStencil setting
Page 14
Coarse hullCoarse hullCoarse hullCoarse hull
Given mesh, create coarse mesh that encloses it.Given mesh, create coarse mesh that encloses it.
Original meshOriginal mesh Coarse hullCoarse hull
Page 15
Progressive hullProgressive hullProgressive hullProgressive hull
Progressive mesh sequenceProgressive mesh sequence Every mesh Every mesh enclosesencloses all finer meshes. all finer meshes.
Progressive mesh sequenceProgressive mesh sequence Every mesh Every mesh enclosesencloses all finer meshes. all finer meshes.
Page 16
Edge collapseEdge collapseEdge collapseEdge collapse
Perform greedy sequence of collapses.Perform greedy sequence of collapses. Ensure new mesh encloses old mesh:Ensure new mesh encloses old mesh:
Linear programming problem Linear programming problem
Perform greedy sequence of collapses.Perform greedy sequence of collapses. Ensure new mesh encloses old mesh:Ensure new mesh encloses old mesh:
Linear programming problem Linear programming problem
M i M
i-1
Page 17
Linear programming (2D)Linear programming (2D)Linear programming (2D)Linear programming (2D)
Page 18
Linear programming (2D)Linear programming (2D)Linear programming (2D)Linear programming (2D)
Page 19
Linear programming (2D)Linear programming (2D)Linear programming (2D)Linear programming (2D)
Page 20
Linear programming (2D)Linear programming (2D)Linear programming (2D)Linear programming (2D)
Page 21
Linear programming (2D)Linear programming (2D)Linear programming (2D)Linear programming (2D)
Page 22
Linear programming (2D)Linear programming (2D)Linear programming (2D)Linear programming (2D)
Page 23
Linear programming (2D)Linear programming (2D)Linear programming (2D)Linear programming (2D)
new vertexnew vertexpositionposition
Page 24
Linear programming (2D)Linear programming (2D)Linear programming (2D)Linear programming (2D)
Page 25
Progressive hull demoProgressive hull demoProgressive hull demoProgressive hull demo
Page 26
Texture creationTexture creationTexture creationTexture creation
normal maporiginal mesh
rendered
coarse hull
[Cignoni et al 98][Cignoni et al 98][Soucy et al 96][Soucy et al 96]
Page 27
Texture creationTexture creationTexture creationTexture creation
closest-pointclosest-point[Cignoni et al 98][Cignoni et al 98]
vertex normalsvertex normals
normal-shootingnormal-shootingOursOurs
originaloriginal
coarsecoarse
Page 28
Silhouette extractionSilhouette extractionSilhouette extractionSilhouette extraction
Given mesh and viewpoint, return edges on silhouette.Given mesh and viewpoint, return edges on silhouette.
Page 29
What is a silhouette edge?What is a silhouette edge?What is a silhouette edge?What is a silhouette edge?
Edge is on silhouette iff Edge is on silhouette iff oneone adjacent adjacent triangle faces towards viewpoint:triangle faces towards viewpoint:
Edge is on silhouette iff Edge is on silhouette iff oneone adjacent adjacent triangle faces towards viewpoint:triangle faces towards viewpoint:
not silhouettenot silhouette silhouettesilhouette
Page 30
Related schemesRelated schemesRelated schemesRelated schemes
[Markosian et al 97][Markosian et al 97] probabilisticprobabilistic
[Gooch et al 99] [Gooch et al 99] assumes orthographic viewassumes orthographic view
[Barequet et al 99] [Hertzmann & Zorin 00][Barequet et al 99] [Hertzmann & Zorin 00] dual-space formulation dual-space formulation
[Kumar et al 96] [Johannsen & Carter 98] [Kumar et al 96] [Johannsen & Carter 98] backface cullingbackface culling
Ours: optimized hierarchy of anchored conesOurs: optimized hierarchy of anchored cones extracts 3,500 sil edges of 100,000 edges at 250 fpsextracts 3,500 sil edges of 100,000 edges at 250 fps
[Markosian et al 97][Markosian et al 97] probabilisticprobabilistic
[Gooch et al 99] [Gooch et al 99] assumes orthographic viewassumes orthographic view
[Barequet et al 99] [Hertzmann & Zorin 00][Barequet et al 99] [Hertzmann & Zorin 00] dual-space formulation dual-space formulation
[Kumar et al 96] [Johannsen & Carter 98] [Kumar et al 96] [Johannsen & Carter 98] backface cullingbackface culling
Ours: optimized hierarchy of anchored conesOurs: optimized hierarchy of anchored cones extracts 3,500 sil edges of 100,000 edges at 250 fpsextracts 3,500 sil edges of 100,000 edges at 250 fps
Page 31
Hierarchical cullingHierarchical cullingHierarchical cullingHierarchical culling
Each node contains:Each node contains: cluster of mesh edgescluster of mesh edges spatial culling primitivespatial culling primitive
Each node contains:Each node contains: cluster of mesh edgescluster of mesh edges spatial culling primitivespatial culling primitive
Page 32
Hierarchical cullingHierarchical cullingHierarchical cullingHierarchical culling
Each node contains:Each node contains: cluster of mesh edgescluster of mesh edges spatial culling primitivespatial culling primitive
Each node contains:Each node contains: cluster of mesh edgescluster of mesh edges spatial culling primitivespatial culling primitive
Page 33
Spatial culling primitiveSpatial culling primitiveSpatial culling primitiveSpatial culling primitive
Given cluster of edges,Given cluster of edges,check if there are no silhouette edges.check if there are no silhouette edges.
True if adjacent triangles are True if adjacent triangles are all front-facing or all back-facing.all front-facing or all back-facing.
Given cluster of edges,Given cluster of edges,check if there are no silhouette edges.check if there are no silhouette edges.
True if adjacent triangles are True if adjacent triangles are all front-facing or all back-facing.all front-facing or all back-facing.
2D cross-section2D cross-section
Page 34
Spatial culling primitiveSpatial culling primitiveSpatial culling primitiveSpatial culling primitive
Given cluster of edges,Given cluster of edges,check if there are no silhouette edges.check if there are no silhouette edges.
True if adjacent triangles are True if adjacent triangles are all front-facing or all back-facing.all front-facing or all back-facing.
Given cluster of edges,Given cluster of edges,check if there are no silhouette edges.check if there are no silhouette edges.
True if adjacent triangles are True if adjacent triangles are all front-facing or all back-facing.all front-facing or all back-facing.
2D cross-section2D cross-section
Page 35
Spatial culling primitiveSpatial culling primitiveSpatial culling primitiveSpatial culling primitive
Given cluster of edges,Given cluster of edges,check if there are no silhouette edges.check if there are no silhouette edges.
True if adjacent triangles are True if adjacent triangles are all front-facing or all back-facing.all front-facing or all back-facing.
Given cluster of edges,Given cluster of edges,check if there are no silhouette edges.check if there are no silhouette edges.
True if adjacent triangles are True if adjacent triangles are all front-facing or all back-facing.all front-facing or all back-facing.
Page 36
Spatial culling primitiveSpatial culling primitiveSpatial culling primitiveSpatial culling primitive
Given cluster of edges,Given cluster of edges,check if there are no silhouette edges.check if there are no silhouette edges.
True if adjacent triangles are True if adjacent triangles are all front-facingall front-facing or all back-facing. or all back-facing.
Given cluster of edges,Given cluster of edges,check if there are no silhouette edges.check if there are no silhouette edges.
True if adjacent triangles are True if adjacent triangles are all front-facingall front-facing or all back-facing. or all back-facing.
Page 37
Spatial culling primitiveSpatial culling primitiveSpatial culling primitiveSpatial culling primitive
Given cluster of edges,Given cluster of edges,check if there are no silhouette edges.check if there are no silhouette edges.
True if adjacent triangles are True if adjacent triangles are all front-facingall front-facing or or all back-facingall back-facing..
Given cluster of edges,Given cluster of edges,check if there are no silhouette edges.check if there are no silhouette edges.
True if adjacent triangles are True if adjacent triangles are all front-facingall front-facing or or all back-facingall back-facing..
Page 38
Anchored cone primitiveAnchored cone primitiveAnchored cone primitiveAnchored cone primitive
front-facingcone
back-facingcone
Page 39
Anchored cone primitiveAnchored cone primitiveAnchored cone primitiveAnchored cone primitive
Calculate central axisCalculate central axisGilbert’s algorithmGilbert’s algorithm
Calculate cone angleCalculate cone angle
Calculate anchor positionsCalculate anchor positionsLinear programmingLinear programming
Calculate central axisCalculate central axisGilbert’s algorithmGilbert’s algorithm
Calculate cone angleCalculate cone angle
Calculate anchor positionsCalculate anchor positionsLinear programmingLinear programming
Page 40
Anchored cone primitiveAnchored cone primitiveAnchored cone primitiveAnchored cone primitive
Calculate central axisCalculate central axisGilbert’s algorithmGilbert’s algorithm
Calculate cone angleCalculate cone angle
Calculate anchor positionsCalculate anchor positionsLinear programmingLinear programming
Calculate central axisCalculate central axisGilbert’s algorithmGilbert’s algorithm
Calculate cone angleCalculate cone angle
Calculate anchor positionsCalculate anchor positionsLinear programmingLinear programming
Page 41
Anchored cone primitiveAnchored cone primitiveAnchored cone primitiveAnchored cone primitive
Calculate central axisCalculate central axisGilbert’s algorithmGilbert’s algorithm
Calculate cone angleCalculate cone angle
Calculate anchor positionsCalculate anchor positionsLinear programmingLinear programming
Calculate central axisCalculate central axisGilbert’s algorithmGilbert’s algorithm
Calculate cone angleCalculate cone angle
Calculate anchor positionsCalculate anchor positionsLinear programmingLinear programming
Page 42
Hierarchy constructionHierarchy constructionHierarchy constructionHierarchy construction
Bottom-up greedy joiningBottom-up greedy joining Bottom-up greedy joiningBottom-up greedy joining
two clusterstwo clusters
mergemerge adoptadoptparentparent
Page 43
Hierarchy constructionHierarchy constructionHierarchy constructionHierarchy construction
Each root has probability of culling.Each root has probability of culling.
We compute an expected extraction We compute an expected extraction cost for each root, and the forest.cost for each root, and the forest.
Choose next join operation to Choose next join operation to maximally decrease expected maximally decrease expected extraction cost.extraction cost.
Each root has probability of culling.Each root has probability of culling.
We compute an expected extraction We compute an expected extraction cost for each root, and the forest.cost for each root, and the forest.
Choose next join operation to Choose next join operation to maximally decrease expected maximally decrease expected extraction cost.extraction cost.
Page 44
Silhouette extraction videoSilhouette extraction videoSilhouette extraction videoSilhouette extraction video
Page 45
PerformancePerformancePerformancePerformance
ModelModel DragonDragon BunnyBunny ParasaurParasaur KnotKnot Holes3Holes3
Total edgesTotal edges 600,000600,000 104,511104,511 65,79965,799 278,784278,784 282,624282,624
Sil edgesSil edges 23,49323,493 3,4613,461 3,2273,227 3,2913,291 1,7371,737
Tested edgesTested edges 67,93467,934 10,25610,256 10,93810,938 13,13413,134 5,9765,976
Tested conesTested cones 26,29126,291 4,2824,282 3,5383,538 7,9267,926 4,5944,594
Time (ms)Time (ms) 28.228.2 4.14.1 4.34.3 7.97.9 3.33.3
Page 46
PerformancePerformancePerformancePerformance
ModelModel DragonDragon BunnyBunny ParasaurParasaur KnotKnot Holes3Holes3
Total edgesTotal edges 600,000600,000 104,511104,511 65,79965,799 278,784278,784 282,624282,624
Sil edgesSil edges 23,49323,493 3,4613,461 3,2273,227 3,2913,291 1,7371,737
Tested edgesTested edges 67,93467,934 10,25610,256 10,93810,938 13,13413,134 5,9765,976
Tested conesTested cones 26,29126,291 4,2824,282 3,5383,538 7,9267,926 4,5944,594
Time (ms)Time (ms) 28.228.2 4.14.1 4.34.3 7.97.9 3.33.3
Page 47
PerformancePerformancePerformancePerformance
ModelModel DragonDragon BunnyBunny ParasaurParasaur KnotKnot Holes3Holes3
Total edgesTotal edges 600,000600,000 104,511104,511 65,79965,799 278,784278,784 282,624282,624
Sil edgesSil edges 23,49323,493 3,4613,461 3,2273,227 3,2913,291 1,7371,737
Tested edgesTested edges 67,93467,934 10,25610,256 10,93810,938 13,13413,134 5,9765,976
Tested conesTested cones 26,29126,291 4,2824,282 3,5383,538 7,9267,926 4,5944,594
Time (ms)Time (ms) 28.228.2 4.14.1 4.34.3 7.97.9 3.33.3
Page 48
PerformancePerformancePerformancePerformance
ModelModel DragonDragon BunnyBunny ParasaurParasaur KnotKnot Holes3Holes3
Total edgesTotal edges 600,000600,000 104,511104,511 65,79965,799 278,784278,784 282,624282,624
Sil edgesSil edges 23,49323,493 3,4613,461 3,2273,227 3,2913,291 1,7371,737
Tested edgesTested edges 67,93467,934 10,25610,256 10,93810,938 13,13413,134 5,9765,976
Tested conesTested cones 26,29126,291 4,2824,282 3,5383,538 7,9267,926 4,5944,594
Time (ms)Time (ms) 28.228.2 4.14.1 4.34.3 7.97.9 3.33.3
Page 49
PerformancePerformancePerformancePerformance
ModelModel DragonDragon BunnyBunny ParasaurParasaur KnotKnot Holes3Holes3
Total edgesTotal edges 600,000600,000 104,511104,511 65,79965,799 278,784278,784 282,624282,624
Sil edgesSil edges 23,49323,493 3,4613,461 3,2273,227 3,2913,291 1,7371,737
Tested edgesTested edges 67,93467,934 10,25610,256 10,93810,938 13,13413,134 5,9765,976
Tested conesTested cones 26,29126,291 4,2824,282 3,5383,538 7,9267,926 4,5944,594
Time (ms)Time (ms) 28.228.2 4.14.1 4.34.3 7.97.9 3.33.3
Page 50
PerformancePerformancePerformancePerformance
ModelModel DragonDragon BunnyBunny ParasaurParasaur KnotKnot Holes3Holes3
Total edgesTotal edges 600,000600,000 104,511104,511 65,79965,799 278,784278,784 282,624282,624
Sil edgesSil edges 23,49323,493 3,4613,461 3,2273,227 3,2913,291 1,7371,737
Tested edgesTested edges 67,93467,934 10,25610,256 10,93810,938 13,13413,134 5,9765,976
Tested conesTested cones 26,29126,291 4,2824,282 3,5383,538 7,9267,926 4,5944,594
Time (ms)Time (ms) 28.228.2 4.14.1 4.34.3 7.97.9 3.33.3
Page 51
Stencil settingStencil settingStencil settingStencil setting
Page 52
Stencil setting algorithmStencil setting algorithmStencil setting algorithmStencil setting algorithm
Algorithm inspired by Algorithm inspired by concave polygon-filling algorithmconcave polygon-filling algorithm..
Order silhouette edges into loops. Order silhouette edges into loops. Each loop drawn as fan of triangles:Each loop drawn as fan of triangles:
Triangle front-facing Triangle front-facing stencil stencil ++= 1= 1 Triangle back-facing Triangle back-facing stencil stencil ––= 1= 1
Algorithm inspired by Algorithm inspired by concave polygon-filling algorithmconcave polygon-filling algorithm..
Order silhouette edges into loops. Order silhouette edges into loops. Each loop drawn as fan of triangles:Each loop drawn as fan of triangles:
Triangle front-facing Triangle front-facing stencil stencil ++= 1= 1 Triangle back-facing Triangle back-facing stencil stencil ––= 1= 1
Page 53
Stencil setting algorithmStencil setting algorithmStencil setting algorithmStencil setting algorithm
Page 54
Stencil setting algorithmStencil setting algorithmStencil setting algorithmStencil setting algorithm
Page 55
Stencil setting algorithmStencil setting algorithmStencil setting algorithmStencil setting algorithm
Page 56
Stencil setting algorithmStencil setting algorithmStencil setting algorithmStencil setting algorithm
Page 57
Stencil setting algorithmStencil setting algorithmStencil setting algorithmStencil setting algorithm
Page 58
Stencil setting algorithmStencil setting algorithmStencil setting algorithmStencil setting algorithm
Page 59
Stencil setting algorithmStencil setting algorithmStencil setting algorithmStencil setting algorithm
Page 60
Stencil setting algorithmStencil setting algorithmStencil setting algorithmStencil setting algorithm
Page 61
Stencil setting algorithmStencil setting algorithmStencil setting algorithmStencil setting algorithm
Page 62
Stencil setting algorithmStencil setting algorithmStencil setting algorithmStencil setting algorithm
Page 63
Stencil setting algorithmStencil setting algorithmStencil setting algorithmStencil setting algorithm
Page 64
Stencil setting algorithmStencil setting algorithmStencil setting algorithmStencil setting algorithm
Page 65
Stencil setting videoStencil setting videoStencil setting videoStencil setting video
Page 66
Silhouette antialiasingSilhouette antialiasingSilhouette antialiasingSilhouette antialiasing
Transfer stencil to alpha buffer:Transfer stencil to alpha buffer: stencil = 0 stencil = 0 alpha = 0.0 alpha = 0.0 stencil = 1 stencil = 1 alpha = 1.0 alpha = 1.0
Render silhouette edges in alpha buffer Render silhouette edges in alpha buffer as antialiased line segments.as antialiased line segments.
Render coarse hull subject to alpha buffer.Render coarse hull subject to alpha buffer.
Transfer stencil to alpha buffer:Transfer stencil to alpha buffer: stencil = 0 stencil = 0 alpha = 0.0 alpha = 0.0 stencil = 1 stencil = 1 alpha = 1.0 alpha = 1.0
Render silhouette edges in alpha buffer Render silhouette edges in alpha buffer as antialiased line segments.as antialiased line segments.
Render coarse hull subject to alpha buffer.Render coarse hull subject to alpha buffer.
Page 67
Silhouette antialiasing videoSilhouette antialiasing videoSilhouette antialiasing videoSilhouette antialiasing video
Page 68
Silhouette clipping demosSilhouette clipping demosSilhouette clipping demosSilhouette clipping demos
ParasaurParasaur3x speedup3x speedup
KnotKnot8x speedup8x speedup
Page 69
Timing analysisTiming analysisTiming analysisTiming analysis
ModelModel BunnyBunny DragonDragon ParasaurParasaur KnotKnot Holes3Holes3
Faces (original)Faces (original) 69,67469,674 400,000400,000 43,86643,866 185,856185,856 188,416188,416
Rendering timeRendering time 34.734.7 204.7204.7 20.620.6 81.181.1 90.390.3
Faces (coarse)Faces (coarse) 500500 4,0004,000 1,0201,020 928928 500500
Rendering timeRendering time 4.84.8 5.25.2 4.94.9 4.94.9 4.44.4
SC Rendering timeSC Rendering time 7.87.8 50.350.3 6.96.9 10.310.3 5.55.5
Speedup factorSpeedup factor 4.44.4 4.14.1 3.03.0 7.97.9 16.416.4
All times in millisecondsAll times in milliseconds
Page 70
Timing analysisTiming analysisTiming analysisTiming analysis
ModelModel BunnyBunny DragonDragon ParasaurParasaur KnotKnot Holes3Holes3
Faces (original)Faces (original) 69,67469,674 400,000400,000 43,86643,866 185,856185,856 188,416188,416
Rendering timeRendering time 34.734.7 204.7204.7 20.620.6 81.181.1 90.390.3
Faces (coarse)Faces (coarse) 500500 4,0004,000 1,0201,020 928928 500500
Rendering timeRendering time 4.84.8 5.25.2 4.94.9 4.94.9 4.44.4
SC Rendering timeSC Rendering time 7.87.8 50.350.3 6.96.9 10.310.3 5.55.5
Speedup factorSpeedup factor 4.44.4 4.14.1 3.03.0 7.97.9 16.416.4
All times in millisecondsAll times in milliseconds
Page 71
Timing analysisTiming analysisTiming analysisTiming analysis
ModelModel BunnyBunny DragonDragon ParasaurParasaur KnotKnot Holes3Holes3
Faces (original)Faces (original) 69,67469,674 400,000400,000 43,86643,866 185,856185,856 188,416188,416
Rendering timeRendering time 34.734.7 204.7204.7 20.620.6 81.181.1 90.390.3
Faces (coarse)Faces (coarse) 500500 4,0004,000 1,0201,020 928928 500500
Rendering timeRendering time 4.84.8 5.25.2 4.94.9 4.94.9 4.44.4
SC Rendering timeSC Rendering time 7.87.8 50.350.3 6.96.9 10.310.3 5.55.5
Speedup factorSpeedup factor 4.44.4 4.14.1 3.03.0 7.97.9 16.416.4
All times in millisecondsAll times in milliseconds
Page 72
Timing analysisTiming analysisTiming analysisTiming analysis
ModelModel BunnyBunny DragonDragon ParasaurParasaur KnotKnot Holes3Holes3
Faces (original)Faces (original) 69,67469,674 400,000400,000 43,86643,866 185,856185,856 188,416188,416
Rendering timeRendering time 34.734.7 204.7204.7 20.620.6 81.181.1 90.390.3
Faces (coarse)Faces (coarse) 500500 4,0004,000 1,0201,020 928928 500500
Rendering timeRendering time 4.84.8 5.25.2 4.94.9 4.94.9 4.44.4
SC Rendering timeSC Rendering time 7.87.8 50.350.3 6.96.9 10.310.3 5.55.5
Speedup factorSpeedup factor 4.44.4 4.14.1 3.03.0 7.97.9 16.416.4
All times in millisecondsAll times in milliseconds
Page 73
SummarySummarySummarySummary
Silhouette clipping & antialiasingSilhouette clipping & antialiasing Progressive hullProgressive hull Normal-shooting parametrizationNormal-shooting parametrization Fast silhouette extractionFast silhouette extraction
Silhouette clipping & antialiasingSilhouette clipping & antialiasing Progressive hullProgressive hull Normal-shooting parametrizationNormal-shooting parametrization Fast silhouette extractionFast silhouette extraction
Page 74
Future workFuture workFuture workFuture work
Handle internal silhouettesHandle internal silhouettes Silhouette level-of-detailSilhouette level-of-detail Visual hull simplificationVisual hull simplification
Handle internal silhouettesHandle internal silhouettes Silhouette level-of-detailSilhouette level-of-detail Visual hull simplificationVisual hull simplification