Subdivision Surfaces Ref: Subdivision Surfaces in Character Animation, DeRose et. al, SIGGRAPH98
Introduction Complex shapes used in character animation –head, hand, clothing, etc. Traditionally, (trimmed) NURBS –Alias/Wavefront, SoftImage –severe topological restrictions Pixar introduces subdivision surfaces in production environment –Geri’s game
Bad things about trimmed NURBS topologically equivalent to a sheet trimming is expensive; prone to numerical error difficult to maintain smoothness across boundary –manual labor to hide the seams –even more so when model animates
On the contrary, subdivision surface… do not require trimming smoothness of model is automatically guaranteed support arbitrary topology –construct a surface from an arbitrary polyhedron by repeatedly subdividing each of the faces
Catmull-Clark Surface one of the first subdivision schemes –based on quadrilateral –(triangle-based Loop surface) control mesh M(0) M(1), M(2), … limit surface can be shown to be tangent plane smooth
Subdivision Rules valence (of a vertex) n : # of incident edges vertex pt, edge pt, face pt: –each vertex of M(i+1) can be associated with v/e/f of M(i) –fpt: centroid of face –ept: –vpt:
Implementation Require basic topological data structure –winged edge is sufficient Each subdivision step –geometric computation (as in previous slide) –topological update new vertices (fpt, ept) new edges new faces
Creating Sharp Features (creases) subdivision rules need to be modified –ept –vpt w/ 1 crease: smooth formula –vpt w/ 2 creases –vpt w/ 3+ creases
Semi-Sharp Creases
Task implement subdivision surface in OpenGL –design your own data structure –design a file format for inputting M0 –use picking and keyboard callback function to edit control mesh M0 –slider to control subdivision steps; able to modify mesh in each step –mark (infinitely) sharp edges