Phace: Physics-based Face Modeling and Animation
1. Introduction
Contributions
- a novel muscle activation model that offers more flexibility than standard fiber-based models
- a physics-based simulation method that retains realism even with significant external forces or substantial modifications of the face geometry and tissue material properties
- an inverse modeling optimization to adapt the simulation template to a series of expression scans of a specific person.
Overview
3. Template Face Model
- generic face model — an anatomical face template corresponding to an average human subject ( see Figure above )
- polygonal representations of the bones, skin, and 33 facial muscles
- generate a tetrahedral mesh discretizing the soft tissue ( two types ) of the face
- active — muscles
- passive — subcutaneous fat, connective tissue and the skin
Jaw kinematics
- see Figure © above
- DoF ( degree of freedom ) = 5
- — kinematic parameters of the jaw bone
Template blendshapes
- defined on the skin as a basis for parametrizing the space of facial expressions
- provide no information about the internal deformations
4. Forward Physics
Passive tissue
- — deformation energy
- ( params ) — a vector stacking all degrees of freedom of the soft tissue
- ( input ) — index goes over all tets
- ( input ) — volume of the -th tetrahedron that is occupied by passive tissue, pre-computed during template construction with Monte-Carlo sampling
- first term — commonly used co-rotated elasticity ( measure of deviation from rigid motion )
- second term — resistance to changes of volume
- — deformation gradient
- ( params ) — auxiliary rotation matrix used in co-rotated model
- — material parameters
Active tissue
Muscles can generate only internal forces. In other words, an isolated muscle is not capable of translating or rotating by itself (even though the muscle can of course be translated or rotated due to contact with the surrounding tissues).
- no translation — translation invariance of the deformation gradient operator
- no rotation — activation to be a symmetric matrix
- — eigendecomposition
- — orthonormal coordinate system
- — diagonal, non-uniform scaling
- — activation vector
- — linear operator to generate the corresponding symmetric matrix
- — eigendecomposition
Muscles are approximately incompressible, which means should be close to 1. However, to compensate for discretization errors, we do not enforce strictly, but only as a soft constraint, as discussed in Section 5.
- — deformation energy
- ( params ) — a vector stacking the 6-dimensional activation parameters for all active tets
- — index goes over all tets
- ( input ) — volume of the -th tet that corresponds to active tissue
- co-rotated term — find the rotation that best aligns the deformation gradient with
- second term — encourage the volume ratio of the deformed tet ( i.e. ) to align with the volume ratio of the activation matrix , which should be close to 1, i.e., volume conserving.
Bone attachments
To distinguish areas where soft tissue is directly attached to the bones from areas where soft tissue slides over the bones, we create two types of constraints:
- pin constraints — Dirichlet boundary conditions
- sliding constrains — point-on-plane constraints
- — kinematic parameters of the jaw bone
Quasi-static solution
- — gravitational potential ( )
- inequality constraints — resolve penetrations ( collision response )
When collision detection finds a surface vertex penetrating the volumetric face model ( see below for more details ), an inequality constraint is appended to . For each offending vertex we find its projection onto the surface and create a tangent plane at this point. The inequality constraint requires the vertex to be at the half-space opposite the volume.
Collisions - implementation details
Because the geometry of the teeth is quite detailed ( and we are not aspiring to simulate e.g. flossing where the detail would be necessary ), we start by creating proxy collision shapes for the upper and lower teeth ( see Figure 3-e ).
detect collisions using AABB hierarchies
5. Inverse Physics
Optimization formulation
- — bone parameters
- — muscle activations
- — target vertex positions of the skin
- — how close state is to the target
- matrix — selects the simulation nodes corresponding to the skin surface
- — encode both position ( point-to-point ) and point-to-plane distance terms
- last vector equality — sum of all forces ( gradient with respect to ) is zero
Regularization
Numerical solution
6. Phace Modeling and Animation
Model Building
- input — 3D scan of subject in neutral expression and about 5-10 additional premeditated facial expressions
- Each of the scans is approximately aligned with the skin of our template model (Section 3) using rigid registration (plus uniform scale).
- Then we apply non-rigid ICP to find dense correspondences between the template skin and the target scan, guided with a few manually chosen markers as shown in the inset.
- — registered neutral skin surface
- — registered -th expression skin surface
- deform volumetric template model such that its boundary ( skin ) aligns with ( with Anatomy Transfer )
- solve for activations and jaw bone parameters that correspond to each of the blendshapes using the Inverse Physics optimization of Section 5
Animation
- input — per-frame blendshape weights
- compute muscle activations as
- compute the blended jaw kinematics parameters
Dynamics
augmenting the objective of Eq. with the term:
- — positions and velocities in the previous frame
- — time step
- — mass matrix
Plasticity
- — total deformation gradient