![]() |
Triangulation Method 1 |
![]() |
Triangulation Method 2 |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Original Mesh | After Loop Subdivision |
![]() |
![]() |
![]() |
Original Mesh | First iteration with parameter .1 | Second iteration with parameter .1 |
As we see from above images, butterfly did poorly on the Mesh. However, the original mesh is composed by faces with four vertices, since butterfly subdivision only applies on triangular faces. The way we tessellate the original meshes have huge impact on the quality of the butterfly subdivision scheme.
![]() |
![]() |
![]() |
Original Mesh | First iteration with parameter .1 | Second iteration with parameter .1 |
![]() |
![]() |
![]() |
![]() |
Unlike above subdivision scheme, Catmull-Clark Subdivison works on polygon meshes with arbitrary degree patches. Note that after applying Catmull-Clark subdivison, all the faces will have degree 4. Thus, if one want to keep applying other subdivision scheme, one may have to apply triangulation again.
![]() |
Original Mesh |
![]() |
First Iteration |
![]() |
Second Iteration |
![]() |
![]() |
Read and Display from Terminal | cglv |
CS779 is my first course in computer graphics. Thus, through implementing my project I learned not only mathematical reasoning regarding those subdivision schemes,
but also some basic knowledge regarding using openGL.
In addition, above subdivision schemes turns to be much more difficult when implementing with winged-edge data structure. It is better to write down what needs to be updated (faces, edges, vertices) and check every items on the list when you finish coding. In my implementation, I implement the basic winged-edge data structure, which store the pointers of end vertices and faces in each winged-edge, which is space efficient. For future improvement, one can implement a hash table which preserves vertex-face mapping, and it would be more efficient regarding processing speed.
At last, I learned that never bring your project into your holiday, DO YOUR DEMO BEFORE YOU LEAVE!!
E. Catmull,J. Clark. (1978). Recursively generated B-spline surfaces on arbitrary topological meshes. Computer-Aided Design 10(6), 350-355.
Holmes, R. (n.d.). Mesh-Man. Retrieved 5 8, 2013, from HOLMES 3D.NET: http://www.holmes3d.net/graphics/meshman/
Kobbelt, L. (2000). Root 3-Subdivision. SIGGRAPH '00 Proceedings of the 27th annual conference on Computer graphics and interactive techniques (pp. 103-112). New York: ACM Press/Addison-Wesley.
Loop, C. (1987). Smooth Subdivision Surfaces Based on Triangles. Mathematics thesis, University of Utah.
Nra Dyn, D. L. (1990). A Butterfly Subdivision Scheme for Surface Interpolation with Tension Control. ACM Transactions on Graphics, 160-169.
University, C. (2012). Subdivision Surfaces. Retrieved from Modeling for Computer Graphics: http://pages.cpsc.ucalgary.ca/~samavati/cpsc589/pdfs/nsubdiv2.pdf
University, S. (2010). Lecture Notes on Subdivision Surfaces. Retrieved from Stanford Graphics Lab: http://graphics.stanford.edu/courses/cs468-10-fall/LectureSlides/10_Subdivision.pdf
Wikipedia. (n.d.). Subdivision Surface. Retrieved 5 8, 2013, from Wikipedia: http://en.wikipedia.org/wiki/Subdivision_surface