1 / 69

Silhouette Clipping

Silhouette Clipping. Pedro V. Sander Xianfeng Gu Steven J. Gortler Harvard University. Hugues H. Hoppe John M. Snyder Microsoft Research. poor silhouette. + texture/bump map. Mesh simplification. original mesh. coarse mesh. Silhouette clipping. original mesh. coarse mesh.

thom
Download Presentation

Silhouette Clipping

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Silhouette Clipping Pedro V. Sander Xianfeng Gu Steven J. Gortler Harvard University Hugues H. Hoppe John M. Snyder Microsoft Research

  2. poorsilhouette + texture/bump map Mesh simplification original mesh coarse mesh

  3. Silhouette clipping original mesh coarse mesh + texture/bump map silhouette clipped

  4. Silhouette clipping original mesh coarse mesh + texture/bump map silhouette clipped

  5. Silhouette clipping demo

  6. Overview coarse mesh rendered original mesh normal map [Soucy et al 96] [Cignoni et al 98] [Cohen et al 98]

  7. Overview coarse hull rendered original mesh normal map stencil mask 2D silhouette edge hierarchy Preprocess Runtime

  8. Overview coarse hull rendered silhouetteclipped original mesh normal map 2D silhouette edge hierarchy Preprocess Runtime

  9. Major contributions • Progressive hull • Texture creation • Silhouette extraction • Stencil setting

  10. Major contributions • Progressive hull • Texture creation • Silhouette extraction • Stencil setting

  11. Major contributions • Progressive hull • Texture creation • Silhouette extraction • Stencil setting

  12. Major contributions • Progressive hull • Texture creation • Silhouette extraction • Stencil setting

  13. Major contributions • Progressive hull • Texture creation • Silhouette extraction • Stencil setting

  14. Coarse hull Original mesh Coarse hull Given mesh, create coarse mesh that encloses it.

  15. Progressive hull • Progressive mesh sequence • Every mesh encloses all finer meshes.

  16. Edge collapse • Perform greedy sequence of collapses. • Ensure new mesh encloses old mesh: Linear programming problem Mi Mi-1

  17. Linear programming (2D)

  18. Linear programming (2D)

  19. Linear programming (2D)

  20. Linear programming (2D)

  21. Linear programming (2D)

  22. Linear programming (2D)

  23. Linear programming (2D) new vertexposition

  24. Progressive hull demo

  25. Texture creation coarse hull rendered [Cignoni et al 98] [Soucy et al 96] original mesh normal map

  26. Texture creation vertex normals coarse original closest-point [Cignoni et al 98] normal-shooting Ours

  27. Silhouette extraction Given mesh and viewpoint, return edges on silhouette.

  28. What is a silhouette edge? • Edge is on silhouette iff one adjacent triangle faces towards viewpoint: not silhouette silhouette

  29. Related schemes • Brute force: O(edges)but O(edges on silhouette)  O(edges) ! • [Markosian et al 97]probabilistic • [Gooch et al 99] assumes orthographic view • [Barequet et al 99] [Hertzmann & Zorin 00] dual-space formulation • [Kumar et al 96] [Johannsen & Carter 98] backface cullingOurs: optimized hierarchy of anchored conesextracts 3,500 sil edges of 10,000 edges at 250 fps

  30. Hierarchical culling • Each node contains: • cluster of mesh edges • spatial culling primitive

  31. Hierarchical culling • Each node contains: • cluster of mesh edges • spatial culling primitive

  32. 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.

  33. 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.

  34. 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.

  35. Anchored cone primitive front-facing cone back-facing cone

  36. Anchored cone primitive • Calculate central axisGilbert’s algorithm • Calculate cone angle • Calculate anchor positionsLinear programming

  37. Anchored cone primitive • Calculate central axisGilbert’s algorithm • Calculate cone angle • Calculate anchor positionsLinear programming

  38. Anchored cone primitive • Calculate central axisGilbert’s algorithm • Calculate cone angle • Calculate anchor positionsLinear programming

  39. Hierarchy construction • Bottom-up greedy joining two clusters parent merge adopt

  40. Hierarchy construction • 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.

  41. Silhouette extraction video

  42. Performance

  43. Performance

  44. Performance

  45. Performance

  46. Performance

  47. Stencil setting

  48. Stencil setting algorithm • Algorithm inspired by concave polygon-filling algorithm. • Silhouette edges organized in hash table. • Each contour drawn as fan of triangles: • Triangle front-facing  stencil += 1 • Triangle back-facing  stencil –= 1

  49. Stencil setting algorithm

  50. Stencil setting algorithm

More Related