Subdivision Surfaces

by Raju Jampani

I have implemented the following three subdivision surface algorithms as part of my base project.

1. Mid-Point Subdivision.

2. Doo-Sabin Subdivision.

3. Catmull-Clark Subdivision.

 

As part of extras I have implemented the following additional algorithms which work only on triangular meshes.

a. Loop's Subdivision

b. Butterfly Subdivision and

c. Modified Butterfly Subdivision.

Butterfly and Modified Butterfly algorithms are interpolating schemes.

 

I have also developed a windows-based application with the following features:

1. Open/save a mesh file.

2. Triangulate the current mesh (so that we can subsequently apply a triangular mesh based subdivision).

3. Apply any of the six subdivision algorithms on the current mesh.

4. Ability to move the control points of any (intermediate) mesh. Dragging with left, middle and right mouse buttons moves the control point in X-Y, Y-Z and X-Z planes respectively).

5. Ability to zoom out and zoon in (using keys 'z' and 'x')

6. Ability to rotate the current mesh/surface along x-axis or y-axis (using keys 'i', 'j', 'k' and 'l').

The following screenshots illustrate the performance of the algorithms on various meshes. Note that for Loop's , Butterfly and Modified Butterfly schemes,

I have triangulated the meshes (if they are not triangular) prior to applying the respective scheme. Each of the following figures depicts a mesh/surface

followed by the limit surfaces obtained by applying Mid-point, Doo-Sabin, Catmull-Clark, Loop's, Butterfly and Modified Butterfly subdivision algorithms

on the initial mesh.

 

                                                                                           

           

 

 

 

 

 

The following is a mesh  I created by editing the control points of a icosahedron. The limit surface is construted using Loop's scheme.

 

I have tested the algorithms on meshes available in (http://www.holmes3d.net/graphics/offfiles/ ). Based on the performance on these meshes I conclude the following.

1. Catmull-Clark and Loop's algorithm are the best schemes (w.r.t surface smoothness) for non-triangular and triangular meshes respectively.

2. All schemes except mid-point scheme take about 3 to 5 iterations to converge to a limit surface.

3. Mid-point scheme is the least efficient of all the schemes. It takes around 8 to 10 iterations to converge to a surface.