51
Subdivision Surfaces in Character Animation Tony DeRose Michael Kass Tien Truong Pixar Animation Studios Balaji Kannan Chen Shen

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

Embed Size (px)

Citation preview

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. Collisions.

Rendering: Parametric texture mapping & implementation issues.

Conclusion.

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.

Motivation

Trimming NURBS is expensive and prone to numerical error.

Motivation

Trimmed NURBS is difficult to maintain smoothness.

Motivation

Subdivision surfaces are flexible...

Motivation

...and smooth

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

Outline

MotivationShow Geri’s GameNovelties Modeling: Semi-sharp creases Animation: Support for cloth dynamics

Energy functional Collisions

Rendering: Parametric texture mapping & implementation issues.

Conclusion.

Outline

MotivationShow Geri’s GameNovelties Modeling: Semi-sharp creases Animation: Support for cloth dynamics

Energy functional Collisions

Rendering: Parametric texture mapping & implementation issues.

Conclusion.

Example of semi-sharp creases in Geri’s Game

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

Modeling Blends contd…

Use a generalized Catmull-Clark algorithm = Hybrid subdivisionBetter 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

Extreme cases of sharpness…

Darts, creases, corners and Hoppe’s algorithm

Rules using Hoppe’s algorithm for Catmull-Clark surfaces…

Dart and smooth vertices are normal Catmull-Clark vertex pointsCorner vertices stay where they areCrease vertex mask shown below

1 1

6

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 parentIntegral sharpness = s Subdivide using Hoppe’s sharp rules s times Use smooth Catmull-Clark rules after this

Examples of integer sharpness…

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

Example of non-integral sharpness…

Linear interpolation

Smoothingsi

Si+1

Dealing with creases with variable sharpness…

Generalized rules (hybrid subdivision)

Face points are same as from Catmull-Clark subdivisionEdge 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

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

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)

eaec

eb

eab

ebc

Outline

MotivationShow Geri’s GameNovelties Modeling: Semi-sharp creases Animation: Support for cloth dynamics

Energy functional Collisions

Rendering: Parametric texture mapping & implementation issues.

Conclusion.

Cloth Dynamics

Simulated physics for clothing animationSubdivision surfaces for kinematics and dynamic objectsEnergy functional Surface integral ---- finite-element

approaches Discrete sum of terms ---- finite-difference

methods

Quad Meshes for Cloth

Catmull-Clark ---- regular quadrilateral grids.Warp & weft directions given locally.“Threads” have meaning.

Energy Functional

Avoid stretch Springs along mesh edges

Avoid skew Springs along mesh diagonals

Avoid bending Virtual threads

Avoid Stretch

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

1p

2p

3p

4p

),( 21 ppEk ss

2

*2

*1

21221 )1(2

1),(

pp

ppkppEk ss

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.

1p

2p

3p4p

),( 21 ppEs

),( 43 ppEs

),(),(

),,,(

4321

4321

ppEppEk

ppppEk

ssd

dd

Avoid bending

Virtual threads.Anti-bending energy.

1p

2p

3p

Virtual thread

),,( 321 pppEk pp

2*3

*2

*1321321 )],,(),,([

2

1),,( pppCpppCpppEp

*1

*2

12*2

*3

23321 ),,(

pp

pp

pp

pppppC

Outline

MotivationShow Geri’s GameNovelties Modeling: Semi-sharp creases Animation: Support for cloth dynamics

Energy functional Collisions

Rendering: Parametric texture mapping & implementation issues.

Conclusion.

Collision detection

Simplest approach is O(N2) algorithmUse 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 analogNo 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

Illustration…

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

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 progressesSo all bounding boxes in hierarchy should be updated in bottom-up fashionEfficient way-each leaf knows which vertices constructed its bounding box

Outline

MotivationShow Geri’s GameNovelties Modeling: Semi-sharp creases Animation: Support for cloth dynamics

Energy functional Collisions

Rendering: Parametric texture mapping & implementation issues.

Conclusion.

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.

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

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

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.

Examples

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.

Implementation issues in rendering

Renderman requires all primitives to be convertible to grids of micro-polygonsSo 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)

Implementation contd….

Check if primitive is diceableNot 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 primitivesCheck whether sub-patches are diceable iteratively

Catmull-Clark limit properties and rendering…

Bi-cubic B-Splines are the limit surfaces except for extraordinary pointsSo a number of sub-patches are identified with B-Spline patchesAdvantages 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

Catmull-Clark limit contd…

Efficient forward-differencing algorithms for dicing B-Spline patches available

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.

Conclusions

Compare subdivision and NURBSNURBS 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

Contd…

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