Presentation is loading. Please wait.

Presentation is loading. Please wait.

Subdivision Surfaces Dr. Scott Schaefer.

Similar presentations


Presentation on theme: "Subdivision Surfaces Dr. Scott Schaefer."— Presentation transcript:

1 Subdivision Surfaces Dr. Scott Schaefer

2 B-spline Surfaces

3 B-spline Surfaces

4 B-spline Surfaces

5 B-spline Surfaces

6 B-spline Surfaces

7 B-spline Surfaces

8 B-spline Surfaces

9 B-spline Surfaces

10 B-spline Surfaces

11 B-spline Surfaces

12 B-spline Surfaces

13 B-spline Surfaces

14 B-spline Surfaces

15 B-spline Surfaces Example

16 B-spline Surfaces Example

17 B-spline Surfaces Example

18 B-spline Surfaces Example

19 B-spline Surfaces Example

20 B-spline Surfaces Example

21 B-spline Surfaces Example

22 B-spline Surfaces Example

23 B-spline Surfaces Example

24 B-spline Surfaces Example

25 B-spline Surface – Properties
Surface inside convex hull of control points Guaranteed to be smooth everywhere Smoothness is determined by number of averaging steps

26 Arbitrary Topology Surfaces

27 Arbitrary Topology Surfaces

28 Subdivision Surfaces Used in movie and game industries
Supported by most 3D modeling software Toy Story © Disney / Pixar Geri’s Game © Pixar Animation Studios

29 Subdivision Surfaces Set of rules S that recursively act on a shape
Arbitrary topology surfaces Smooth everywhere

30 Repeated Averaging Assume surface is made out of quads
Any number of quads may touch a single vertex Subdivision rules: linear subdivision followed by averaging

31 Linear Subdivision

32 Linear Subdivision

33 Averaging

34 Averaging

35 Averaging

36 Subdivision Surfaces – Examples

37 Subdivision Surfaces – Examples

38 Subdivision Surfaces – Examples

39 Subdivision Surfaces – Examples

40 Subdivision Surfaces – Examples

41 Subdivision Surfaces – Examples

42 Subdivision Surfaces – Examples

43 Subdivision Surfaces – Examples

44 Subdivision Surfaces – Examples

45 Implementing Linear Subdivision
linearSub ( F, V ) newV = V newF = {} for each face Fi for j = 1 to 4 ej = getVert ( Fi,j, Fi,j+1) add centroid to newV and store index in c add face (Fi,j, ej, c, ej-1) to newF return (newF, newV)

46 Implementing Linear Subdivision
getVert ( i1, i2 ) if orderless key (i1,i2) not in hash add midpoint of V[i1], V[i2] to newV hash[(i1,i2)] = index of new point return hash[(i1,i2)]

47 Implementing Averaging
Average( F, V ) newV = 0 * V val = array of 0 whose size is number of vertices newF = F for each face Fi cent = centroid for Fi newV[Fi] += cent val[Fi] += 1 for each vertex newV[i] newV[i] /= val[i] return (newF, newV)

48 Subdivision Surfaces – Examples

49 Subdivision Surfaces – Examples

50 Subdivision Surfaces – Examples

51 Subdivision Surfaces – Examples

52 Subdivision Surfaces – Examples

53 Subdivision Surfaces – Examples

54 Subdivision Surfaces – Examples

55 Subdivision Surfaces – Examples

56 Subdivision Surfaces – Examples

57 Subdivision Surfaces – Examples

58 Subdivision Surfaces – Examples

59 Subdivision Surfaces – Examples

60 Subdivision Surfaces – Examples

61 Subdivision Surfaces – Examples

62 Subdivision Surfaces – Examples

63 Subdivision Surfaces – Examples

64 Subdivision Surfaces – Examples

65 Subdivision Surfaces – Examples

66 Catmull-Clark Subdivision

67 Catmull-Clark Subdivision

68 Catmull-Clark Subdivision

69 Catmull-Clark Subdivision

70 Catmull-Clark Subdivision

71 Catmull-Clark Subdivision

72 Catmull-Clark Subdivision
midpoint

73 Catmull-Clark Subdivision

74 Catmull-Clark

75 Catmull-Clark Subdivision

76 Catmull-Clark Subdivision

77 Catmull-Clark Subdivision
Repeated Averaging Catmull-Clark

78 Catmull-Clark Subdivision
One round of subdivision produces all quads C2 almost everywhere C1 at vertices with valence 4 Most commonly used subdivision scheme in existence

79 Doo-Sabin Subdivision

80 Doo-Sabin Subdivision

81 Doo-Sabin Subdivision

82 Doo-Sabin Subdivision

83 Doo-Sabin Subdivision

84 Doo-Sabin Subdivision
Variant of repeated averaging subdivision All vertices valence 4 after one round of subdivision C1 everywhere

85 Midedge Subdivision

86 Midedge Subdivision

87 Midedge Subdivision

88 Midedge Subdivision Two rounds of midedge subdivision similar to one round of Doo-Sabin

89 Midedge Subdivision Simplest subdivision scheme in terms of rules (midpoint) Produces C1 surfaces everywhere Very slow convergence at high valence vertices and fast convergence at low valence vertices creates artifacts

90 Loop Subdivision

91 Loop Subdivision

92 Loop Subdivision

93 Loop Subdivision

94 Loop Subdivision

95 Loop Subdivision

96 Loop Subdivision Operates only on triangle surfaces
Produces C2 surfaces almost everywhere C1 at vertices with valence 6

97 Sqrt(3) Subdivision

98 Sqrt(3) Subdivision

99 Sqrt(3) Subdivision

100 Sqrt(3) Subdivision

101 Sqrt(3) Subdivision Two rounds of sqrt(3) subdivision yield a ternary split of the original surface!!!

102 Sqrt(3) Subdivision

103 Sqrt(3) Subdivision

104 Sqrt(3) Subdivision

105 Sqrt(3) Subdivision Produces all triangles after one round of subdivision Creates C2 surfaces almost everywhere C1 at vertices with valence 6

106 Interpolatory Quadrilateral Subdivision
Tensor-Product of four-point curve subdivision

107 Interpolatory Quadrilateral Subdivision
Tensor-Product of four-point curve subdivision

108 Interpolatory Quadrilateral Subdivision
Tensor-Product of four-point curve subdivision

109 Interpolatory Quadrilateral Subdivision
Tensor-Product of four-point curve subdivision

110 Interpolatory Quadrilateral Subdivision
Tensor-Product of four-point curve subdivision

111 Interpolatory Quadrilateral Subdivision
Tensor-Product of four-point curve subdivision Same result!!!

112 Interpolatory Quadrilateral Subdivision
Tensor-Product of four-point curve subdivision

113 Interpolatory Quadrilateral Subdivision
Tensor-Product of four-point curve subdivision

114 Interpolatory Quadrilateral Subdivision
Tensor-Product of four-point curve subdivision

115 Interpolatory Quadrilateral Subdivision
Tensor-Product of four-point curve subdivision Same result!!!

116 Interpolatory Quadrilateral Subdivision
Tensor-Product of four-point curve subdivision

117 Interpolatory Quadrilateral Subdivision
Construct a virtual point v such that tensor-product is the same

118 Interpolatory Quadrilateral Subdivision
Construct a virtual point v such that tensor-product is the same

119 Interpolatory Quadrilateral Subdivision
Based on four-point curve subdivision Interpolates vertices Operates only on quadrilateral surfaces Creates C1 surfaces everywhere

120 Butterfly Subdivision

121 Butterfly Subdivision

122 Butterfly Subdivision

123 Butterfly Subdivision

124 Butterfly Subdivision

125 Butterfly Subdivision

126 Butterfly Subdivision

127 Butterfly Subdivision
Interpolatory subdivision scheme for triangle meshes Produces surfaces that are C1 everywhere

128 Comparisons Loop Butterfly Catmull-Clark Doo-Sabin
Image taken from “Subdivision for Modeling and Animation” Siggraph 2000 Course Notes by Zorin et al.

129 Comparisons Loop Butterfly Catmull-Clark Doo-Sabin
Image taken from “Subdivision for Modeling and Animation” Siggraph 2000 Course Notes by Zorin et al.

130 Catmull-Clark (triangulated)
Comparisons Mesh Loop (triangulated) Catmull-Clark Catmull-Clark (triangulated) Image taken from “Subdivision for Modeling and Animation” Siggraph 2000 Course Notes by Zorin et al.


Download ppt "Subdivision Surfaces Dr. Scott Schaefer."

Similar presentations


Ads by Google