On-Line Geometric Modeling Notes

Biquadratic Uniform B-Spline Surface Refinement


Overview

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 postscript version of these notes look here.


The Matrix Equation for a Uniform Biquadratic Spline Surface  

Consider the biquadratic uniform B-spline surface tex2html_wrap_inline376 defined by the tex2html_wrap_inline378 array of control points
displaymath16

tex2html_wrap416

and the following equation (in matrix form)
displaymath31
where M is the tex2html_wrap_inline382 matrix
displaymath39
The matrix M defines the quadratic uniform B-spline blending functions when multiplied by tex2html_wrap_inline386.


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 tex2html_wrap_inline388), 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.

tex2html_wrap418

To subdivide the surface, we consider the reparameterization of the surface by tex2html_wrap_inline390 and tex2html_wrap_inline392 and define this new surface as tex2html_wrap_inline394. Substituting these into the equation, we obtain
eqnarray57
where tex2html_wrap_inline396 and
displaymath169
Through this process, we have written the surface tex2html_wrap_inline398 as
displaymath179
for some tex2html_wrap_inline400 control point array S. This implies that tex2html_wrap_inline404 is a uniform biquadratic B-spline patch. The matrix S is typically called the ``splitting matrix'', and is given by
eqnarray187
and so the control point mesh P' corresponding to the subdivided patch is related to the original control points mesh by
displaymath211
By carrying out the algebra, we have that
eqnarray213
where the tex2html_wrap_inline410 can be written as
eqnarray278

These equations can be looked at in two ways:

  1. Each of these points tex2html_wrap_inline412 utilizes the four points on a certain face of the rectangular mesh, and calculates a new point by weighing the four points in the ratio of 9-3-3-1. Thus, this algorithm can be specified by using subdivision masks, which specify the ratios of the points on a face to generate the new points. In this case, the subdivision masks are as follows

    tex2html_wrap420
  2. Each of these equations is built from weighing the points on an edge in the ratio of 3-1. and then weighing the resulting points in the ratio 3-1. These are exactly the ratios of Chaikin's curve and so this method can be looked upon as a extension of Chaikin's curve to surfaces.


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 P(u,v) and can be defined by the same subdivision masks

tex2html_wrap422


Summary

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


References

1
CHAIKIN, G. An algorithm for high speed curve generation. Computer Graphics and Image Processing 3 (1974), 346-349.

2
DOO, D. A subdivision algorithm for smoothing down irregularly shaped polyhedrons. In Proced. Int'l Conf. Ineractive Techniques in Computer Aided Design (1978), pp. 157-165. Bologna, Italy, IEEE Computer Soc.


This document maintained by Ken Joy

Comments to the Author

All contents copyright (c) 1996, 1997
Computer Science Department,
University of California, Davis
All rights reserved.



Ken Joy
Thu Jul 24 12:31:01 PDT 1997