7.2 Smooth Subdivision for Quad Meshes 221
Given this new representation, bilinear subdivision is performed as usual, with
each quad split into four quads, each edge split into two edges, and each vertex
copied.
Given the mesh
M
k
produced by bilinear subdivision, we define the dimension
dim[v] of a vertex v in M
k
to be the dimension of the lowest-dimensional cell in M
k
that contains v. In the previous example,
dim[v] has the values
v :123456789
dim[v]:010121010
.
Having computed dim[v] for M
k
, the rule for quad averaging at vertex v is modified
to use only those cells whose dimension is
dim[v]. In particular, the update process
of equation 7.2 is adjusted as follows:
Quad averaging with creases: Given a vertex
v, compute the centroids of those
cells in
M
k
containing v whose dimension equals dim[v]. Reposition v at the centroid
of these centroids.
This modification ensures that the subdivision rules for vertices on a crease are
influenced only by vertices on the crease itself. For example, if
M
0
contains a vertex
(a cell of dimension
0), this modified averaging rule leaves the position of the vertex
unchanged and forces the resulting limit surface to interpolate the vertex. If
M
0
contains a sequence of edges forming a curve, the resulting limit surface interpolates
the cubic B-spline associated with the control points along the edges.
To implement this modified version of averaging, we compute
dim[v] and val[v]
(now the number of cells of dimension dim[v] containing v) simultaneously during a
first pass through
M
k
. Given these two quantities, the averaging rules described in
the previous sections can then be applied. Quad averaging is particularly amenable
to this change because the update rule for the vertices of a cell is independent of
its dimension. Figure 7.20 shows a surface patch produced by bilinear subdivision
plus averaging applied to the example mesh of equation 7.6. The four edges in
M
0
force the boundary of the surface patch to interpolate the B-spline curves defined
by the boundary of the initial mesh. Similarly, the four vertices in
M
0
force the
limit surface to interpolate the four corners of the initial mesh.
Figures 7.21 and 7.22 show high-resolution renderings of two more complex
objects, a ring and an axe, during subdivision. The ring includes a crease curve
where the stone meets the ring and four crease vertices at the corners of the stone.
The axe incorporates crease edges at the top and bottom of its handle, crease edges
along its blade, and crease vertices at its corners. Note that in both examples a
compact polyhedral mesh leads to a nontrivial, realistic model.