Download presentation
Presentation is loading. Please wait.
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.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.