Loop Subdivision
Me and Nisha Jain, developed a C++ implementation of Loop
subdivision algorithm[0] for smoothly subdividing meshes, as a part of
our CSL859 (Advanced Computer Graphics) assignment in Fall 2010. We
were supposed to model a smooth chess pawn using subdivision. The input
is a coarse base mesh (see the images below). The coarse mesh can be
subsequently tessellated to any required kth level. We implemented an
OpenGL viewer for the subdivided model and on zooming the model
up on screen, it continues to look smoother and smoother (with
appropriate k). The mesh is stored in the half-winged-edge data
structure for algorithmic efficiency. The handling of creases was a
task and for that we followed the approach described in [1].
References
[0] "Smooth Subdivision Surfaces Based on Triangles" - MS Thesis by Charles Loop, University of Utah, 1987.
[1] "Piecewise Smooth Surface Reconstruction", Hoppe .et.al. SIGGRAPH 1994.