CS 679 Project - Subdivision Surfaces
Bonny Liu
I have implemented 4 subdivision schemes for my project:
-
Catmull-Clark
-
can handle interior cases, boundary cases and extraordinary vertices
-
Peter
-
can handle interior points
-
Loop
-
triangulation
-
can handle interior cases, boundary cases and extraordinary vertices
-
Modified Butterfly
-
triangulation
-
can handle interior cases, boundary cases and extraordinary vertices
Catmull-Clark
-
I used the extraordinary point coefficients from the original paper
-
Catmull-Clark works well on quadrilateral meshes
-
works poorly on some of the triangular meshes (with many extraordinary
vertices)
-
may easily create artifacts like ripples and ditches around the extraordinary
vertices
Here is an example (a cube) of the Catmull-Clark scheme:
Original
Cube
One level
of subdivision
Two
levels
Three
levels
Four levels
Four levels
of subdivision with normals. The vertex normals are obtained by averaging
the normals of adjacent triangles.
Another example (to illustration the boundary cases are handled correctly):
Original
patch
3 levels
of Catmull Clark subdivision
Peter
-
does not necessarily always provide smooth looking surfaces
-
may have spiky points resulting from the original face mid-point
-
needs many levels of subdivision
-
easy to implement
Cube, 6 levels
of Peter subdivision
Loop
-
works on triangular meshes therefore needs to triangulate model first
-
triangulation - by joining face mid-point with the corners.
-
works fairly well in general
-
most of time, it smooths out significantly more than Catmull Clark.
Modified-Butterfly
-
works on triangular meshes therefore needs to triangulate model first
-
interpolating scheme - therefore the quality is highly model dependent
-
I first used mid-point triangulation. Since it's an interpolation scheme,
it tries to interpolate the midpoints, which are not necessarily meant
to be on the surface. Therefore I tried the "Zig-Zag" triangulation,
however this triangulation is not symmetrical.
Note: "Zig-Zag" triangulation is not symmetrical in general, both
with Loop or Modified butterfly scheme.
The followings are subdivisions of Loop and Modified Butterfly schemes.
(Cube) They are to illustrate the difference of the two triangulation
methods.Modified
Butterfly (4 levels, Zig-Zag triangulation)
Loop (3
levels, Zig-Zag triangulation). NOTE: might be hard to see, but it's
not symmetrical
Modified
Butterfly (4 levels, mid-point triangulation) NOTE: it tries to interpolate
the face mid-points.
Loop (3
levels, midpoint triangulation)
I have compared the above schemes using some models:
Original
model
Catmull
Clark (3 levels)
Peter
(6 levels)
Loop
(3 levels)
Modified
Butterfly (4 levels)
Original model
Catmull
Clark (3 levels)
Peter (3
levels)
Loop (3
levels)
Modified
Butterfly (3 levles)
Observations:
-
Peter scheme doesn't provide a smooth surface as others
-
Loop smooths out a lot more than Catmull Clark
-
Modified Butterfly looks the closest to the orginal shape because it interpolates
rather than approximates
Original
Model
Catmull
Clark (2 levels)
Peter (2
levels)
Loop (2
levels)
Modified
Butterfly (2 levels)
Observations
-
Loop scheme look the best.
-
Catmull Clark doesn't look as good probaly because the original model is
in triangular form and hence create many extraoridinary vertices
-
Modified Butterfly tries to interpolate all the points and therefore doesn't
necessarily provide "visual" smooth surface.
-
In general, Loop scheme performs the best.
Assumptions of my program
-
convex polygons
-
each face must be >= 3 vertices
-
counterclockwise ordering
-
all edges have only up to 2 adjacent faces
-
no "double-sided" polygons
Special thanks to Ian Bell and Vincent Ma for their help.