Post on 20-Dec-2015
Subdivision Surfaces in Character AnimationTony DeRose - Michael Kass -
Tien Truong- Pixar Animation Studios -
Pierce Groover
March 4th, 2003
Agenda•Background of subdivision
surfaces•Reasons for use•Methods and implementation•Pixar developments•Conclusion and Geri’s Game
Background•Problems
– Trimming NURBS is expensive and can have numerical errors
– When used in animation, very hard to hide seams
•These problems can be fixed with Subdivision
Background•Subdivision
–No Trimming–Connectivity and smoothness guaranteed•No hacks needed
•Did not have development like NURBS
•Pixar needed to develop tools–Semi-sharp creases
•Based on infinitely sharp creases (Hoppe)
–Physical simulation (ie: clothing)–Collision detection–Texture mapping
Background
Subdivision•Construct a
surface from an arbitrary polyhedron– Subdivide each face
of the polyhedron
•The limit will be a smooth surface
Subdivision•How to subdivide a
face?–Divide each edge in half–Average the centroids of each adjacent edge
–Reconnect the two edges with the new vertex
•Three main methods–Catmull-Clark (quadrilaterals)
–Loop’s method (triangles)–Butterfly method (triangles)
Subdivision
•Chose Catmull-Clark–Generalize B-Splines
•Easier to implement with existing software
–Quadrilaterals are better at describing human body parts•Tube-like arms, legs, fingers, etc…
Subdivision
Subdivision – Catmull-Clark
• Same as methods as in 2-D– Start with control mesh
•Split all faces into quadrilaterals
– Apply subdivision rules– Limit surface is
tangent plane smooth no matter where the control vertices are placed
Pixar Developments•Semi-sharp creases•Physical simulation •Efficient collision detection•Texture mapping
•Pioneered by Hoppe–Very useful
•Simply mark a subset of the edges as “sharp” and apply a different set of governing rules
•Easy to model
Sharp Creases
•But…–Real world objects cannot have infinitely sharp creases
–Sometimes necessary to have tightly curved edges
–So…..
Sharp Creases
•Pixar developed a generalization (semi-sharp)–Controllable sharpness–Sharpness (s) = 0, smooth
–Sharpness (s) = inf, sharp–Achievable through hybrid subdivision
Semi-Sharp Creases
•Model kinematic/dynamic objects–Specifically, but not limited to, clothing
•Must define an “energy functional”–Finite difference approach–Use springs to model clothing
Physical Simulation
•Model kinematic/dynamic objects–Specifically, but not limited to, clothing
•Must define an “energy functional”–Finite difference approach–Use springs to model clothing
Physical Simulation
•Simple solution–Test each geometric element against all others
–Not practical (N2 = Bad)
•Use 2-d or 3-d structure to represent objects–They used 2-d
•Hierarchy fixed, storage is static, never need rebalance
Collision Detection
•Done mostly in preprocessing•Hierarchy is made from bottom up
–Start at leaves with control mesh–Get more detailed as move up–Root is final surface
•Only need update control vertices positions
Collision Detection
•Solid color painting is easy, already defined
•Texturing is not so easy–Using polygonal methods can result in distortion
Texture mapping
•Treat texture coordinates in same way as geometric coordinates and use subdivision
•These are scalar fields–Used in Geri’s jacket, ears, nostrils
•Procedural shaders use scalar values to determine colors
Texture mapping
•Scalar values are determined by using interpolation at control points using Laplacian smoothing
•Sometimes even done manually
Texture mapping
•2D– http://www.subdivision.org/subdivision/d
emos/2d.jsp
• 3D– http://
www.subdivision.org/subdivision/demos/demos.jsp
DEMOS!
Conclusion•Subdivision > NURBS
–More control, accuracy
•Pixar = sweet–Developments make subdivision surfaces very practical and useful
–Now part of Renderman
•First definitive work with subdivision
•Crazy old man playing chess against himself
•Enjoy!
• http://www.pixar.com/shorts/gg/theater/short_320.html
Geri’s game
•Pictures and references from:– http://www.subdivision.org– http://www.3dgraphicsoutpost.com/
subdivisionsurfacesintro.htm– http://www.cs.princeton.edu/courses/
archive/fall02/cs526/lectures/subdivision.pdf
– http://www.pixar.com/– http://www.scg.uwaterloo.ca/~hqle/
subdivision/images/Loop/Loop1.html
Thank You