Silhouette Clipping Pedro V Sander Xianfeng Gu Steven
- Slides: 69
Silhouette Clipping Pedro V. Sander Xianfeng Gu Steven J. Gortler Hugues H. Hoppe John M. Snyder Harvard University Microsoft Research
Mesh simplification poor silhouette original mesh coarse mesh + texture/bump map
Silhouette clipping original mesh coarse mesh + texture/bump map silhouette clipped
Silhouette clipping original mesh coarse mesh + texture/bump map silhouette clipped
Silhouette clipping demo
Overview coarse mesh rendered original mesh normal map [Soucy et al 96] [Cignoni et al 98] [Cohen et al 98]
Overview coarse hull rendered original mesh normal map stencil mask 2 D silhouette edge hierarchy Preprocess Runtime
Overview coarse hull rendered original mesh silhouette clipped normal map 2 D silhouette edge hierarchy Preprocess Runtime
Major contributions l l Progressive hull Texture creation Silhouette extraction Stencil setting
Major contributions l l Progressive hull Texture creation Silhouette extraction Stencil setting
Major contributions l l Progressive hull Texture creation Silhouette extraction Stencil setting
Major contributions l l Progressive hull Texture creation Silhouette extraction Stencil setting
Major contributions l l Progressive hull Texture creation Silhouette extraction Stencil setting
Coarse hull Original mesh Coarse hull Given mesh, create coarse mesh that encloses it.
Progressive hull l l Progressive mesh sequence Every mesh encloses all finer meshes.
Edge collapse Mi l l M i-1 Perform greedy sequence of collapses. Ensure new mesh encloses old mesh: Linear programming problem
Linear programming (2 D)
Linear programming (2 D)
Linear programming (2 D)
Linear programming (2 D)
Linear programming (2 D)
Linear programming (2 D)
Linear programming (2 D) new vertex position
Progressive hull demo
Texture creation coarse hull rendered original mesh [Cignoni et al 98] [Soucy et al 96] normal map
Texture creation coarse vertex normals original closest-point [Cignoni et al 98] normal-shooting Ours
Silhouette extraction Given mesh and viewpoint, return edges on silhouette.
What is a silhouette edge? l Edge is on silhouette iff one adjacent triangle faces towards viewpoint: not silhouette
Related schemes l Brute force: O(edges) but O(edges on silhouette) O( edges) ! l [Markosian et al 97] probabilistic l [Gooch et al 99] assumes orthographic view l [Barequet et al 99] [Hertzmann & Zorin 00] dual-space formulation l [Kumar et al 96] [Johannsen & Carter 98] backface culling Ours: optimized hierarchy of anchored cones extracts 3, 500 sil edges of 10, 000 edges at 250 fps
Hierarchical culling l Each node contains: n n cluster of mesh edges spatial culling primitive
Hierarchical culling l Each node contains: n n cluster of mesh edges spatial culling primitive
Spatial culling primitive Given cluster of edges, check if there are no silhouette edges. True if adjacent triangles are all front-facing or all back-facing.
Spatial culling primitive Given cluster of edges, check if there are no silhouette edges. True if adjacent triangles are all front-facing or all back-facing.
Spatial culling primitive Given cluster of edges, check if there are no silhouette edges. True if adjacent triangles are all front-facing or all back-facing.
Anchored cone primitive front-facing cone back-facing cone
Anchored cone primitive l Calculate central axis Gilbert’s algorithm l Calculate cone angle l Calculate anchor positions Linear programming
Anchored cone primitive l Calculate central axis Gilbert’s algorithm l Calculate cone angle l Calculate anchor positions Linear programming
Anchored cone primitive l Calculate central axis Gilbert’s algorithm l Calculate cone angle l Calculate anchor positions Linear programming
Hierarchy construction l Bottom-up greedy joining two clusters parent merge adopt
Hierarchy construction l l l Each root has probability of culling. We compute an expected extraction cost for each root, and the forest. Choose next join operation to maximally decrease expected extraction cost.
Silhouette extraction video
Performance Model Bunny Total edges 104, 511 600, 000 Sil edges Tested edges Time (ms) Dragon Parasaur Knot Holes 3 65, 799 278, 784 282, 624 3, 461 23, 493 3, 227 3, 291 1, 737 10, 256 67, 934 10, 938 13, 134 5, 976 4. 1 28. 2 4. 3 7. 9 3. 3
Performance Model Bunny Total edges 104, 511 600, 000 Sil edges Tested edges Time (ms) Dragon Parasaur Knot Holes 3 65, 799 278, 784 282, 624 3, 461 23, 493 3, 227 3, 291 1, 737 10, 256 67, 934 10, 938 13, 134 5, 976 4. 1 28. 2 4. 3 7. 9 3. 3
Performance Model Bunny Total edges 104, 511 600, 000 Sil edges Tested edges Time (ms) Dragon Parasaur Knot Holes 3 65, 799 278, 784 282, 624 3, 461 23, 493 3, 227 3, 291 1, 737 10, 256 67, 934 10, 938 13, 134 5, 976 4. 1 28. 2 4. 3 7. 9 3. 3
Performance Model Bunny Total edges 104, 511 600, 000 Sil edges Tested edges Time (ms) Dragon Parasaur Knot Holes 3 65, 799 278, 784 282, 624 3, 461 23, 493 3, 227 3, 291 1, 737 10, 256 67, 934 10, 938 13, 134 5, 976 4. 1 28. 2 4. 3 7. 9 3. 3
Performance Model Bunny Total edges 104, 511 600, 000 Sil edges Tested edges Time (ms) Dragon Parasaur Knot Holes 3 65, 799 278, 784 282, 624 3, 461 23, 493 3, 227 3, 291 1, 737 10, 256 67, 934 10, 938 13, 134 5, 976 4. 1 28. 2 4. 3 7. 9 3. 3
Stencil setting
Stencil setting algorithm l Algorithm inspired by concave polygon-filling algorithm. l l Silhouette edges organized in hash table. Each contour drawn as fan of triangles: n n Triangle front-facing stencil += 1 Triangle back-facing stencil –= 1
Stencil setting algorithm
Stencil setting algorithm
Stencil setting algorithm
Stencil setting algorithm
Stencil setting algorithm
Stencil setting algorithm
Stencil setting algorithm
Stencil setting algorithm
Stencil setting algorithm
Stencil setting algorithm
Stencil setting algorithm
Stencil setting algorithm
Stencil setting video
Silhouette antialiasing l l l Transfer stencil to alpha buffer: stencil = 0 alpha = 0. 0 stencil = 1 alpha = 1. 0 Render silhouette edges in alpha buffer as antialiased line segments. Render coarse hull subject to alpha buffer.
Silhouette antialiasing video
Timing analysis Model Bunny Faces (original) 69, 674 400, 000 Rendering time Dragon Parasaur Knot Holes 3 43, 866 185, 856 188, 416 34. 7 20. 6 81. 1 90. 3 500 4, 000 1, 020 928 500 Rendering time 4. 8 5. 2 4. 9 4. 4 SC Rendering time 7. 8 50. 3 6. 9 10. 3 5. 5 Speedup factor 4. 4 4. 1 3. 0 7. 9 16. 4 Faces (coarse) All times in milliseconds
Timing analysis Model Bunny Faces (original) 69, 674 400, 000 Rendering time Dragon Parasaur Knot Holes 3 43, 866 185, 856 188, 416 34. 7 20. 6 81. 1 90. 3 500 4, 000 1, 020 928 500 Rendering time 4. 8 5. 2 4. 9 4. 4 SC Rendering time 7. 8 50. 3 6. 9 10. 3 5. 5 Speedup factor 4. 4 4. 1 3. 0 7. 9 16. 4 Faces (coarse) All times in milliseconds
Timing analysis Model Bunny Faces (original) 69, 674 400, 000 Rendering time Dragon Parasaur Knot Holes 3 43, 866 185, 856 188, 416 34. 7 20. 6 81. 1 90. 3 500 4, 000 1, 020 928 500 Rendering time 4. 8 5. 2 4. 9 4. 4 SC Rendering time 7. 8 50. 3 6. 9 10. 3 5. 5 Speedup factor 4. 4 4. 1 3. 0 7. 9 16. 4 Faces (coarse) All times in milliseconds
Timing analysis Model Bunny Faces (original) 69, 674 400, 000 Rendering time Dragon Parasaur Knot Holes 3 43, 866 185, 856 188, 416 34. 7 20. 6 81. 1 90. 3 500 4, 000 1, 020 928 500 Rendering time 4. 8 5. 2 4. 9 4. 4 SC Rendering time 7. 8 50. 3 6. 9 10. 3 5. 5 Speedup factor 4. 4 4. 1 3. 0 7. 9 16. 4 Faces (coarse) All times in milliseconds
Summary l l Silhouette clipping & antialiasing Fast silhouette extraction Progressive hull Normal-shooting parametrization
Future work l l l Handle internal silhouettes Visual hull simplification Silhouette level-of-detail
- Color 29052007
- Pedro v. sander
- Pedro v. sander
- David xianfeng gu
- Xianfeng gu
- Urban silhouette
- Enlarged cardiac silhouette
- Zentangle silhouette
- Massachusetts silhouette
- 1900s silhouette
- Silhouette portrait 3 amazon
- Ligne spino laminaire
- éctasique
- S-curve silhouette
- Vibinet
- Gossipspar
- Le visagisme
- Color shape design
- Silhouette edges
- Silhouette cardio-thymique
- Joel sander
- Sander vaneker
- Hörgüç kaya buz yalağı moren depoları
- Sander leemans
- Hand sander
- Sander oja
- Signe viimsalu
- Ben sander amd
- Sander claassen
- Sander ten kate
- Portable electric sander hazards
- Hawaii lennupiletid
- Roland sander
- Sincretismo percettivo infantile
- Sander habets
- Sander leemans
- Sander eising
- Sander vanaisak
- Kaspar viilup
- Provincies belgie blinde kaart
- Nikolaus christian sander schule
- Line rasterization
- Line clipping
- Recap intensity clipping
- Back formation
- Professor clipped word
- Coinage examples
- Ear clipping algorithm
- 8 connected boundary fill algorithm
- Contoh clipping adalah
- Clipping and culling
- Examples of middle clipping
- Bezier clipping
- Function words
- Ppt
- Shortening in lexicology
- Clipped word of periwig
- The word formation process
- Contoh clipping
- Interior and exterior clipping in computer graphics
- Curve clipping in computer graphics
- Cohen sutherland line clipping algorithm solved example
- Westlaw video clipping
- Edge table in computer graphics
- Steer clipping and fitting techniques
- Viewport clipping in computer graphics
- Vertical edge
- Ywmin
- Nicholl lee nicholl line clipping algorithm
- Line clipping