Lecture 24: Advanced Skinning (Cages)

by on April 27, 2013

Re-Cap: What did we learn about skinning last time

• The skinning / rigging problem
• Hierarchical skeletal skinning
• Linear-Blend Skinning
• Example-Based fitting
• Pose-Space Deformations

What was wrong with linear blend skinning?

• Hard to come up with good weights (although, example-based approaches)
• especially for local control
• Artifacts (candy-wrapper, elbow compression)
• Lack of control
• What happens if your skeleton isn’t rigid?
• Motion between co-ordinate systems
• Scales? (vs. translations)
• Add small amounts of detail

Dealing with Artifacts: Dual Quaternion Skinning

Math in paper is hard to fully understand – but they give you code, easy to use.

Prelude: the problem of artifacts

• linear interpolate matrices – not rotations
• lose rigidity

Why not interpolate rotations (e.g. quaternions)?

• different centers of rotation
• we’re not interpolating rotations! we’re intrpolating coordinate systems

Better interpolation of matrices?

• exponential maps (expensive, problem with centers)
• allows for non-rigid things
• need a different representation of rigid transforms

Try to blend rotation – but choose a smart choice for the center

• Optimal center of rotation?
• find the center such is a good center for all the transformations
• SVD
• must be done per-vertex
• Joint nearest the points (problem: discontinuities)
• Blend the centers
• trans-rot is a pure rotation (just with a center somewhere else)
• this is what exponentials do
• this is what dual quaternions do

Dual Quaternions

• dual numbers are kindof like complex numbers
• a + b e (e is the dual unit)
• e^2 = 0 (as opposed to i^2=-1)
• dual quaternions a Q1 + Q2 e
• not the same as an octonioan
• have a different algebra associated with them
• they can represent rigid transformations
• there is a way to define interpolation over them
• details in the paper

Cages

A different approach: rather than having an internal skin, have an external control cage.

• specific case of deformation control: based on outline / exterior boundary
• control space inside by manipulating boundary

Note: only the EXTERIOR is the cage – the internal segments are shown just for clarity – there is nothing special about those lines (we do not require interpolation at the internal lines

If we have a good way of deforming the inside of the cage we get:

• easy addition of controls
• ways to deal with artifacts (add controls, or rely on “goodness” of deformation)
• ability to gracefully deal with non-rigid things

Several people noted that the “automation” and “connection to controls” issues. These are dealt with in another paper (re-usable templates).

Coordinates

Cartesian

• scale axes (independently)
• (in 2D) 2 scales + 2 translational degrees of freedom

note: once you know the coordinates, really easy to determine where things go based on the d.o.f.

Affine

• allow the vectors to change (arbitratily) – direction and scale
• 4 d.o.f. (2 vectors) + move center
• translation + linear

Barycentric

• express as a linear combination of the corner points
• center of mass if points were weights
• aA + bB + cC (for a triangle)
• how graphics works
• unique for a non-degenerate triangle
• Note interpolation:
• edges go to edges (corners to corners)
• only unique for triangles (simplicies – tetrahedra, …)

How to make barycentric coords for polygons?

• convex
• non-convex
• Mean value coordinates – first really useful one
• MVC can be negative (so places on the inside move in the opposite direction)
• Positive – MVC (hard to compute)

Note: once you have the coordinates, “playback” is easy (since the result is just a linear combination)

Harmonic Coordinates

• laplacian is zero
• Mean value property (value of any point is average of circle around it)
• largest value in a region is bounded by values at the edge
• unique
• simple way to compute (by successive averaging) – but can be slow
• but once you compute them, using them is fast
• much faster ways to compute them exist
• multi-grid, conjugate gradient
• can force to interpolate more points than just the edges to give additional control (Woody’s eyeball is a sphere)

Green’s Coordinates

Add additional controls – not just the points but the edges as well.

• gives additional info to make sure things work well
• mappings “conform” around the edges (derivatives across edges are preserved)
• local rotations (as defined by the changes in the edge)

Previous post:

Next post: