Upload
cassandra-jackson
View
221
Download
0
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.
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.
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
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
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
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
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.
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