1 / 51

Subdivision Surfaces in Character Animation

CS284-CAGD. Subdivision Surfaces in Character Animation. Tony DeRose Michael Kass Tien Truong Pixar Animation Studios. Balaji Kannan Chen Shen. Outline. Motivation. Show Geri’s game. Novelties. Modeling: semi-sharp creases. Animation: support for cloth dynamics. Energy functional.

Download Presentation

Subdivision Surfaces in Character Animation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS284-CAGD Subdivision Surfaces in Character Animation Tony DeRose Michael Kass Tien Truong Pixar Animation Studios Balaji Kannan Chen Shen

  2. Outline • Motivation. • Show Geri’s game. • Novelties. • Modeling: semi-sharp creases. • Animation: support for cloth dynamics. • Energy functional. • Collisions. • Rendering: Parametric texture mapping & implementation issues. • Conclusion.

  3. Outline • Motivation. • Show Geri’s game. • Novelties. • Modeling: semi-sharp creases. • Animation: support for cloth dynamics. • Energy functional. • Collisions. • Rendering: Parametric texture mapping & implementation issues. • Conclusion.

  4. Motivation • Trimming NURBS is expensive and prone to numerical error.

  5. Motivation • Trimmed NURBS is difficult to maintain smoothness.

  6. Motivation • Subdivision surfaces are flexible...

  7. Motivation • ...and smooth

  8. Geri’s Game • Improve tools for human character animation • Skin, hair & cloth • Opportunity to: • Experiment with subdivision surfaces • Experiment with cloth dynamics • Experiment with parametric texture mapping

  9. Outline • Motivation • Show Geri’s Game • Novelties • Modeling: Semi-sharp creases • Animation: Support for cloth dynamics • Energy functional • Collisions • Rendering: Parametric texture mapping & implementation issues. • Conclusion.

  10. Geri's Game

  11. Outline • Motivation • Show Geri’s Game • Novelties • Modeling: Semi-sharp creases • Animation: Support for cloth dynamics • Energy functional • Collisions • Rendering: Parametric texture mapping & implementation issues. • Conclusion.

  12. Example of semi-sharp creases in Geri’s Game

  13. Modeling Blends and Fillets • Infinitely sharp creases • Helpful to model piecewise-smooth surfaces • But real-world surfaces not really infinitely sharp • Semi-sharp creases give smoothly varying normals across crease. So surface does not tear if displaced in direction of normal

  14. Modeling Blends contd… • Use a generalized Catmull-Clark algorithm = Hybrid subdivision • Better than developing individual subdivision rules using weights of creases: • Will have to develop rules for lots of special cases • The symmetry that bestows invariance under cyclic re-indexing is lost

  15. Extreme cases of sharpness…

  16. Darts, creases, corners and Hoppe’s algorithm

  17. Rules using Hoppe’s algorithm for Catmull-Clark surfaces… • Dart and smooth vertices are normal Catmull-Clark vertex points • Corner vertices stay where they are • Crease vertex mask shown below 6 1 1

  18. Hybrid Subdivision concepts… • Tag edges with some sharpness value(s) • Can be integer constant or otherwise • Tells how many times Hoppe’s algorithm is to be applied before smoothing (Catmull-Clark) • Subdivided edges one level finer than parent • Integral sharpness = s • Subdivide using Hoppe’s sharp rules s times • Use smooth Catmull-Clark rules after this

  19. Examples of integer sharpness…

  20. Hybrid subdivision contd… • Non-integral sharpness = s: si<s<si+1 • Use sharp rules si times and smooth rule once more to get vertex set V1 • Use sharp rules si+1 times to get vertex set V2 • Linearly interpolate between V1 and V2 • Use smooth rules to the limit

  21. Example of non-integral sharpness… si Smoothing Linear interpolation Si+1

  22. Dealing with creases with variable sharpness…

  23. Generalized rules (hybrid subdivision) • Face points are same as from Catmull-Clark subdivision • Edge points • Smooth edge- same as from Catmull-Clark • Crease with sharpness > 1- use midpoint as edge point • Edge with sharpness between 0 and 1- linear blend of above two

  24. Generalized rules contd… • Vertex points • Smooth/Dart vertex- use Catmull-Clark rules for vertex points • Corner vertices- vertex points stay at same place as vertex • Crease vertices • Average sharpness >= 1- use crease vertex rule • Otherwise, take linear blend of crease vertex rule and smooth vertex rule • Blooper in paper- says use linear blend of crease vertex rule and corner vertex rule for above case

  25. Sharpness of subdivided edges… • Use Chaikin’s corner-cutting algorithm at 3:1 (or 1:3) ratio: • eab.s = max(0, 0.75*eb.s + 0.25*ea.s-1) eb ebc eab ec ea

  26. Outline • Motivation • Show Geri’s Game • Novelties • Modeling: Semi-sharp creases • Animation: Support for cloth dynamics • Energy functional • Collisions • Rendering: Parametric texture mapping & implementation issues. • Conclusion.

  27. Cloth Dynamics • Simulated physics for clothing animation • Subdivision surfaces for kinematics and dynamic objects • Energy functional • Surface integral ---- finite-element approaches • Discrete sum of terms ---- finite-difference methods

  28. Quad Meshes for Cloth • Catmull-Clark ---- regular quadrilateral grids. • Warp & weft directions given locally. • “Threads” have meaning.

  29. Energy Functional • Avoid stretch • Springs along mesh edges • Avoid skew • Springs along mesh diagonals • Avoid bending • Virtual threads

  30. Avoid Stretch • Little stretch long the warp and weft directions. • Strong fixed rest-length spring along each edge of the mesh. • Energy term.

  31. Avoid Skew • Diagonal springs resist skew. • Problems with diagonal springs. • E = k E(S1) E(S2). • Energy minimized when either spring is at its rest length. • Free to bend along either diagonal.

  32. Avoid bending Virtual thread • Virtual threads. • Anti-bending energy.

  33. Outline • Motivation • Show Geri’s Game • Novelties • Modeling: Semi-sharp creases • Animation: Support for cloth dynamics • Energy functional • Collisions • Rendering: Parametric texture mapping & implementation issues. • Conclusion.

  34. Collision detection • Simplest approach is O(N2) algorithm • Use of some elegant spatial data structures can help make it O(N*log(N)) • Use a 2-D surface-based data structure- in some sense, a quadtree analog • No parameter plane to recurse on for hierarchy coarser than initial control mesh. So, • Iteratively remove edges from control mesh and build up hierarchy (un-subdividing) • Stop when only one super-face is left • Maintain reasonable balance in hierarchy

  35. Illustration…

  36. Collision detection contd… • Balancing hierarchy • Because, if edges in newly generated super-face are removed, imbalance occurs • So, if an edge has been removed, remove all edges of corresponding super-face from candidate list • How do we detect collisions? • Build bounding boxes for patches in hierarchy in bottom-up fashion

  37. Collision detection contd… • Start at root to check bounding box intersection with object • Recurse down hierarchy if intersection occurs • Control vertex positions change as subdivision progresses • So all bounding boxes in hierarchy should be updated in bottom-up fashion • Efficient way-each leaf knows which vertices constructed its bounding box

  38. Outline • Motivation • Show Geri’s Game • Novelties • Modeling: Semi-sharp creases • Animation: Support for cloth dynamics • Energy functional • Collisions • Rendering: Parametric texture mapping & implementation issues. • Conclusion.

  39. Texture Mapping • Four principal methods: • Parametric texture mapping. • Not easy for subdivision surface. • Procedural texture. • Not easy for subdivision surface. • 3D painting. • Straightforward for subdivision surface. • Solid texture. • Straightforward for subdivision surface.

  40. For Polygonal Models • Assign texture coordinates to vertexes. • Linear or bilinear interpolation for triangles and quadrilaterals. • Split for other faces. • Not differentiable across edges.

  41. For Subdivision Surface • Texture coordinates (s,t) assigned to the control vertices. • Subdivide using the same rules. • Totally, 5D space (x,y,z,s,t).

  42. Scalar Field • For texture coordinates. • For arbitrary parameters. • Seams for Geri’s jackets. • Geri’s nostril and ear cavities. • Physical parameters in cloth simulator. • Scalar field assignment. • Manually. • Interpolation using Laplacian smoothing. • Painting on rendered images and use a least squares solver.

  43. Examples

  44. Outline • Motivation. • Show Geri’s game. • Novelties. • Modeling: semi-sharp creases. • Animation: support for cloth dynamics. • Energy functional. • Collisions. • Rendering: Parametric texture mapping & implementation issues. • Conclusion.

  45. Implementation issues in rendering • Renderman requires all primitives to be convertible to grids of micro-polygons • So each primitive should be • Able to split into sub-patches • Able to bound itself for culling • Able to dice itself into micro-polygons • BOUNDING patches • Each patch has a control mesh • Take bounding box of control mesh (convex hull property of Catmull-Clark surfaces)

  46. Implementation contd…. • Check if primitive is diceable • Not diceable if splitting produces • Lots of micro-polygons • Micro-polygons vary hugely in size • If not diceable, subdivide each patch to get 4 new sub-patch primitives • Check whether sub-patches are diceable iteratively

  47. Catmull-Clark limit properties and rendering… • Bi-cubic B-Splines are the limit surfaces except for extraordinary points • So a number of sub-patches are identified with B-Spline patches • Advantages • Fixed memory allocation for a patch- no need to store vertex connectivity for B-Spline patch • Ability to be split independently in either parametric direction reduces splitting time

  48. Catmull-Clark limit contd… • Efficient forward-differencing algorithms for dicing B-Spline patches available

  49. Outline • Motivation. • Show Geri’s game. • Novelties. • Modeling: semi-sharp creases. • Animation: support for cloth dynamics. • Energy functional. • Collisions. • Rendering: Parametric texture mapping & implementation issues. • Conclusion.

  50. Conclusions • Compare subdivision and NURBS • NURBS • Prevent local refinement • Care should be taken to hide seams between patches • Subdivision surfaces • Overcome some apparent (inherent) disadvantages by using semi-sharp creases and scalar fields for shading

More Related