CS679 Project - Subdivision Surfaces
Blake Grant (00801074)
May 4, 2001

For my project in CS679, I implemented three different subdivision surface schemes to compare the results. The program allows the user to load in a file in o3d format (a simple format which stores a list of vertices, and indices into the vertex list to form triangles), then subdivide it by any of the available methods as many times as needed, as well as rotate and zoom in and out on the model. The program allows the user to view the model through either a wireframe, point, or gouroud shaded rendering via Direct3D 8. The results of the different subdivision methods on various models is shown below. Click on an image to display a larger version.

OriginalModified Butterfly[2]Catmull-Clark[3]Peters[1]


In the first row of images, we see a tetrehedron, subdivided by the various methods. The Modified Butterfly and Catmull-Clark methods were applied 6 times and the Peters method twice to achieve the shown images. We can begin to see one of the differences between the Modified Butterfly and Catmull Clark methods here. The Modified Butterfly scheme gives a shape which is closer to the original model, as it is an interpolating method contrasted with the approximating Catmull-Clark method. The Peters subdivision yields a less smooth surface, however this is partly due to the fewer number of subdivisions (unfortunately there is a bug in the program which will not allow us to subdivide further).

In the second row, we see a rabbit model. This is a fairly complex model, and the detail on its features help to show the differences between the methods. The Modified Butterfly and Catmull-Clark methods were applied twice and Peters once. Again, Peters method does not do a very good job. Both other methods however produce a nice smooth image, but are very different from each other. The Modified Butterfly method leaves alot of the details intact, and actually seems to highlight them, whereas the Catmull-Clark scheme completely smooths many of the smaller features out of the model.

Finally, in the last row we see an interesting model which has many separate components. The Modified Butterfly and Catmull-Clark methods were applied 4 times and the Peters method once. As the Modified Butterfly scheme interpolates, any vertex in the original model is still in the final, and the resulting model still has the same connectivity. In Catmull-Clark, we see the separate components further separating into a very different shape. And again, Peters does a poor job.

In conclusion, it would seem that both the Modified Butterfly and the Catmull-Clark schemes are useful, depending on their purpose. Catmull-Clark gives a much smoother surface, however it tends to smooth out details, and the new surface may not look all that much like the original. Modified Butterfly on the other hand tends to keep in details, and actually accentuates them in some cases, however this may not always be good, as the purpose of the subdivision might be to smooth out errors in the surface. From an implementation standpoint, neither was more difficult than the other to realize, once the structures of connectivity information are set up, implementing the schemes isn't much of a problem.


References
  1. Peters, Reif - The Simplest Subdivision Scheme for Smoothing Polyhedra - ACM Transactions on Graphics 16(4):420-431, 1997
  2. Zorin, Schroder, Sweldens - Interpolating Subdivision for Meshes with Arbitrary Topology - SIGGRAPH 1996:189-192, 1996
  3. E. Catmull and J. Clark - Recursively generated B-spline surfaces on arbitrary topological meshes - CAGD 10(6):350-355, 1978