Simulation of Non-penetrating Elastic Bodies Using Distance Fields

advertisement
1
Simulation of Non-penetrating Elastic Bodies Using Distance Fields
Gentaro Hirota
Susan Fisher
Ming C. Lin
Abstract: We present an ecient algorithm for simulation of non-penetrating exible bodies with nonlinear elasticity. We use nite element methods to discretize the continuum model of non-rigid objects and the fast marching
level set method to precompute a distance eld for each undeformed body. As the objects deform, the distance elds
are deformed accordingly to estimate penetration depth, allowing enforcement of non-penetration constraints between
two colliding elastic bodies. This approach can automatically handle self-penetration and inter-penetration in a uniform manner. We combine quasi-viscous Newton's iteration
and adaptive-stepsize incremental loading with a predictorcorrector scheme. Our numerical method is able to achieve
both numerical stability and eciency for our simulation.
We demonstrate its eectiveness on a moderately complex
animated scene.
Keywords: Deformation, physically-based animation, numerical analysis.
Figure 1: A snapshot of the animation automatically gener-
Due to recent advancements in physically-based modeling,
simulation techniques have been increasingly used to improve
the quality and eciency in the generation of computer animation for major lm productions [FM96, DKT98], medical
simulation [KGC+ 96, Gib98] and computer games. These
techniques produce animation directly from input objects,
simulating natural motions and shape deformations based
on mathematical models that specify the physical behavior
of characters and complex structures.
Modeling deformation is a key component of physicallybased animation, since many real-world objects are not rigid.
Some examples include realistic motion generation of articulated characters with passive objects (such as clothing,
footwear and other accessories), deformation of soft tissues
and organs, and interaction among soft or elastic objects.
Automatic, predictable and robust simulation of realistic deformation is one of the many challenges in computer animation and medical simulation.
When two exible objects collide, they exert reaction
forces on each other resulting in the deformation of both objects. Similarly when one exible body self collides, it may
deform and result in self-intersection. The reaction force
is called contact force, and where the two surfaces touch is
often called the contact surface. Simulating such events is
non-trivial. It is known as the contact problem in computational mechanics, and has been actively investigated for
decades [CL94]. The diculty of this problem arises from
unclear boundary conditions; neither the contact force nor
the position of the contact surface is known a priori.
Previous work on deformable object animation uses
physically-based methods [TPBF87, TF88, PW89, GTT89,
WW90, BW92, CZ92, MT92], variational techniques
[WW92, TQ94], as well as local and global deformations
applied directly to the geometric models [Bar84, SP86,
TQ94, RE99]. Earlier work in computer animation has
focused mostly on the active simulation of primary characters [vFV90, RH91, Coh92, BPW93, HWBO95]. Secondary motions, i.e. motions of passive objects gener-
ated in response to environmental forces or to the movements of characters and other objects, add visual complexity to an animated scene and bring it to life [OHZ97]. Recently passive simulations of re, gas, sand, uids and cloth
[SF95, CVT95, FM96, FM97, BW98, SOH99] have been
gaining attention, as they add distinct realism to the animated scene.
In this paper, we address the problem of simulation of nonlinear elastic bodies, such as soft tissue or synthetic materials
like rubber or plastics. Linear approximations are often used
to generate deformation of elastic bodies for computational
eciency. This is acceptable for some applications. However, large deformation is essential to create exaggeration
eects in computer animation, and often bending of joints
causes global deformation of tissues in medical simulation.
In these situations, linear approximation can generate undesirable and unrealistic behavior. Methods such as springnetwork systems are somewhat limited and are not applicable to modeling material properties like incompressibility.
In many cases where the movement of animated characters
and articulated gures is relatively slow, simulating static
behavior of passive elements is fast and sucient. Each
keyframe or motion sequence, generated by kinematics, inverse dynamics or other means, can provide positional constraints. Simulation can be used to generate the deformation
of passive elements, such as the folding of skin or the bulging
of muscles, to greatly enhance the realism of animation.
1 Introduction
ated by our algorithm: Bulging eect around the neck of the
snake due to its swallowing of an apple
1.1 Main Results
We present an ecient approach for passive simulation of
non-penetrating elastic bodies. The underlying geometric
models are composed of polygonal meshes. Models consisting of implicit representations or parametric surfaces, such
as NURBS, can be tessellated into polygonal meshes with
bounded error.
Our technique is based on the nonlinear elasticity theory
[Ogd84, Cia88, Tal94b] of continuum mechanics. We use
nite element methods (FEM) [Tal94a] to model the nonrigid bodies. We employ the fast marching level set meth-
2
ods [OS88, Set99] to precompute the internal distance eld
of each undeformed model. When two exible bodies come
into contact and deform, the distance elds are likewise deformed to compute the estimated penetration depth between
two deforming objects. This penetration measure is incorporated into a penalty-based formulation to enforce the nonpenetration constraint between two elastic bodies. This enables ecient computation of the contact force and yields a
versatile and robust contact resolution algorithm. Our algorithm eciently computes the minimum energy equilibrium
state of deformation by combining quasi-viscous Newton's
iteration and adaptive-stepsize incremental loading with a
predictor-corrector scheme [CL94]. We have successfully integrated these techniques to simulate collision response between two elastic bodies eciently.
Specically, our algorithm has the following characteristics:
Both self-collisions and contacts between soft objects are
handled in a uniform manner with our robust and efcient contact processing algorithm. This is achieved
by rst deforming the pre-computed distance elds to
quickly estimate a penetration depth and thereby calculating penalty forces to resolve contacts.
Material properties, including nonlinear elasticity and
resistance to volume change, are taken into account to
generate realistic behavior. Using nite element analysis, our numerical method can eciently minimize the
total energy in the system due to large deformation subject to the desired physical constraints.
Due to our choice of discretization methods based on
FEM, the simulated objects can be represented as polyhedra of arbitrary shapes and topology.
No prior assumption or knowledge about the locations of
contacts is required when using the resulting algorithm.
We demonstrate the eectiveness and potential of our approach on a moderately complex animated scene. Figure 1
shows a snapshot of the simulation results. The natural deformation of the snake's skin due to swallowing of a large
apple has been automatically generated by our algorithm.
1.2 Organization
The rest of the paper is organized in the following manner.
We briey survey the state of the art on simulating deformation in section 2. In section 3, we give an overview of our
algorithm. In section 4, we present our approach based on
nite element methods for modeling elastic bodies. Section
5 describes the numerical methods used in our simulation.
Section 6 presents our new contact determination method
for deformable objects based on linear interpolation of precomputed distance elds and the resulting collision response.
Section 7 describes the system implementation and demonstrates the eectiveness of our approach.
2 Previous Work
Modeling deformation has been studied in several elds, including computer graphics, geometric modeling, computer
vision, computational mathematics, biomechanics, engineering and many others. An excellent survey of literature on
deformable modeling in computer graphics can be found in
[GM97]. In this section, we focus on physically-based modeling techniques and mechanics for modeling deformation of
soft tissues or other highly nonlinear materials.
2.1 Modeling Deformation
Linear elastic models have been successfully used in real-time
applications where only small deformations and strains occur
[BNC96, JP99]. Mass-spring systems have been widely used
to model deformation (e.g. [Mil88, LTW95, BW98]), due to
their simplicity. However, they are notorious for their difculty in determining the stiness parameter and modeling
incompressibility. Finite element methods (FEM) have been
regarded as a versatile, eective and more accurate technique
for discretization of continuum models. They are especially
suitable for modeling nonlinear elasticity. Although they
have been frequently employed in engineering applications,
their use has been rather limited in computer graphics and
animation (e.g. [CZ92, OH99]) due to their mathematical
complexity and associated computational costs.
2.2 Contact Surfaces and Contact Forces
In some applications, the contact relationship can be predetermined. Donzelli [Don95] analyzed articular cartilage in
2D, where the \contactor" and \target" are pre-determined.
The method is not applicable to general geometric congurations. Similar \master-slave" relationships have also been
dened in other approaches [HGB87]. If deformation can be
expressed as a function of time a priori, geometric algorithms
for nding collision points between
time-dependent surfaces
can be found [VBZ90, SWF+ 93].
Once collisions have been detected, repulsive forces between particles are often used to prevent inter-penetration
(e.g. [BHW94]). In this type of method, many particles on
the boundary surfaces repulse each other to keep the surfaces from colliding. In a situation where the boundary surface signicantly stretches, the gaps between particles widen
with increasing chance of interpenetration. A high density
of particles is required to prevent penetration. The \pinball"
method [BN91, BY92] uses sphere trees to quickly reject the
particles not intersecting the surface, but also requires a large
number of spheres to achieve desired accuracy.
Precise contact modeling between exible solids using implicit functions has been described in [Gas93, DG95]. Its
applications, however, are limited to scenarios where objects
can be represented as specic types of implicit functions.
2.3 Numerical Methods
Explicit integration techniques (e.g. [ZC99]) are often used
in dynamic simulation of deformable objects. They are usually fast, but suer from numerical stability problems. In
addition, they are unsuitable for static analysis of highly
nonlinear systems. Recently the advantages of implicit integration have been extensively discussed in [BW98, DSB99],
which are kindred to the numerical method chosen by our
algorithm. A more detailed discussion about our numerical
method will be presented in section 5. We refer the readers
to [KO88] for a complete, formal treatment of the numerical
solutions of contact problems using FEM.
3 Algorithm Overview
In this section, we describe the problem statement and give
an overview of our approach.
3.1 Problem Denition
Suppose we are given a set of elastic objects represented as
polyhedra. Let V be the set of the vertices of these poly-
3
Figure 2: (a)-(c) show a simulation sequence generated by our algorithm: (a) A snake retreating through a exible torus.
(b) A close-up look at the torus deforming as the snake slides through. (c) The snake coiling up without self-penetration. (d)
Visually displeasing self-penetration of the snake without penetration avoidance. Its neck penetrates its body as the snake bends
backward (highlighted by the red circle).
hedra. Given the new positions for a subset of vertices Vc
as positional constraints, the problem is to deform each object by computing the new positions of the remaining vertices fV ; Vc g, taking into consideration material properties and external forces. Interpenetration between objects
and self-intersections need to be avoided. Given the above
constraints, the total energy stored in all objects must be
minimized.
Examples of this problem can be found in computer animation and medical simulation. For instance, assume that
the motions of the skeleton of an articulated gure are given
(by dynamics controller or inverse kinematics) as positional
constraints. We would like to automatically generate the
static behavior of the deformable soft tissues, skin and muscles, as the skeleton gure moves.
Another example is shown in Figure 2(a)-(c). Our algorithm simulates a snake retreating through a exible torus
ring and coiling itself up with the non-penetration constraints, given only a few simple positional constraints provided by the user. In comparison, Figure 2(d) shows visually
disturbing self-penetration of the snake in the same simulation without the penetration avoidance mechanism.
Input Models
w/ Material Prop.
Mesh
Generation
Distance Field
Computation
Positional
Constraints
External
Forces
Energy
Minimization
Penetration
Avoidance
Finite Element Analysis
3.2 Outline of Our Approach
We solve the problem described above by using the following
steps:
1. Given the input models, construct a tetrahedral element mesh as a discretized representation for each object (section 4).
2. Generate an internal distance eld for each input object
using the fast marching level set method (section 6.2).
3. Apply nite element analysis (section 4):
(a) Estimate the penetration depth based on the deformed distance elds for penetration avoidance
(section 6.1).
(b) Minimize the total energy due to deformation,
taking into account all material properties and
external forces, using our synthesized numerical
method (section 5).
Figure 3 shows the ow of our system.
3.3 Notation Convention
In the next few sections, we will describe each step of our
algorithm in greater detail. Here we dene some conventions
for the notations that we will use throughout the paper. A
lower-case, bold-face letter, such as p, denotes a position in
the 3D Euclidean space. A upper-case, bold-face letter,3 such
as A, denotes a matrix or a displacement vector in R .
Rendering
Figure 3: A system overview showing various components
of our algorithm
4 Finite Element Methods
In this section, we describe the discretization method we
use, namely nite element analysis, to model deformation
based on the nonlinear elasticity theory. We reformulate the
problem of simulating deformable objects as a constrained
minimization problem using Constitutive Law.
4.1 Discretization Methods
Deformation induces movement of every particle within an
object. It can be modeled as a mapping of the positions of
all particles in the original object to those in the deformed
body. Each point p is moved by the deformation function
():
p ! (t; p)
where p represents the original position, and (t; p) represents the position at time t. We limit the discussion to the
4
static analysis, hence t is omitted:
p ! (p)
Simulating deformation is in fact nding the () that satises the laws of physics. Since there are an innite number
of particles, () has innite degrees of freedom. In order
to model a material's behavior using computer simulation,
some type of discretization method must be used. For simulation of deformable bodies, spring networks, the nite dierence method (FDM), the boundary element method (BEM),
and the nite element method (FEM) have all been used for
discretization.
A spring network approximates the laws of physics by pairwise relationship between node points. It is very dicult to
map continuum mechanics to such pairwise relationships correctly. Namely, it is impossible to describe a potential energy
associated with volume change.
In the FDM, the independent approximations happen at
a nite number of sampled points. A FDM usually requires
\regular" structures for mesh topology, which constrains our
choices of geometric representations.
The BEM uses node points sampled only on boundary
surfaces. The use of the BEM is limited to linear dierential
equations, hence cannot be used to simulate nonlinear elastic
bodies.
The FEM uses a piecewise approximation of the deformation function (). Each \piece" is called an element, which
is dened by several node points. The elements constitute
a mesh. Since the FEMs pose relatively small restrictions
on the mesh topology, they are suitable for representing a
variety of shapes and topology.
4.2 Tetrahedral Elements
Our algorithm uses a FEM with 4-node tetrahedral elements
with linear shape functions. We have chosen this element
because:
In a mesh composed of 4-node tetrahedral elements,
each node has a relatively small number of neighbors.
This results in fewer non-zero elements in the stiness
matrix and less expensive computation. Higher order
elements such as 6-node hexahedral elements, on the
other hand, produce denser stiness matrices.
4-node tetrahedral elements simplify the integration of
the derivatives of the potential energy. This integration
is essential for computing the stiness matrix. Precise
integrations for higher order elements are expensive,
and usually require numerical integration techniques
such as Gauss quadrature.
A tetrahedron does not self-penetrate. As a result the
penetration problem is reduced to pairwise elementelement problem. A higher order element can deform
and result in self-intersection, which makes the penetration problem much more complicated.
() maps a point in a tetrahedral element at p = [x; y; z ]T
to a new position (p). As shown in Fig. 4, by denition, ()
moves four nodes of an element from their original positions
ni = [nix ; niy ; niz ]T ; 1 i 4;
to the new positions
n~ i = [~nix ; n~ iy ; n~ iz ]T ; 1 i 4:
The displacements of the four nodes due to the deformation
is
Ui = [Uix ; Uiy ; Uiz ]T
= [~nix ; nix ; n~ iy ; niy ; n~ iz ; niz ]T ; 1 i 4:
n4
U4
n3 U 3
n1
U1
n~ 1
~
n4
~
n3
~
n2 U 2 n 2
Figure 4: () maps four nodes of a tetrahedral element,
n1 ; :::; n4 to their new position at n~1 ; :::; n~4 . U1 ; :::; U4 are
the corresponding displacement vectors.
Clearly this deformation is an ane transformation of the
form:
(p) = Fp + T
where F is a 3 3 matrix and T is 3 1 column vector
representing translational displacement. n~ i and ni satisfy
the linear system:
n~1 = Fn1 + T
n~2 = Fn2 + T
n~3 = Fn3 + T
n~4 = Fn4 + T
Since T, representing the translational components, has no
eect on the elastic energy, it is omitted from the rest of
derivation. By solving the linear system, we have
F = BA;1 = (A + H)A;1 = HA;1 + I
where I is a 3 3 identity matrix and
A = [n2 ; n1 ; n3 ; n1 ; n4 ; n1 ]
B = [n~ 2 ; n~1 ; n~3 ; n~ 1 ; n~ 4 ; n~ 1 ]
H = [U2 ; U1 ; U3 ; U1 ; U4 ; U1 ]
with ni ; nj representing vector dierences. F is known as
the deformation gradient [CL94]. The right Cauchy-Green
tensor, C = FT F, is often used to characterize deformation,
and is insensitive to rigid motions.
4.3 Constitutive Law & Energy Minimization
Given the basics of FEM, we reformulate the problem of
simulating deformable objects as a constrained minimization
problem using Constitutive Law in this section.
Since the use of 4-node tetrahedral elements simplies the
energy integration, we use an energy minimization scheme
to derive the equilibrium equations. This greatly simplies
the derivation. The same result is obtained by the Galerkin
method, which is commonly used in standard FEM textbooks [CL94].
5
A constitutive law denes the relationship between the deformation gradient F and the elastic energy stored per unit
volume for a specic material. The simplest and most commonly used is the Saint-Venant-Kirchho material [CL94].
It is characterized by the energy
external forces (e.g. the potential energy for gravity), the
total energy W in the system is:
Wsvk (F) = 2 (tr(E))2 + tr(E2 ):
In the discretized domain, all forces can be considered as
point forces acting on nodes. The total forces acting on free
nodes are @W (Ux ; Ufree )=@ Ufree . At the equilibrium, this
force must vanish. That is,
@W (Ux ; Ufree) = 0
where E = 12 (C ; I), and are Lame constants, and tr(E)
is the trace of the matrix E.
This material has a weak characteristic to resist volume
change, but can be compressed innitely (i.e. zero-volume)
without raising its energy to innity. This also means that
negative compression rates will be allowed under high stress.
Such materials exhibit unrealistic deformations. Avoiding
innite and negative compression is also important to proper
computation of penetration penalty forces.
Therefore, we use the following constitutive law [Cia88]
with a slightly more complex energy function:
Wcg (F) = C1 (I1 ;3)+C2 (I2 ;3)+a(I3 ;1);(C1 +2C2 +a)ln(I3 )
where
I1 = tr(C)
I2 = 12 tr(C)2 ; tr(C2 )
I3 = det(C)
and, C1 ; C2 ; C3 and a are material dependent constants. The
energy goes to innity as the material is compressed innitely.
F and Wcg are constant in a tetrahedral element. The
integration of the energy stored in an element is expressed
as:
Wtetra (Utet) =
Z
V
Wcg dp = V Wcg
where Utet is a vector that contains all the displacements of
nodes and V is the volume of the tetrahedron.
@Wtetra (Utet)=@ Utet represents the elastic forces acting
on nodes. Note that @Wtetra (Utet)=@ Utet is a nonlinear
function of Utet. This implies that the force acting on each
node is a nonlinear function of the displacements. If it were
a linear function, the solution of the following minimization
problem could be solved by using a linear system solution.
But it is well known that such a linear function cannot retain
essential properties of nite elasticity [Ogd84, Tal94b], which
is crucial for simulating realistic behavior of deformable objects.
The total elastic energy Welastic is a function of the displacements of all nodes. It is obtained as the summation
of Wtetra for all elements. The displacements of nodes can
be decomposed into two parts, Ux and Ufree . Ux represents constant displacements corresponding to predetermined vertex coordinates. Ufree represents the displacements of \free" nodes. Thus we denote the total elastic
energy as Welastic(Ux ; Ufree). Ux serves as the boundary condition. If Ux is the only boundary condition and
the object is in a stationary and stable conguration, Ufree
locally minimizes Welastic(Ux ; Ufree ).
To incorporate the penetration avoidance constraint into
the same energy minimization scheme, an energy function
Wpenet representing the amount of \penetration" between
polyhedra is added. Together with Wext , the energy due to
W (Ux ; Ufree) = Welastic(Ux ; Ufree ) +
Wpenet (Ux ; Ufree) + Wext (Ux ; Ufree )
@ Ufree
The solution of the minimization problem below satises
this equilibrium condition:
Find Ufree s:t: it minimizes W (Ux ; Ufree)
The details of our numerical method are presented in the
next section.
5 Numerical Methods for Minimization
In addition to the non-linear nature of elastic materials, penetration introduces discontinuity to the deformation energy
function. Therefore, a relatively robust numerical method
must be used. In this section, we present a relatively stable
numerical method by combining quasi-viscous Newton's iteration and adaptive-stepsize incremental loading with Euler
and two-point predictors.
5.1 Basic Newton's Iteration
Newton's method nds the minimum of the deformation energy function by repeatedly approximating the total energy
W with quadratic functions. We use the following approximation:
W (Ux ; Ufree + Ufree ) W (Ux ; Ufree ) +
Ufree T R(Ux ; Ufree ) + UfreeT K(Ux ; Ufree) Ufree
where
@W (Ux; Ufree)
R(Ux ; Ufree ) = @ U
free
2W
@
K(Ux; Ufree ) = @ U 2 (Ux ; Ufree)
free
Newton's iteration is given as
initialize
Ufree = Ufree's initial guess
repeat
Ufree = K(Ux; Ufree );1 (;R(Ux ; Ufree))
Ufree = Ufree + Ufree
until Ri < ; 8i, where Ri are entries of R
This is the same as nding an solution of the equilibrium
equation:
;R(Ux ; Ufree ) = 0
Using linear approximation, we have
;R(Ux ; Ufree + Ufree) ;R(Ux ; Ufree) ; K(Ux; Ufree) Ufree
6
If the above iteration converges and K(Ux; Ufree ) is positive denite, the algorithm nds a local minimum. The
treatment of indenite matrices are discussed in section 5.3.
Newton's method requires the expensive computation of
the tangent or stiness matrix, K(Ux; Ufree ). But once
it is computed, it provides a better global idea about the
shape of W (Ux ; Ufree ) than just the gradient (i.e. the
residual R(Ux ; Ufree )). Gradient descent methods that
rely only on gradients require far more iterations than Newton's methods. The computations of R(Ux ; Ufree ) and
K(Ux; Ufree ) both require collision checking to perform
penetration avoidance. Since collision detection between deformable bodies is an expensive process, the computational
costs for R(Ux ; Ufree ) and K(Ux ; Ufree) are nearly the
same. Hence, the expensive computation of the stiness matrix pays o in the long run.
In dynamic simulation, implicit integration methods take
advantage of stiness matrices, whereas explicit integration
methods use only residuals. We can obtain the minimum
energy point by explicitly integrating a viscous system to the
point where the system loses all kinetic energy and converges
to a stationary point. But, the stiness of common materials
such as human tissue or a block of rubber may be more a
dominating factor than inertia in determining the stepsize.
Thus, for many realistic applications, a very small time step
must be chosen for integration.
5.2 Incremental Loading with Euler and 2Point Predictors
To handle large values of Ux , incremental loading is introduced. This method successively solves the problem:
Find Ufree s:t: it minimizes W (Ux ; Ufree )
where is a scalar incremented from 0 to 1. A solution
curve is obtained by plotting Ufree against , shown in blue
in Figure 5.
Ufree
11111111
00000000
000000
111111
00000000
11111111
000000
111111
00000000
11111111
000000
111111
00000000
11111111
000000
111111
00000000
11111111
000000
111111
00000000
11111111
000000
111111
00000000
11111111
000000
111111
000000
111111
λ
0.0
failure
step
successful
step
1.0
Figure 5: Tracing solution curve
For each incremented , a new initial guess of Ufree is estimated (predictor) and Newton's iteration nds the solution
(corrector).
Since W () is highly nonlinear, Newton's iteration converges only if the initial guess is close to the solution. If an
initial guess lies in the shaded area as shown in Figure 5,
convergence cannot be achieved.
Euler and two-point predictors are used to compute the
initial guess of Newton's iteration. An Euler predictor estimates the tangent vector of the solution curve and extrapolates the new initial guess on the tangent line. This involves
solving a linear system. If the linear system cannot be solved,
then a two-point predictor is used. The two-point predictor
extrapolates the two previous solutions to make an initial
guess.
The predictors determine the direction in Ufree space.
The magnitude of a step is determined by the stepsize of
. If the stepsize is too large, Newton's iteration may not
converge. On the other hand, too small a stepsize degrades
the performance. Therefore, the stepsize must be adjusted
according to the current situation. If Newton's iteration fails
to converge, it backtracks to the previous step and the stepsize of is decreased. If the iteration was successful, the
stepsize is slightly increased. Thus, the stepsize is automatically adjusted for optimized performance.
We also implemented the arc-length continuation method
[Tal94b], which is known to be a more sophisticated technique than incremental loading. In this method, Newton's
iteration searches for the solution on the arc that is at a
certain distance from the previous solution. This method
is superior in the sense that it can overcome limit points.
However, in our experience, the performance of this method
is limited, because of its ability to decrement . It may be
trapped in a loop in the solution curve, or return back to the
starting point.
5.3 Newton's Iteration with Viscosity
The methods described above including arc-length continuation are all vulnerable to ill-conditioned and indenite
stiness matrices. Viscosity is introduced to alleviate this
problem.
Imagine the entire mesh immersed in viscous uid. The
tetrahedral elements can move through the uid without any
resistance, but the nodes encounter drag forces due to the
friction between the nodes and the uid. The drag force is:
;D U_ free
where
D = diag[d1; d1; d1; d2; d2; d2; : : : ; dn; dn; dn]
U_ free is the \velocity" vector of nodes and D is the diagonal
matrix that contains drag force scalars. di is the drag force
scalar for node i, and proportional to the total volume of
the tetrahedra surrounding the node. This ensures that the
drag forces have similar magnitude as the elastic forces. This
scalar value can be viewed as the radius of the node. The
size of the node is set to the average size of elements to which
the node belongs. Larger nodes experience more drag forces
from the surrounding uid.
The resulting equilibrium equation in Newton's iteration
is
;R(Ux ; Ufree + Ufree) ; D U_ free = 0
Our goal is mainly to stabilize Newtons' iteration. Hence
the \current" velocity is set to zero, and the \next" velocity,
U_ free , is set to be Ufree=t where t is the time step,
which can be set to 1. Thus
;R(Ux; Ufree + Ufree) ; D Ufree = 0
Using linear approximation, it simplies to
;R(Ux ; Ufree ) ; K(Ux; Ufree )Ufree ; D Ufree = 0
;R(Ux ; Ufree) ; (K(Ux; Ufree ) + D)Ufree = 0
Ufree = (K(Ux; Ufree ) + D);1 (;R(Ux ; Ufree ))
As a result, we simply add positive values to the diagonal
elements of the stiness matrix K(Ux; Ufree ). Since the
7
diagonal elements of K(Ux; Ufree ) are usually the largest
positive values in a row, with a large enough value of D,
K(Ux; Ufree ) remains positive denite, preventing the algorithm from climbing energy hills. This also decreases the
condition number of K(Ux; Ufree ) and helps in solving linear systems.
6 Resolving Penetration
In section 4, we described the nite element analysis framework and how the static analysis of deformation can be
solved using minimization techniques with the numerical
methods described in section 5. In this section, we address
the issue of formulating the non-penetration constraint, so
to include it in the optimization process. We present an
ecient contact processing technique that can handle both
self-collision and inter-penetration between objects in a uniform manner.
Ideally, no two tetrahedral elements should share the
same space. This is the non-penetration constraint. The
non-penetration constraint can be imposed using techniques
such as constrained optimization techniques or penaltybased methods. For example, in an augmented Lagrangian
method, each Lagrangian multiplier corresponding to a contact relationship is updated in an iterative manner [Pow69].
The diculty lies in the integration of the update loop with
Newton's iteration that changes node positions and hence
contact relationships. Instead of treating it as a hard constraint, we used penalty methods. Thus, a small amount of
penetration is allowed. In practice, suciently large penalty
constant is good enough to prevent visually displeasing penetration, unless the simulated objects are very thin.
6.1 Penetration Potential Energy
When using the penalty based method, we need to rst dene a penetration potential energy Wpenet() that measures
the amount of intersection between two polyhedra or the degree of self-intersection of a polyhedron, and thereby nds
an ecient method to compute it, its rst and second derivatives.
6.1.1 Dening the Extent of Intersection
There are several known methods to dene the extent of intersection. The node-to-node method is the simplest way
to compute Wpenet (). This method computes Wpenet () as
a function of the distances between sampled points on the
boundary of each objects. The repulsive particle method
mentioned in section 2 belongs to this category. The drawback of this method is that, once a node penetrates boundary
polygons, the repulsive force ips its direction, and induces
further penetration. Such penetration often occurs in intermediate steps of the aggressive Newton's iterations. Furthermore, once a node is inside a tetrahedral element, it is no
longer clear which boundary polygon the node has actually
penetrated.
A more accurate approach is to compute the penetration
depth, commonly dened as the minimum translational distance required to separate two intersecting objects. No general and ecient algorithm for computing penetration depth
between two non-convex objects is known. In fact, an O(n6 )
time bound can be obtained for computing the Minkowski
sum of two non-convex polyhedra to nd the minimum penetration depth in 3D [DHKS93].
The most complicated yet accurate method is to use the
intersection volume. Using this method, Wpenet () is dened
Figure 6: (a) The distance eld of a sphere. (b) The distance eld of a deformed sphere computed using linear interpolation of the precomputed distance eld.
based on the volume of intersection between two penetrating polyhedra. Since polyhedra deform as simulation steps
proceed, it is dicult to create and reuse previous data from
the original model. Furthermore, it is susceptible to accuracy
problems and degenerate contact congurations. So, ecient
computation of the intersection volume is rather dicult to
achieve.
6.1.2 Estimating Penetration Depth
We have chosen a method that provides a balance between
the two extremes by computing an approximate penetration depth between deformable objects. With our method,
Wpenet () is dened as a function of distances between
boundary nodes and boundary polygons that the nodes penetrate. We dene
Wpenet() = k d2
(1)
where d is the minimum distance from a boundary node to
the intruded boundary and k is a penalty constant.
The convergence rate of Newton's iteration depends on the
smoothness of the energy function. Therefore, a quadratic
function was chosen. Accurate computation of the penetration depth d is very expensive, and d needs to be evaluated
at every Newton's iteration. Our algorithm estimates the
computation of the penetration depth d by replacing it with
the linear interpolation d~ of pre-computed distance values:
d~ = u1 d1 + u2 d2 + u3 d3 + (1 ; u1 ; u2 ; u3 ) d4 (2)
where d1 ; d2 ; d3 and d4 are distance values at the four nodes
of each tetrahedral element. These distance values are sampled from the distance eld generated by the fast marching
level set method to be described in the next section. u1 ; u2
and u3 are the interpolation parameters, and 0 ui 1,
1 i 3.
Once an accurate value of distance is assigned to each
node, no matter how the mesh is deformed, the value of d~ is
quickly computed at any point inside the object. Figure 6
shows an example where the distance eld of a sphere is
quickly re-computed as the sphere deforms.
This approximated distance eld shares a few properties
with the exact distance eld. Some of these properties are
essential for proper computation of penalty forces and their
derivatives:
1. It vanishes on the boundary polygons.
2. It is twice dierentiable inside the elements and C 0 continuous everywhere.
3. By following its negative gradient, an internal point can
reach the boundary within short distance, which helps
the Newton's iteration with high viscosity to quickly
converge to the solution.
8
The algorithm rst constructs a band of points around the
initial surface. All of the initial points, with the exception of
the innermost band, are labeled as \Alive". Once an Alive
point is computed, it may not be recomputed. The remaining points of this initial band are labeled as \Narrow Band"
points. These points form the surface that we will evolve.
The remaining, uninitialized points are termed \Far Away".
At each step, the gridpoint with the minimum distance
value is extracted from the Narrow Band. For eciency
reasons, the Narrow Band is implemented as a minimum
heap structure. Each extraction of the minimum grid point
from the Narrow Band is an O(1) operation. This point is
moved to the Alive points and recomputed by solving for T
in the following equation:
n4
n3
n1
m
n2
Figure 7: A node m penetrates into another tetrahedral el-
ement. The distance between m and the red triangle is the
penetration depth.
M = (max(D;x T + 2x D;x;x T; D+x T + 2x D+x+x T; 0))2
where the nite dierences are given by
D+x = Ti+1x; T
D;x = T ;Txi;1
2Ti+1 + T
D+x+x = Ti+2 ;2
x
T
;
2
T
i;1 + Ti;2
;
x
;
x
D
=
2x
A simple space subdivision method is used to nd each instance where a boundary node from one element penetrates
another element. Suppose a boundary node m is within
an element with nodes n1 ; n2 ; n3 and n4 as shown in Figure 7. m can be written in terms of linear interpolation of
n1 ; : : : ; n4 :
m = u1 n1 + u2 n2 + u3 n3 + (1 ; u1 ; u2 ; u3 ) n4 (3)
d~ at m is obtained by solving Eqn. 2 and Eqn. 3:
d~ = [d1 ; d4 ; d2 ; d4 ; d3 ; d4 ] G;1 [m ; n4 ] + d4
where
(4)
G = [n1 ; n4 ; n2 ; n4 ; n3 ; n4 ]
Wpenet () is computed by using d~ instead of d in Eqn. 1.
The terms @Wpenet =@ Ufree and @ 2 Wpenet =@ Ufree 2 are obtained as the corresponding components of the rst and
second derivatives of Wpenet () with respect to m and ni ,
1 i 4. These derivatives can be easily computed by
Similarly, we let
N = (max(D;y T + 2y D;y;y T; D+y T + 2y D+y+y T; 0))2
O = (max(D;z T + z D;z;z T; D+z T + z D+z+z T; 0))2
Let
2
2
p
1
F = M +N +O
ijk
applying chain rules to Eqn. 1 and Eqn. 4.
The estimated d~ is not dierentiable on the boundary of
the elements, which causes abrupt changes in the residual
and the stiness matrix across the boundary and sometimes
confuses Newton's iteration. But, with proper viscosity, the
simulation progresses past the critical point.
This algorithm is insensitive to which object (or connected mesh) the nodes m and n belong to. Therefore,
self-intersections and intersections between two objects are
treated in a uniform manner. It is also robust enough to
recover from deep penetrations. In the next section, we will
briey describe the method we use for pre-computing the
distance eld.
The term Fijk represents the speed of the propagating front.
Because we wish to nd the distance from each point to the
surface, this value is uniform (constant) in this implementation.
All Narrow Band and Far Away neighbors are also recomputed, and the Far Away neighbors are moved into the
Narrow Band. The equations use a second order scheme
whenever possible to produce higher accuracy. That is,+both
Ti+2
and Ti+1 must be Alive in order to compute D x+x ,
D+y+y or D+z+z , where Ti+2 > Ti+1 . The choice of when
to use the second order scheme simply depends on whether
two known (Alive), monotonically increasing values exist as
neighbors of the test point. If not, then the rst order scheme
is used.
For details on the accuracy and robustness of this algorithm, see [OS88, Set99].
6.2 Distance Field Computation
7 Results and Discussion
Computing the minimum geodesic distance from a point to
a surface is a well known complex problem [KAB95]. Osher
and Sethian [OS88, Set99], introduced a new perspective on
this problem by using a partial dierential method to perform curve evolution. The fast marching level-set method
avoids the problems that traditional methods incurred, such
as the problems with corners and cusps, and changing topologies. The method has a basis in gas dynamics and hyperbolic
conservation laws.
We have implemented the algorithm described in this paper and have successfully integrated it into a moderately
complex animation (shown in the accompanying videotape).
We used Maya developed by AliasjWavefront to generate the
models used in our animation sequences. We used a public
domain mesh generation package, SolidMesh [MW95], to create tetrahedral elements used in our FEM simulation. Rendering of the simulation results was displayed using OpenGL
on a 300MHZ R12000 SGI Innite Reality.
9
Figure 8: Large Deformation: A snake coiling up
Figure 9: A snake swallowing an apple from a bowl of fruits
7.1 System Demonstration
Figure 8 shows a large deformation simulated by our algorithm. Two sets of positional constraints were specied for
internal nodes in the head part and the tail part. Given
the positional constraints, the head of snake is forced to
move toward its tail. The snake model has about 14,000
elements. The simulation automatically generates the natural coiling deformation. Simulating linear elasticity cannot
generate such eects. It is not obvious from the images, but
many small self-penetrations were resolved during the deformation. The total simulation took 57 minutes (wall-clock
time).
Figure 9 are snapshots from an animation sequence where
a snake swallows a deformable red apple from a bowl of fruits.
The snake and the apple models have a total of 23,000 elements. Eight major keyframes were used to set the positional
constraints. A few nodes inside the apple and on a part
of snake's mouth follow linearly interpolated paths between
these keyframes. The deformation of the apple and the snake
was computed by our simulation. The entire sequence took
approximately six hours to generate. As the snake swallows
the apple, the snake tilts its head. Interesting eects such
as the bulging around the neck and the wiggling tail motions are all automatically generated by our algorithm. It
would have been dicult to create these movements using
traditional keyframed animation or other deformation models with linear elasticity.
7.2 Limitations
Our method computes the distance elds within each object.
Therefore, it is not best suited for handling self-penetration
of thin objects, such as cloth and hair. The viscosity parameter is not automatically specied, and it needs to be
adjusted for each application. If the viscosity is too small,
Newton's iteration becomes unstable. If it is too large, the
convergence becomes very slow. Some automatic mechanism
to optimize the viscosity parameter should be investigated.
8 Summary and Conclusion
We have addressed the contact problem for passive simulation of nonlinear elastic bodies. We use nite element methods to model the elastic bodies undergoing deformation. Our
technique precomputes internal distance elds for each object, which are later used for enforcing the non-penetration
constraints using penalty methods. In conventional methods, the computation of penalty forces due to penetration
takes a long time, and it is often a bottleneck of the contact
problem in computational mechanics. By taking advantage
of precomputed distance elds that deform as the nite element mesh deforms, our algorithm enables ecient computation of penalty forces and their derivatives, and yields a
versatile and robust contact resolution algorithm.
This algorithm can be useful for many applications, such
as simulation of passive deformable tissues in computer animation. It can also be incorporated into medical simulation used for multi-modal image registration, surgical planning and instructional medical illustration. We have demonstrated its promising potential in the generation of secondary
motions for an animated scene. In the future, we plan to
explore other applications and to develop a parallel implementation of the algorithm for predicting tumor movement
due to tissue deformation for image registration during an
image-guided surgical procedure.
References
[Bar84]
[BHW94]
[BN91]
[BNC96]
A. Barr. Global and local deformations of solid primitives.
ACM Computer Graphics, 18(3):21{30, 1984.
David E. Breen, Donald H. House, and Michael J. Wozny.
Predicting the drape of woven cloth using interacting particles. In Proc. of ACM SIGGRAPH, pages 365{372,
1994.
T. Belytschko and M. O. Neal. Contact-impact by the
pinball algorithm with penalty and lagrangian methods.
Int. J. of Numerical Methods in Engineering, 12, 1991.
Morten Bro-Nielsen and Stephane Cotin. Real-time volumetric deformable models for surgery simulation using
nite elements and condensation. In Computer Graphics Forum, 15(3) (Eurographics'96), 1996, pages 57{66,
1996.
10
N. I. Balder, C. B. Phillips, and B. L. Webber. Simulating
Humans. Oxford University Press, 1993.
D. Bara and A. Witkin. Dynamic simulation of nonpenetrating exible bodies. ACM Computer Graphics,
26(2):303{308, 1992.
[BW98]
David Bara and Andrew Witkin. Large steps in cloth
simulation. Proc. of ACM SIGGRAPH, 1998.
[BY92]
T. Belytschko and I.S. Yeh. The splitting pinball method
for general contact. In R.Glowinksi, editor, Computing
Methods in Applied Science and Engineering, New York,
NY, 1992. Nova Science Publishers.
[Cia88]
P.G. Ciarlet. Mathematical Elasticity. North-Holland,
Amsterdam, 1988.
[CL94]
P. G. Ciarlet and J. L. Lions, editors. HANDBOOK OF
NUMERICAL ANALYSIS, volume I - VI. Elsevier Science B.V., 1994.
[Coh92]
Michael F. Cohen. Interactive spacetime control for animation. Computer Graphics (SIGGRAPH '92 Proceedings), volume 26, pages 293{302, 1992.
[CVT95] Martin Courshesnes, Pascal Volino, and Nadia Magnenat
Thalmann. Versatile and ecient techniques for simulating cloth and other deformable objects. SIGGRAPH 95
Conference Proceedings, pages 137{144, 1995.
[CZ92]
David T. Chen and David Zeltzer. Pump it up: Computer
animation of a biomechanically based model of muscle using the nite element method. Computer Graphics (SIGGRAPH '92 Proceedings), volume 26, pages 89{98, 1992.
[DG95]
Mathieu Desbrun and Marie-Paule Gascuel. Animating
soft substances with implicit surfaces. SIGGRAPH 95
Conference Proceedings, pages 287{290, 1995.
[DHKS93] D. Dobkin, J. Hershberger, D. Kirkpatrick, and S. Suri.
Computing the intersection-depth of polyhedra. Algorithmica, 9:518{533, 1993.
[DKT98] T. DeRose, M. Kass, and T. Troung. Subdivision surfaces in character animation. Proc. of ACM SIGGRAPH,
1998.
[Don95] Peter S. Donzelli. A Mixed-Penalty Contact Finite Element Formulation for Biphasic Soft Tissues. PhD thesis,
Dept. Mech. Eng., Rensselaer Polytechnic Institute, 1995.
[DSB99] M. Desbrun, P. Schroder, and A. Barr. Interactive animation of structured deformable objects. Proc. of Graphics
Interface, 1999.
[FB88]
D. Forsey and R.H. Bartels. Heirarchical b-spline renement. In Proc. of ACM Siggraph, pages 205{212, 1988.
[FM96]
N. Foster and D. Metaxas. Realistic animation of liquids.
Graphics Interface, 1996.
[FM97]
N. Foster and D. Metaxas. Modeling the motion of a hot,
turbulent gas. Proc. of ACM SIGGRAH, 1997.
[Fun93]
Y.C. Fung. Biomechanics. Springer-Verlag, 1993.
[Gas93]
Marie-Paule Gascuel. An implicit formulation for precise
contact modeling between exible solids. In James T. Kajiya, editor, Computer Graphics (SIGGRAPH '93 Proceedings), volume 27, pages 313{320, 1993.
[Gib98]
S. F. Gibson. Volumetric object modeling for surgical
simulation. Medical Image Analysis, 2(2), 1998.
[GM97]
S. F. Gibson and B. Mirtich. A survey of deformable modeling in computer graphics. Technical Report Technical
Report, Mitsubishi Electric Research Laboratory, 1997.
[GTT89] Jean-Paul Gourret, Nadia Magnenat Thalmann, and
Daniel Thalmann. Simulation of object and human skin
deformations in a grasping task. Computer Graphics
(SIGGRAPH '89 Proceedings), volume 23, pages 21{30,
1989.
[HGB87] J. O. Hallquist, G.L. Gourdreau, and D. J. Benson. Sliding interface with contact-impact in large scale lagrangian
computation, 1987.
[HWBO95] Jessica K. Hodgins, Wayne L. Wooten, David C. Brogan,
and James F. O'Brien. Animating human athletics. SIGGRAPH 95 Conference Proceedings, pages 71{78, 1995.
[JP99]
Doug L. James and Dinesh K. Pai. Accurate real time
deformable objects. Proc. of ACM SIGGRAPH, 1999.
[KAB95] R. Kimmel, A. Amir, and A. M. Bruckstein. Finding
shortest paths on surfaces using level sets propagation.
IEEE Transactions on Pattern Analysis and Machine
Intelligence, 17(6), 1995.
+
[KGC 96] R. M. Koch, M. H. Gross, F. R. Carls, D. F. von Buren,
G. Fankhauser, and Y. Parish. Simulating facial surgery
using nite element methods. SIGGRAPH 96 Conference
Proceedings, pages 421{428, 1996.
[KO88]
N. Kikuchi and J. T. Oden. Contact problems in elasticity: A study of variational inequalities and nite element
methods. SIAM, 1988.
[LTW95] Yuencheng Lee, Demetri Terzopoulos, and Keith Waters.
Realistic face modeling for animation. SIGGRAPH 95
Conference Proceedings, pages 55{62, 1995.
[Mil88]
Gavin S. P. Miller. The motion dynamics of snakes and
worms. Computer Graphics (SIGGRAPH '88 Proceedings), volume 22, pages 169{178, 1988.
[MT92]
Dimitri Metaxas and Demetri Terzopoulos. Dynamic deformation of solid primitives with constraints. Computer
Graphics (SIGGRAPH '92 Proceedings), volume 26,
pages 309{312, 1992.
[BPW93]
[BW92]
[MW95]
D.L. Marcum and N.P. Weatherill. Unstructured grid generation using iterative point insertion and local reconnection. AIAA Journal, 33(9), September 1995.
[Ogd84]
R. W. Ogden. Nonlinear Elastic Deformation. Dover
Publications, Inc., 1984.
[OH99]
James F. O'Brien and Jessica K. Hodgins. Graphical modeling and animation of brittle fracture. Proc. of ACM
SIGGRAPH, 1999.
[OHZ97] J. F. O'Brien, J. K. Hodgins, and V. B. Zordan. Combining active and passive simulations for secondary motion. Technical Sketch, Visual Proceedings of ACM SIGGRAPH, 1997.
[OS88]
S. J. Osher and J. A. Sethian. Fronts propagating
with curvature dependent speed: Algorithms based on
hamilton-jacobi formulations. J. of Comp. Phys., 1988.
[Pow69] M. J. D. Powell. A method for nonlinear constraints in
minimization problems. Optimization, 1969.
[PW89]
Alex Pentland and John Williams. Good vibrations:
Modal dynamics for graphics and animation. Computer
Graphics (SIGGRAPH '89 Proceedings), volume 23,
pages 215{222, 1989.
[RE99]
A. Raviv and G. Elber. Three dimensional freeform
sculpting via zero sets of scalar trivaraite functions. ACM
Symposium on Solid Modeling and Applications, 1999.
[RH91]
Marc H. Raibert and Jessica K. Hodgins. Animation of
dynamic legged locomotion. Computer Graphics (SIGGRAPH '91 Proceedings), volume 25, pages 349{358,
1991.
[Set99]
J. A. Sethian. Level Set Methods and Fast Marching
Methods: Evolving Interfaces in Computational Geometry, Fluid Mechanics, Computer Vision, and Materials
Science. Cambridge University Press, 1999.
[SF95]
J. Stam and E. Fiume. Depicting re and other gaseous
phenomena using diusion processes. Proc. of ACM SIGGRAH, 1995.
[SOH99] R. W. Sumner, J. F. O'Brien, and J. K. Hodgins. Animating sand, mud, and snow. Computer Graphics Forum, 18(1), March 1999. Preliminary version appeared in
Graphics Interface 1998.
[SP86]
T. W. Sederberg and S.R. Parry. Free-form deformation
of solid geometric models. ACM Computer Graphics,
20(4):151{160, 1986.
[SWF+ 93] John M. Snyder, Adam R. Woodbury, Kurt Fleischer,
Bena Currin, and Alan H. Barr. Interval method for
multi-point collision between time-dependent curved surfaces. Computer Graphics (SIGGRAPH '93 Proceedings), volume 27, pages 321{334, 1993.
[Tal94a] Patrick Le Tallec. Equilibrium problems with frictionless
contact. In P. G. Ciarlet and J. L. Lions, editors, HANDBOOK OF NUMERICAL ANALYSIS, volume 3, pages
565{578. Elsevier Science B.V., 1994.
[Tal94b] Patrick Le Tallec. Numerical methods for nonlinear threedimensional elasticity. In P. G. Ciarlet and J. L. Lions, editors, HANDBOOK OF NUMERICAL ANALYSIS, volume 3, pages 465{622. Elsevier Science B.V., 1994.
[TF88]
Demetri Terzopoulos and Kurt Fleischer. Deformable
models. The Visual Computer, 4(6):306{331, December
1988.
[TPBF87] Demetri Terzopoulos, John Platt, Alan Barr, and Kurt
Fleischer. Elastically deformable models. Computer
Graphics (SIGGRAPH '87 Proceedings), volume 21,
pages 205{214, 1987.
[TQ94]
D. Terzopoulos and H. Qin. Dynamic nurbs with geometric constraints for interactive sculpting. ACM Trans. on
Computer Graphics, 13(2):103{136, 1994.
[VBZ90] Brian Von Herzen, Alan H. Barr, and Harold R. Zatz. Geometric collisions for time-dependent parametric surfaces.
Computer Graphics (SIGGRAPH '90 Proceedings), volume 24, pages 39{48, 1990.
[vFV90] Michiel van de Panne, Eugene Fiume, and Zvonko
Vranesic. Reusable motion synthesis using state-space
controllers. Computer Graphics (SIGGRAPH '90 Proceedings), volume 24, pages 225{234, 1990.
[WW90] A. Witkin and W. Welch. Fast animation and control of
non-rigid structures. ACM Computer Graphics, 24:243{
252, 1990.
[WW92] W. Welch and A. Witkin. Variational surface modeling.
ACM Computer Graphics, 26(2):157{166, 1992.
[ZC99]
Yan Zhuang and John Canny. Real-time and physically
realistic simulation of global deformation. SIGGRAPH99
Sketches and Applications, 1999. Also Appeared in IEEE
Vis'99 Late Breaking Hot Topics.
Download