Kevin Beason's Homepage > Software > subd

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.

References

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/

Kevin Beason / kevin.beason [] gmail.com Home