[UW shield]

CS 679 - Subdivision Surfaces , 1999


Vincent Ma

The goal of this project is to give a visual comparison between different subdivision schemes. Given a certain control mesh to start with, I wanted to show the kind of surface each scheme produces.

There are 3 schemes implemented in this project:

  1. Simplest Subdivision Scheme (or Peters as I'd like to call it) which simply takes the midpoints of each edge and connects to other midpoints of those edges that are adjacent and share a face. Then, new faces are created, one for each old face, and one for each old vertex. This scheme generalizes the "4-direction box-spline".
  2. Catmull-Clark
    With this scheme, new vertices are calculated for each face, edge and vertex of the original mesh, then, for each vertex, a new face is created that spans the new vertex, "midpoints" of pairs of old edges, and the face vertex. This scheme generalizes bicubic B-spline surfaces.
  3. Doo-Saban
    For each vertex-face pair, a new vertex is created. Then, connecting these in an appropriate way will create a new face for each old face, edge, and vertex. This scheme generalizes biquadratic B-spline surfaces.
To implement these I first implemented a Half-Edge data structure that will store the polygonal data. The half-edge structure will allow me quick access between adjacent vertices/edges/faces and it theoretically will speed things up.

On top of this data structure I added functions to evaluate the face, edge and vertex points that I needed for evaluating each different subdivision scheme.

Finally, I added a GUI that allows a user to interactively view a control mesh and the resulting subdivision surface.

In addition, I've implemented "infinitely sharp edges" for the Catmull-Clark subdivision scheme. Essentially, it means that for edges that are labelled "sharp" different rules will be used to calculate the edge/vertex points used in the subdivision calculation.

In the GUI, the user can select one or more edge. Selected edges are tagged as sharp. By selecting different sets of edges, the user can create differently shaped surfaces from a single common control mesh.

The user can save the result surface out to Inventor format files viewable in "ivview".

References