Subdivision Surfaces in Character Animation Tony DeRose - Michael Kass - Tien Truong - Pixar Animation Studios - Pierce Groover March 4 th, 2003
Agenda Background of subdivision surfaces Reasons for use Methods and implementation Pixar developments Conclusion and Geri’s Game
Background NURBS (Nonuniform Rational B-Splines) Easy and Available
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
But First… –What is Subdivision?
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
Subdivision
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 (N 2 = 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 – 2d.jsphttp:// 2d.jsp 3D – demos.jsphttp:// 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! rt_320.htmlhttp:// rt_320.html Geri’s game
Pictures and references from: – – surfacesintro.htmhttp:// surfacesintro.htm – all02/cs526/lectures/subdivision.pdfhttp:// all02/cs526/lectures/subdivision.pdf – – /images/Loop/Loop1.htmlhttp:// /images/Loop/Loop1.html Thank You