Subdivision surfaces are based upon the binary subdivision of the uniform B-spline surface. In general, they are defined by a initial polygonal mesh, along with a subdivision (or refinement) operation which, given a polygonal mesh, will generate a new mesh that has a greater number of polygonal elements, and is hopefully ``closer'' to some resulting surface. By repetitively applying the subdivision procedure to the initial mesh, we generate a sequence of meshes that (hopefully) converges to a resulting surface.
As it turns out, this is a well known process when the mesh has a ``rectangular'' structure and the subdivision procedure is an extension of binary subdivision for uniform B-spline surfaces. In these notes we present a study of the quadratic uniform B-spline case, and develop the refinement rules that can be generalized into the Doo-Sabin subdivision method.
For a pdf version of these notes look here.
The Matrix Equation for a Uniform Biquadratic Spline Surface
Consider the biquadratic uniform B-spline surface defined by the array of control points
and the following equation (in matrix form)
Subdividing the Surface
This patch can be subdivided into four subpatches, which can be generated from 16 unique sub-control points. We focus on the subdivision scheme for only one of the four (the subpatch corresponding to ), as the others will follow by symmetry. The following figure illustrates the 16 points produced by subdividing into four subpatches. We have outlined the initial subpatch that we consider below. It should be noted that the four ``interior'' control points are utilized by each of the four subpatch components of the subdivision.
To subdivide the surface, we consider the
reparameterization of the surface by
and define this new surface as
Substituting these into the equation, we obtain
These equations can be looked at in two ways:
Generating the Refinement Procedure
To generate the subdivision surface, we consider all 16 of the possible points generated through the binary subdivision of the quadratic patch. It is easily seen that each of these points can be generated through considering other subdivisions of the patch and can be defined by the same subdivision masks
The extension of Chaikin's Curve to surfaces is quite straightforward. The analysis has produced a simple mask that can be utilized to define the new points on each face (one per vertex). Connecting up these vertices into a new mesh is straightforward.
The interesting extension of this algorithm is when the control point mesh does not have a rectangular topological structure. In this case, we can still utilize the same paradigm and this was accomplished by Donald Doo and Malcolm Sabin in their Doo-Sabin surfaces