Presentation is loading. Please wait.

Presentation is loading. Please wait.

Silhouette Clipping Pedro V. Sander Xianfeng Gu Steven J. Gortler Harvard University Pedro V. Sander Xianfeng Gu Steven J. Gortler Harvard University Hugues.

Similar presentations


Presentation on theme: "Silhouette Clipping Pedro V. Sander Xianfeng Gu Steven J. Gortler Harvard University Pedro V. Sander Xianfeng Gu Steven J. Gortler Harvard University Hugues."— Presentation transcript:

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

2 Mesh simplification original mesh + texture/bump map poor silhouette coarse mesh

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

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

5 Silhouette clipping demo

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

7 normal map stencil mask edge hierarchy original mesh rendered coarse hull 2D silhouette RuntimePreprocess OverviewOverview

8 normal map silhouette clipped edge hierarchy original mesh rendered coarse hull 2D silhouette RuntimePreprocess OverviewOverview

9 Major contributions l Progressive hull l Texture creation l Silhouette extraction l Stencil setting l Progressive hull l Texture creation l Silhouette extraction l Stencil setting

10 Major contributions l Progressive hull l Texture creation l Silhouette extraction l Stencil setting l Progressive hull l Texture creation l Silhouette extraction l Stencil setting

11 Major contributions l Progressive hull l Texture creation l Silhouette extraction l Stencil setting l Progressive hull l Texture creation l Silhouette extraction l Stencil setting

12 Major contributions l Progressive hull l Texture creation l Silhouette extraction l Stencil setting l Progressive hull l Texture creation l Silhouette extraction l Stencil setting

13 Major contributions l Progressive hull l Texture creation l Silhouette extraction l Stencil setting l Progressive hull l Texture creation l Silhouette extraction l Stencil setting

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

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

16 Edge collapse l Perform greedy sequence of collapses. l Ensure new mesh encloses old mesh: Linear programming problem l Perform greedy sequence of collapses. l Ensure new mesh encloses old mesh: Linear programming problem M iM i M i-1

17 Linear programming (2D)

18

19

20

21

22

23 new vertex position

24 Linear programming (2D)

25 Progressive hull demo

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

27 Texture creation closest-point [Cignoni et al 98] vertex normals normal-shootingOurs original coarse

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

29 What is a silhouette edge? l Edge is on silhouette iff one adjacent triangle faces towards viewpoint: not silhouette silhouette

30 Related schemes 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 l Ours: optimized hierarchy of anchored cones extracts 3,500 sil edges of 100,000 edges at 250 fps 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 l Ours: optimized hierarchy of anchored cones extracts 3,500 sil edges of 100,000 edges at 250 fps

31 Hierarchical culling l Each node contains: n cluster of mesh edges n spatial culling primitive l Each node contains: n cluster of mesh edges n spatial culling primitive

32 Hierarchical culling l Each node contains: n cluster of mesh edges n spatial culling primitive l Each node contains: n cluster of mesh edges n spatial culling primitive

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. Given cluster of edges, check if there are no silhouette edges. True if adjacent triangles are all front-facing or all back-facing. 2D cross-section

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. Given cluster of edges, check if there are no silhouette edges. True if adjacent triangles are all front-facing or all back-facing. 2D cross-section

35 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. Given cluster of edges, check if there are no silhouette edges. True if adjacent triangles are all front-facing or all back-facing.

36 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. Given cluster of edges, check if there are no silhouette edges. True if adjacent triangles are all front-facing or all back-facing.

37 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. Given cluster of edges, check if there are no silhouette edges. True if adjacent triangles are all front-facing or all back-facing.

38 Anchored cone primitive front-facing cone back-facing cone

39 Anchored cone primitive l Calculate central axis Gilberts algorithm l Calculate cone angle l Calculate anchor positions Linear programming l Calculate central axis Gilberts algorithm l Calculate cone angle l Calculate anchor positions Linear programming

40 Anchored cone primitive l Calculate central axis Gilberts algorithm l Calculate cone angle l Calculate anchor positions Linear programming l Calculate central axis Gilberts algorithm l Calculate cone angle l Calculate anchor positions Linear programming

41 Anchored cone primitive l Calculate central axis Gilberts algorithm l Calculate cone angle l Calculate anchor positions Linear programming l Calculate central axis Gilberts algorithm l Calculate cone angle l Calculate anchor positions Linear programming

42 Hierarchy construction l Bottom-up greedy joining two clusters mergeadoptparent

43 Hierarchy construction l Each root has probability of culling. l We compute an expected extraction cost for each root, and the forest. l Choose next join operation to maximally decrease expected extraction cost. l Each root has probability of culling. l We compute an expected extraction cost for each root, and the forest. l Choose next join operation to maximally decrease expected extraction cost.

44 Silhouette extraction video

45 PerformancePerformance ModelDragonBunnyParasaurKnotHoles3 Total edges 600,000104,51165,799278,784282,624 Sil edges 23,4933,4613,2273,2911,737 Tested edges 67,93410,25610,93813,1345,976 Tested cones 26,2914,2823,5387,9264,594 Time (ms)

46 PerformancePerformance ModelDragonBunnyParasaurKnotHoles3 Total edges 600,000104,51165,799278,784282,624 Sil edges 23,4933,4613,2273,2911,737 Tested edges 67,93410,25610,93813,1345,976 Tested cones 26,2914,2823,5387,9264,594 Time (ms)

47 PerformancePerformance ModelDragonBunnyParasaurKnotHoles3 Total edges 600,000104,51165,799278,784282,624 Sil edges 23,4933,4613,2273,2911,737 Tested edges 67,93410,25610,93813,1345,976 Tested cones 26,2914,2823,5387,9264,594 Time (ms)

48 PerformancePerformance ModelDragonBunnyParasaurKnotHoles3 Total edges 600,000104,51165,799278,784282,624 Sil edges 23,4933,4613,2273,2911,737 Tested edges 67,93410,25610,93813,1345,976 Tested cones 26,2914,2823,5387,9264,594 Time (ms)

49 PerformancePerformance ModelDragonBunnyParasaurKnotHoles3 Total edges 600,000104,51165,799278,784282,624 Sil edges 23,4933,4613,2273,2911,737 Tested edges 67,93410,25610,93813,1345,976 Tested cones 26,2914,2823,5387,9264,594 Time (ms)

50 PerformancePerformance ModelDragonBunnyParasaurKnotHoles3 Total edges 600,000104,51165,799278,784282,624 Sil edges 23,4933,4613,2273,2911,737 Tested edges 67,93410,25610,93813,1345,976 Tested cones 26,2914,2823,5387,9264,594 Time (ms)

51 Stencil setting

52 Stencil setting algorithm l Algorithm inspired by concave polygon-filling algorithm. l Order silhouette edges into loops. l Each loop drawn as fan of triangles: Triangle front-facing stencil += 1 Triangle front-facing stencil += 1 Triangle back-facing stencil –= 1 Triangle back-facing stencil –= 1 l Algorithm inspired by concave polygon-filling algorithm. l Order silhouette edges into loops. l Each loop drawn as fan of triangles: Triangle front-facing stencil += 1 Triangle front-facing stencil += 1 Triangle back-facing stencil –= 1 Triangle back-facing stencil –= 1

53 Stencil setting algorithm

54

55

56

57

58

59

60

61

62

63

64

65 Stencil setting video

66 Silhouette antialiasing l Transfer stencil to alpha buffer: stencil = 0 alpha = 0.0 stencil = 1 alpha = 1.0 l Render silhouette edges in alpha buffer as antialiased line segments. l Render coarse hull subject to alpha buffer. l Transfer stencil to alpha buffer: stencil = 0 alpha = 0.0 stencil = 1 alpha = 1.0 l Render silhouette edges in alpha buffer as antialiased line segments. l Render coarse hull subject to alpha buffer.

67 Silhouette antialiasing video

68 Silhouette clipping demos Parasaur 3x speedup Knot 8x speedup

69 Timing analysis ModelBunnyDragonParasaurKnotHoles3 Faces (original) 69,674400,00043,866185,856188,416 Rendering time Rendering time Faces (coarse) 5004,0001, Rendering time Rendering time SC Rendering time Speedup factor All times in milliseconds

70 Timing analysis ModelBunnyDragonParasaurKnotHoles3 Faces (original) 69,674400,00043,866185,856188,416 Rendering time Rendering time Faces (coarse) 5004,0001, Rendering time Rendering time SC Rendering time Speedup factor All times in milliseconds

71 Timing analysis ModelBunnyDragonParasaurKnotHoles3 Faces (original) 69,674400,00043,866185,856188,416 Rendering time Rendering time Faces (coarse) 5004,0001, Rendering time Rendering time SC Rendering time Speedup factor All times in milliseconds

72 Timing analysis ModelBunnyDragonParasaurKnotHoles3 Faces (original) 69,674400,00043,866185,856188,416 Rendering time Rendering time Faces (coarse) 5004,0001, Rendering time Rendering time SC Rendering time Speedup factor All times in milliseconds

73 SummarySummary l Silhouette clipping & antialiasing l Progressive hull l Normal-shooting parametrization l Fast silhouette extraction l Silhouette clipping & antialiasing l Progressive hull l Normal-shooting parametrization l Fast silhouette extraction

74 Future work l Handle internal silhouettes l Silhouette level-of-detail l Visual hull simplification l Handle internal silhouettes l Silhouette level-of-detail l Visual hull simplification


Download ppt "Silhouette Clipping Pedro V. Sander Xianfeng Gu Steven J. Gortler Harvard University Pedro V. Sander Xianfeng Gu Steven J. Gortler Harvard University Hugues."

Similar presentations


Ads by Google