Presentation is loading. Please wait.

Presentation is loading. Please wait.

Subdivision Surfaces in Character Animation Tony DeRose Michael KassTien Truong Pixar Animation Studios Balaji KannanChen Shen.

Similar presentations


Presentation on theme: "Subdivision Surfaces in Character Animation Tony DeRose Michael KassTien Truong Pixar Animation Studios Balaji KannanChen Shen."— Presentation transcript:

1 Subdivision Surfaces in Character Animation Tony DeRose Michael KassTien Truong Pixar Animation Studios Balaji KannanChen 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

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 11 6

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: s i <s<s i +1 Use sharp rules s i times and smooth rule once more to get vertex set V 1 Use sharp rules s i +1 times to get vertex set V 2 Linearly interpolate between V 1 and V 2 Use smooth rules to the limit

21 Example of non-integral sharpness… Linear interpolation Smoothing sisi S i +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: e ab.s = max(0, 0.75*e b.s + 0.25*e a.s-1) eaea ecec ebeb e ab e bc

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(S 1 ) E(S 2 ). Energy minimized when either spring is at its rest length. Free to bend along either diagonal.

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

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(N 2 ) 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

51 Contd… Efficient collision detection makes subdivision surfaces well suited for physical simulation Cloth dynamics and rendering benefit a lot from Catmull-Clark subdivision surfaces


Download ppt "Subdivision Surfaces in Character Animation Tony DeRose Michael KassTien Truong Pixar Animation Studios Balaji KannanChen Shen."

Similar presentations


Ads by Google