subd
Kevin Beason
<beason@cs.fsu.edu>
Subdivision surfaces software
subd is a test-bed for subdivision surfaces in C++ using Open Inventor.
It produces smooth surfaces from an initial control mesh using Catmull-Clark
subdivision, though I may add other techniques in the future.
The image sequences below show the iterative refinement applied by subd
to freely available meshes I downloaded from the web.
For each refinement, the control mesh is subdivided and then the new vertices
are adjusted according to the Catmull-Clark subdivision scheme described
initially in the 1978 paper "Recursively Generated B-Spline Surfaces on
Arbitrary Topological Meshes" by E. Catmull and J. Clark. Unable to
actually find this paper in the library or online for free, I consulted
several webpages describing the scheme. See the references at the bottom
for more links.
Releases
9/2/05
Version 1.4 supports simple subdivision and Catmull-Clark subdivision.
Example images
In addition to smoothing meshes, subd
can also apply simple subdivision
without vertex adjustment, as shown in this last sequence for a cube mesh.
The last image is a rendering of the refined mesh by my ray tracer,
Pane,
using a high-dynamic-range environment map I created myself using
HDR Shop.
The status is rendered with a slight (unnoticable, really) translucent effect.
This last image is a another rendering of the refined mesh by
pane,
using the "kitchen"
high dynamic range image from Paul Debevec
as an environment light.
In this debugging image only the edge points of the cube are moved.
http://en.wikipedia.org/wiki/Catmull-Clark_subdivision_surface
http://www.flipcode.com/articles/article_halfedge-pf.shtml
http://symbolcraft.com/graphics/subdivision/
http://www.cs.berkeley.edu/~steve0/cs294proj2/
http://www.sfu.ca/~ysl/Catmull-Clark/Data/
http://graphics.idav.ucdavis.edu/education/CAGDNotes/Cubic-B-Spline-Sur...
http://geometry.poly.edu/HDSTL/doc/hdstl/hdstl_introduction.htm
http://www.csit.fsu.edu/~beason/pane/
http://www.student.cs.uwaterloo.ca/~cs779/Gallery/Win2001/bhpliu/