IEEE TRANSACTIONS ON VISUALIZATION & COMPUTER GRAPHICS 1077-2626/97/$10.00 © 1997 IEEE
Vol. 3, No. 1: JANUARY-MARCH 1997, pp. 39-50
Animation of Deformable Models Using Implicit Surfaces
*![]()
Marie-Paule Cani-Gascuel
Mathieu Desbrun
Abstract This paper presents a general approach for designing and animating complex deformable models with implicit surfaces. Implicit surfaces are introduced as an extra layer coating any kind of structure that moves and deforms over time. Offering a compact definition of a smooth surface around an object, they provide an efficient collision detection mechanism. The implicit layer deforms in order to generate exact contact surfaces between colliding bodies. A simple physically based model approximating elastic behavior is then used for computing collision response. The implicit formulation also eases the control of the object's volume with a new method based on local controllers.
We present two different applications that illustrate the benefits of these techniques. First, the animation of simple characters made of articulated skeletons coated with implicit flesh exploits the compactness and enhanced control of the model. The second builds on the specific properties of implicit surfaces for modeling soft inelastic substances capable of separation and fusion that maintain a constant volume when animated.
Index Terms Animation, implicit surfaces, deformable models, collision detection, collision response, inelasticity.
1. INTRODUCTION In traditional animation systems based on key-framing, specifying the motion and the successive shapes of objects interacting with a simulated world requires a great amount of specialized knowledge and intuition from the animator. Models based on simplified physical laws have been proposed for automating these tasks. They generate motion and deformation from initial conditions and from a set of externally applied forces over time, and automatically detect and respond to collisions. These models are particularly appropriate for facilitating the animation of deformable objects. They can either be used alone for the simulation of inanimate bodies, or be combined with user-controlled structures as has been done for instance in character animation [25], [7].
This paper shows that a number of problems that are difficult to solve with previous models can be easily handled by combining them with an external deformable layer based on implicit surfaces. Indeed, the implicit formulation defines a smooth surface around the object that can be used to perform efficient collision detection, to enable exact contact modeling, and to ease volume preservation. This approach leads to a variety of applications such as the animation of elastic bodies, the modeling of soft substances that can separate or melt, or the animation of simple characters made of articulated skeletons coated with an implicitly specified volume. 1.1 Related Work
Deformable models give a method for computing the alteration of an object's shape due to a set of externally applied forces. Deformations may be elastic or inelastic depending on whether the original shape is restored when external forces are removed. Most deformable models in Computer Graphics result from "nodal approaches," in the sense that they approximate deformations by the displacements of elementary nodes inside a flexible body. Some of them derive from the elasticity theory. Differential equations of motion are discretized in space, and then integrated over time by resolving a matrix equation at each time step. This scheme has been used for modeling both elastic [37], [39], [19] and inelastic [36] deformations. However, since the topology of the network of nodes does not vary over time, this approach is restricted to the animation of structured objects. A solution for modeling soft inelastic bodies that absorb deformations and may separate into pieces or melt during an animation is a physically based particle system [26], [38], [40], [24]. In this case, a set of elementary masses called "particles" interact by means of forces that vary with the distance, such as Lennard-Jones forces that combine short range repulsion with long range attraction. Motion is computed by independently solving the equations of motion for each particle.
Nodal approaches are often compute intensive, since very small integration steps may be required. Another class of methods, called "global approaches," has been introduced to reduce computational costs [33], [45], [2]. The idea is to perform global shape transformations rather than simulating deformations that progressively propagate over a deformable body. However, this leads to a restricted range of deformations, and can only be applied to the animation of homogeneous visco-elastic material.
The way a deformable model detects and responds to collisions with other objects is very important, since it influences all subsequent motions and deformations. However, collision between soft objects is a complex phenomenon that has not been widely studied in physics.1 Consequently, most of the solutions used in computer graphics have been especially designed for this application.
A first issue is the way interactions between deformable bodies can be detected. Quite surprisingly, the surface that is displayed to represent the object during an animation is seldom used for collision detection. For instance, deformable bodies have been represented by splines surfaces controlled by mass-nodes located at control points [25], [17], but no precise collision detection was performed. Soft inelastic substances animated with a particle system have been displayed with implicit surfaces [38], [40], but once again, the implicit surface itself was not used to collision detection. Besides being inaccurate, detecting collisions with mass-nodes is expensive [28]. A better solution is used by Pentland and Williams [32], who exploit the implicit inside/outside function that defines the surfaces of their models for precise and efficient collision detection. They test if the points that sample one object's surface are inside or outside another one in linear time.
Second, a method for computing response to collisions must be designed. Most of the models used so far2 compute response forces from penalty methods [28]. These methods do not generate any contact surface between interacting flexible bodies, but use instead the amount of interpenetration for computing a force that pushes the objects apart. A quite promising approach [2] extends the analytical interaction processing used for rigid solids [1] to a global deformable model [45]. However, contact surfaces are approximated by discrete sets of contact points which, as the authors emphasize, is somewhat unsatisfactory.
To conclude the review of related work, most previous deformable models do not present a convincing way of processing collision and contacts between objects. Exact contact surfaces should be generated rather than local interpenetrations or bouncing before visual contact. Moreover, these problems may be exacerbated by the fact that soft collisions can last for a finite time. The combination of implicit surfaces and deformable models described in this paper supplies a systematic approach to treating collisions among deformable objects. 1.2 Overview
This paper presents an integrated set of methods that use implicit surfaces for animating a wide variety of deformable models. Implicit surfaces will be used as an extra layer that coats a base structure, deformable or not, with some smooth elastic flesh. While the base structure controls the large scale behavior, the implicit layer performs collision processing and generates local deformations due to contacts. It also handles constant volume deformations and topological changes such as separation or fusion. This allows simulation of behaviors that would be extremely difficult to treat with other methods.
Section 2 presents the layered approach we use. Section 3 details the collision processing method associated with the implicit layer. Section 4 introduces volume preservation to the model. Section 5 presents two different applications of this formalism: the design of simplified characters made of articulated skeletons coated with elastic flesh, and the animation of soft inelastic substances capable of separation and fusion.
2. BUILDING LAYERED MODELS USING IMPLICIT SURFACES 2.1 Implicit Surfaces Generated by Skeletons
Implicit isosurfaces such as "distance surfaces" [47], [5] allow the design of free form shapes through the manipulation of "skeletons" generating potential fields. Because they are simple to define and to control, they constitute a good alternative to traditional implicit surfaces defined by analytical equations.
An implicit isopotential surface generated by a set of skeletons si (i = 1 ... n) with associated field functions fi is defined, at the isovalue c, by:3 ![]()
(1)
In this paper, f will be called the "field function," and the fi will be designated as the "implicit contributions" of the different skeletons. The implicit surface surrounds a solid whose points satisfy (f(P) c), which may have several disconnected components. Normal vectors are directed along the field's gradient.
The skeletons si can be any geometric primitive admitting a well defined distance function: points, curves, parametric surfaces, simple volumes, etc. The field contributions fi are decreasing functions of the distance to the associated skeleton: ![]()
(2)
where d(., si) is the distance to si, and Fi can be defined for instance by pieces of polynomials [47] or by more sophisticated anisotropic functions [21], [3]. Most implicit contributions associate a restricted scope of influence to each skeleton in order to provide local control of the surface and to optimize the computations. In practice, we use piecewise polynomial field contributions that are parametrized by three parameters ti, ki, and Ri, called, respectively, thickness, stiffness, and radius of influence, as sketched in Fig. 1.
Fig. 1. A typical field contribution, with its three parameters ti, ki, and Ri.
2.2 Embedding Implicit Surfaces into a Layered Construction
As emphasized in [7], a layered construction is a very efficient tool for creating complex models for animation. It often provides the user with parameters that are more intuitive and easier to use. Implicit surfaces generated by skeletons are especially well suited to this kind of approach.
In our framework, the user defines a deformable object by specifying:
1) An internal physically based model which will be used as a base structure during the animation. This model may be, for instance, a rigid solid defined by a mass and an inertia tensor, an articulated structure made of several such solids, a mass/spring network, a particle system, or any other model.
2) An implicit layer that "coats" the base structure. This layer is built by defining skeletons that generate the implicit surface in local coordinate systems animated by the base structure. Skeletons may be points, line segments, triangles, or any graphic primitive.
During animations, the implicit layer immediately follows the motion and deformations generated by the base structure, defining a smooth surface that can be used for display. The topology of this surface may change over time, since separation or blending may be produced by the relative motion of skeletons. 2.3 Benefits of the Approach
As stressed before, the coherence between the representation of an object and the model used for collision processing is very important for generating convincing motion. Using an implicit representation of the surface brings several benefits, such as a precise yet efficient collision detection mechanism, and a solution to precise contact modeling between deformable bodies.
Instead of using a purely geometric definition for the implicit layer, we use the deformable implicit model first introduced in [15]. This model, which will be reviewed in the next section, defines a correspondence between applied forces and deformations of the implicit surface that approximates elastic behavior. The latter can therefore be used for collision detection and response. 2.4 Animation Algorithm
The general scheme for animating the resulting layered model develops as follows:
1) Animate the base structure by integrating the equations of motion according to the set of applied forces. This computes new positions for the skeletons that generate the implicit layer.
2) Process interactions between objects:
a) Use the implicit layer for detecting interpenetrations.
b) Model contact by locally deforming the implicit layer in order to generate exact contact surfaces between colliding bodies.
c) Integrate reaction and friction forces along contact surfaces. Add them to the set of external actions to be applied to the base structure at the next time step.
Detailing dynamic equations and integration schemes usable for the base structure is beyond the scope of this paper. An overview can be found for instance in [42]. The next section presents the elastic model we use for the implicit layer, and details the associated collision detection and response algorithm.
3. PROCESSING COLLISIONS WITH THE IMPLICIT LAYER In previous deformable models, when a collision is detected, response forces are approximated first. These forces are then used to compute subsequent deformation and motion of the objects, without producing an exact contact surface when collision endures in time. The implicit layer defined in this section uses a different approach. When a collision is detected, it first performs precise contact modeling with the other object with local deformations. Compression along contact surfaces is then used to compute collision response.
3.1 Collision Detection
Collision detection is performed between each pair of objects by first testing interpenetration between axis-aligned bounding boxes. When boxes intersect, the implicit representations of the surfaces and a set of sample points on them are used for a more precise detection: The surface points of each object that lie within the bounding box of the other object are evaluated by the implicit function of the other object. When an interpenetration is detected, the purely geometric contact modeling process described in the following section is applied. Issues for maintaining samples on the implicit surface will be discussed in Section 3.4.
3.2 Modeling Contact Between Objects
Once detected, an interpenetration must be avoided by locally deforming the implicit layer of each object. Both exact contact surfaces and deformations in propagation regions that model the transverse propagation of deformation must be generated (see Fig. 2). We accomplish this by adding new local terms, called "deformation terms," to the field functions defining the implicit layers of each object.
- A negative field
modeling compression is added in the interpenetration region in order to generate a contact surface with the other object.
- A positive field p modeling the transverse propagation of deformations is added in the propagation region.
Fig. 2. Modeling contact consists in applying different deformation fields in the interpenetration region and in the propagation regions associated with each object (cross-sectional views).
3.2.1 Deformation in the Interpenetration Region
The deformation field terms
and
to be added to the equations of the objects i and j should generate an exact contact surface. Thus the two equations
![]()
(3)
![]()
(4)
must have a common solution. A simple and symmetric solution is to define the compression field terms by:
![]()
(5)
![]()
(6)
This choice is appropriate since deformation field terms are negative in the interpenetration region, and locally generate in this region a contact surface defined by the set of points such that: ![]()
(7)
We can remark at this point that an object can be defined as rigid if no deformation term is added to its surface equation. In that case, collision with a deformable implicit object can easily be modeled. The compression field term applied to the deformable object i is: ![]()
(8)
This makes the implicit layer of the deformable body exactly fit with the rigid object in the whole interpenetration region.
3.2.2 Deformation in the Propagation Areas
Our aim is to optimize the contact modeling process by directly computing deformed shapes in contact situations rather than simulating deformations that progressively propagate over the implicit layer. The bulge generated in the propagation region (see Fig. 2) must be computed such that there is a smooth junction between the interpenetration region and the region where the object remains undeformed.
The user controls si's propagation field term pji(P) (due to the collision with sj) through two additional parameters in si's description:
- A value wi giving the offset distance where deformations propagate around the interpenetration region (see Fig. 2). No deformations will be generated outside this area.
- An "attenuation value"
i giving the ratio between the maximal value desired for pji and the current maximal compression term in the interpenetration area.
We then define the propagation field term pji to be applied in the propagation zone of the object si as:
![]()
(9)
where P0 is the closest point to sj in
gradient direction (see Fig. 2),
a0 is the maximal propagation value equal to
i times the maximal compression field value, and
is a piecewise polynomial function as depicted in Fig. 3. P0 is computed in practice by iteratively performing small steps from P in the opposite direction of the object j's gradient. Our choice for the slope k ensures that the shape of the implicit object stays C1 at the border of the interpenetration zone. One can use the following equation for
:
![]()
(10)
where p1 = 4 (wk - 4 a0)/w3 and p2 = 4 (3a0 - wk)/w2.
Fig. 3. Attenuation function defining the field in propagation areas. The slope at x = 0 is k, the maximum is a0, and the function has zero values and derivatives for x
w.
3.3 Response to Collision
Now that correctly deformed shapes are generated beween colliding objects as depicted in Fig. 4, the deformation of the implicit layer must be used to deduce response forces. To achieve this, we describe in this section a model designed to approximate elastic behavior, first introduced in [15].
Fig. 4. (left) Contact between two colliding deformable objects. (right) Cross-sectional view showing the exact contact modeling. A step-by-step description of this animation is described in the Appendix.
3.3.1 Modeling Elasticity with Implicit Surfaces
A deformable model is defined by a given correspondence between applied forces and deformations. Both linear [39], [19], [45] and nonlinear [37] elasticity have been used in previous models. Linear elasticity states that stiffness near a given point P of a solid remains constant during deformations. The displacement of P from an initial position X0 = (x0, y0, z0) to a final position X(P) = (x(P), y(P), z(P)) is then a linear function of the applied force R(P):
![]()
(11)
In nonlinear models, the stiffness k is not only a function of the point P, but may also depend on its current location inside the solid. The force applied during a displacement of P from X0 = (x0, y0, z0) to X(P) = (x(P), y(P), z(P)) is then:
![]()
(12)
For generality, the implicit layer we are defining should be able to exhibit both linear and nonlinear behaviors.
Deformations of an implicit surface can be modeled by variations in its field function f. To express nonlinear elasticity with this formalism, we let dR(Y) be a infinitesimal radial force and dY the resulting infinitesimal radial displacement. From (12) they must satisfy: kP(Y)dY = dR(Y). We find: ![]()
(13)
We can then make the following observation: The set of points P satisfying f(P) = c, where f is the field function, is sufficient to define a surface. This set of points being fixed, the variation of f around the isosurface can then be used to model physical properties. Consequently, we choose to model stiffness with the field's gradient: ![]()
(14)
This choice simplifies (13), yielding: ![]()
(15)
Let
be the deformation field term associated at equilibrium with the radial force R. If the normal vector N(P) has remained constant during the deformation (which is then said to be "radial"), the formula giving the correspondence between applied forces and deformations, obtained by integrating (15), is:
![]()
(16)
In practice, we will use a rewritten version of this latter equation:
![]()
(17)
It can be noted that this formulation only approximates elastic behavior since only the radial component of forces is computed: The correspondence between applied forces and deformations will only be used to integrate radial response forces during collisions.
3.3.2 Stiffness Control
As shown in [15], defining stiffness with the field's gradient has a simple geometric interpretation since field contributions are decreasing functions of the distance to the associated skeleton: the user defines local stiffness as the opposite of the slope of the field function. Both linear and nonlinear elastic behaviors are easily designed, as depicted in Fig. 5.
Fig. 5. Examples of field functions for the implicit layer. (a) Linear elasticity: stiffness, represented by the opposite of the slope, is constant during deformations. (b) Nonlinear elasticity: stiffness increases during compressions.
In practice, the field's gradient also affects the object geometry when contributions from different skeletons blend together (1). It is difficult to specify the object's shape and its dynamic behavior at the same time by adjusting the different field contributions. We partially overcome this problem by introducing a scaling parameter K relating the effective stiffness and the field function's gradient: ![]()
(18)
This parameter K enables us to adjust the object stiffness according to its mass and inertia tensor without modifying its geometry.
3.3.3 Radial Response Forces
We have defined a way to model contact and a correspondence between deformations of the implicit layer and radial applied forces. Thus evaluating the resulting normal reaction force R(P) at a point P on the contact surface during collision is straightforward. Equations (6) and (17) give us a value for the normal response force:
![]()
(19)
where Ni(P) is the normal vector to the deformed surface of object i at point P. Since
which models local compression, is negative, Ri has the same orientation as the normal vector, and models the internal force that tends to restore the initial shape of the object.
An important remark is that our model is consistent with the action/reaction principle: Along contact surfaces, the deformation terms applied to both objects are equal, since fi = f j, while the normal vectors are opposite. Thus, opposite reaction forces Ri(P) = -Rj(P) are generated. 3.3.4 Friction and Damping Forces
To model both tangential friction in contact areas and damping due to the progressive compression of the solids, we include a friction coefficient
i in the description of each object. When a collision occurs, the friction and damping force Fi at a point P of the contact surface between two objects i and j is expressed by:
![]()
(20)
where Vi(P) (respectively, Vj(P)) is the speed of P, a point on the surface of the object i (respectively, j).
The sum of radial and frictional forces is transmitted to the base structure of each object, and will be taken into account in subsequent motion. An example of animation using this technique is depicted in Fig. 6.
Fig. 6. Flexible clover falling on a rigid staircase.
3.4 Implementation
3.4.1 Sampling the Isosurface
Sample points on the implicit surface are needed for both collision detection and numerical integration of response forces. Points that appear to be inside another object are moved to the deformed isosurface (for instance, by performing search along the gradient direction), and the value of the deformation field at each new location directly gives the intensity of radial contact force along the small surface area sampled. These forces are added to friction forces and stored to be integrated by the base structure at the next time step.
Any method could be used for generating sample points on the implicit surface. The most widely used are spatial partitioning techniques [47], [23], [4], [43], [29]. However, approaches that take advantage of temporal coherence are more efficient for our application, since sample points do not move much between two consecutive steps of an animation. One method of this kind [44] maintains sample points called "floaters" on the isosurface, and ensures a good sampling distribution by connecting them with repulsive interaction laws. During deformations, more floaters may be automatically generated, or some of them may be removed, according to the local sampling density. The method we use, first introduced in [10], is slightly different. We present it briefly in the next paragraph since it has the advantage of also being convenient for volume preservation, as will be described below. 3.4.2 An Adaptive Sampling Technique
The central idea is the following: Each skeleton si contributing to the implicit layer emits a set of sample points in directions that are fixed in its local coordinate system, and are well distributed around it as illustrated in the stages 1 to 3 of Fig. 7. Those of the points that reach the isosurface without going through an area already sampled by another skeleton are said to be "valid" and will be used as samples on the isosurface at a current time step (see stage 4 in Fig. 7).
Fig. 7. Different stages of sampling initialization.
This process can be defined more formally by associating a territory to each skeleton si:
![]()
(21)
is the part of the implicit object where
field contribution is the highest. This is equivalent to splitting the implicit volume into Voronoï regions defined by the skeletons, the "distance" from a point P to a skeleton si being defined by the field function. Sample points sent from si stop at
boundary, and are valid if they lie on the isosurface.
During an animation, sample points then start from their previous position in local coordinate system at each time step to meet the surface again. Thus, using temporal coherence increases efficiency. In addition, sample points that were located between two territories at a given animation step may be brought to the surface during later deformations. The sampling of the isosurface automatically adapts to large deformations and changes in topology.
3.4.3 Interactive Visualization
A further benefit of the sampling method above is that the implicit surface can be displayed, during an interactive animation process, as a set of polygonal meshes built on the sample points (valid or not) that belong to the same skeleton. This provides a legible solid representation of the surface with no extra cost [10] as depicted in Fig. 8. Note that we do not use the sample points for final high quality rendering of an animation. Storing the parameters of the isosurface such as the positions of the skeletons and the lists of colliding objects offers a much more compact representation that can then be used for computing direct ray-tracing of the implicit surfaces [13].
Fig. 8. Left: visualization of sample points as scales on the surface. Right: visualization of the same sampling but with a piecewise polygonization.
4. CONTROLLING VOLUME DURING ANIMATIONS The preservation of constant volume of deformable objects is desirable in animation [22]. Additionally, the user may desire precise control over volume variation in order to emphasize certain motion. The problem of volume preservation has been solved by methods based on Lagrange multipliers in the specific case of objects discretized into lattices of fixed topology [33], [34]. We present in this section the only solution to our knowledge that has been proposed for controlling the volume of bodies that undergo large deformations and topological changes such as separation and fusion [9].
Unwanted volume variations are exacerbated in implicit surface animation. They are produced by the field blending process during the relative motion of the skeletons, and they may be particularly annoying when the object undergoes separation or fusion. Although the problem has already been identified [47], [8], previous approaches only provide partial solutions that ensure volume preservation between an initial and a final state. But they do not ensure volume preservation during intermediate deformations, while drastically restricting the range of field functions that can be used.
This section presents a general method, applicable to any field function and isovalue, for controlling the volume of objects defined by implicit surfaces. 4.1 Local Volume Variations
The first problem is the detection of volume variation. The volume of an implicitly-defined object is given by:
![]()
This expression cannot be computed analytically for most field functions. A simple method for volume approximation consists of discretizing space into voxels, and expressing the volume as the sum of voxels that lie inside the object. However, this technique would not provide a solution to the problem, since we also need to know near which skeleton the volume is changing.
Suppose the volume has been modified, as in Fig. 9a, by the relative motion of some skeletons of the implicit layer. A solution for avoiding the variation consists of adjusting the strength of the field functions so that the volume keeps its initial value. However, these adjustments should not be done in areas where the object has not been deformed. As a consequence, volume variations should be detected and treated locally.
Fig. 9. (a) Volume variations of an implicit surface generated by point skeletons between two steps of animation. (b) Volume controlled locally in step 2.
To define local volumes we use the notion of skeleton territory, already introduced in Section 3.4.2: We define the local volume Vi associated with a skeleton si as the volume of its territory The total volume of the implicit object can then be expressed as the sum of local volumes.
Computing local volumes is straightforward when the adaptive sampling method of Section 3.4 is used. As shown in Fig. 10, a local volume Vi is approximated as the sum of small pyramidal volumes defined around each sample point sent by si: ![]()
(22)
where
is the set of sample points sent by a skeleton si, d is the distance, and bi only depends on the angular distribution of samples for si. In practice, the factor bi can be omitted in volume computations, since controlling the value of
![]()
is sufficient for avoiding volume variations.
Fig. 10. Particle territories and sample points used for volume approximation.
4.2 Control of Volume
We control local volume variations by associating a proportional-derivative controller to each skeleton. This controller can be seen as a black box that, given the current local volume Vi,t and the value Vi,0 to reach or to maintain, outputs an adequate adjustment of the field function fi of this particular skeleton.
For our application, the way to modify fi must be chosen carefully since the norm of gradient gives the object local stiffness (see Section 3.3.1). In order to adjust the volume of skeleton territories without modifying the object's physical properties, we combine the original field function with a translation
At each time step, the field originally defined by the decreasing function of the distance fi(P) = Fi(d(P, si)) is replaced by:
![]()
(23)
Since we need regular shape variations, we control the time derivative
of the translation parameter rather than its value. The inputs of the controller are then the normalized volume variation
i,t and its time derivative
:
![]()
(24)
Its output is:
![]()
(25)
where
and
are appropriately chosen parameters. A simple example of volume control is given in Fig. 11.
Fig. 11. Preserving volume during a blend between two point-skeletons. The leftmost picture shows the initial configuration and the speed vector: (a) shows the blending without any control, whereas (b) depicts a controlled blending ensuring constant volume.
This method used for maintaining a constant volume during an animation can be extended in order to impose specific volume variations that may be locally specified by the user: The target volumes Vi,0 simply have to be changed over time. These capabilities are useful in a broad range of applications in the field of animation with implicit surfaces. The next section presents two of them.
5. APPLICATIONS A very simple use of the implicit layer consists of combining it with a rigid internal structure, as was done in [15]. This leads to animations of elastic objects that locally deform during contacts, but return to their initial shape when no external force is applied. Snapshots from such an animation [12] are displayed in Fig. 12.
Fig. 12. Four frames of the animation Simply Implicit.
This section presents two further applications of the model. The first is an animation of simple characters made of articulated skeletons coated with implicit flesh, which exploits the compactness and enhanced control offered by a layered structure. The second builds on the specific properties of implicit surfaces for modeling soft inelastic substances capable of separation and fusion, and that preserve their volume during the animation. 5.1 Modeling Simplified Characters
Specifying complex motion is greatly simplified when the animation system is able to abstract basic shapes from the representation of an object. Motion can then be refined with these shapes, and the animator only switches to the detailed representation when necessary. This is particularly true in character animation, where animators often spend a lot of time specifying motion and deformations of an articulated "skeleton" representing the character. Much less time is spent on animating the skin deformations, which may be generated automatically from the skeleton motion. Layered models are particularly well adapted to this context. Various approaches, either purely geometric [6], [11] or physically based [7], [17], [31], [41] have already been proposed for the automatic animation of the skin from the motion of the underlying skeleton.
This section explains how to adapt the implicit layer model we have developed for this application. One advantage of using an implicit representation of the flesh and skin is the compactness it offers: Only skeletons and field functions need to be specified since the field models both geometric and elastic properties. Another advantage is the ability to automatically detect collisions and model contact with other objects. This is particularly useful since characters often need to interact with the simulated world. Moreover, the volume control method we have developed can be used for creating more lively animations, by animating muscles for instance. 5.1.1 Structure Used
In the terminology we have developed in Section 2, a character will be represented by:
- Base structure: An articulated structure composed of a set of "links" connected by hinges. This structure may be animated with key frames, inverse kinematics, through the use of physically based animation, or by any other technique.
- Implicit layer: Each skeleton contributing to the implicit surface is defined in the local coordinate systems of one of the links.
The animation of this model is straightforward in the general framework we have defined: The algorithm described in Section 2.4 is used. However, two problems due to the relative motion of skeletons inside the implicit layer have to be discussed:
1) Unwanted blending effects must be avoided during deformations.
2) Intercollisions should be detected between the different parts of a character.The two next paragraphs explain how we deal with these problems.
5.1.2 Avoiding Unwanted Blending Effects
The unwanted blending case is a difficult problem that has been known for a long time [46]. When we implicitly model characters for instance, we want their arms to blend with their shoulders, but not with another part of the body, as illustrated by Fig. 13.
Fig. 13. The unwanted blending problem.
A solution, first suggested in [46] and further developed in [30], consists in defining a neighboring graph between the different skeletons, and stating that a skeleton's field only blends with contributions from neighboring skeletons. More precisely, the field function f is replaced by the following procedure for computing the field value at a point P:
1) Compute all the field contributions at point P,
2) Select the predominant contribution from those of groups of skeletons that blend together,
3) Return this value without summing the other field contributions.This algorithm avoids surface discontinuity during the controlled blending process, as explained in [20]. However, the method can not guarantee
continuity everywhere.
5.1.3 Processing Intercollisions
Instead of processing collisions between pairs of objects, we use the algorithm described in Section 3.2 for processing collisions between pairs of skeleton territories that do not blend. The sampling method described in Section 3.4 provides us with a set of sample points, so we can easily compute local bounding boxes from the position of valid sample points and associate them with each skeleton territory. These boxes (enlarged by the maximal distance between sample points) cover the isosurface, allowing for precise collision detection even when the surface separates into several components.
When the underlying links are animated with a physically based approach, contact forces computed between skeleton territories are transmitted to the reference link of the skeletons, to be integrated at the next time step. 5.1.4 Results
An example of animation performed with this model is depicted in Fig. 14. A simulation method based on displacement constraints [14] is used for animating the base structure of the characters. We can observe several intercollisions as the character falls.
Fig. 14. Collisions with the ground and intercollisions of a simple articulated implicit object falling on its side.
5.2 Animating Soft Substances
This section presents a quite different application of the techniques we have described. The soft substance model we develop here, first introduced in [9], is particularly interesting since it benefits from the specific capability of implicit surfaces to model separation and fusion. The constant volume deformations generated by our model are very important in this case, otherwise an important increase of volume would be produced during fusion.
5.2.1 Structure Used
As emphasized in the introduction, a simple and unified way of modeling a large variety of behaviors, including inelasticity and fractures, is to use physically based particle systems. The main drawback of these systems, when used alone, is the lack of a method for defining a smooth surface for the objects. This is not a problem when several thousand particles are used for accurately simulating fluids for instance. For animation purposes, the use of far fewer particles is sufficient for producing sufficient deformations. A surface, defined around the particles, should be used for visualization and for processing contact with other objects. The general framework we have defined provides a solution to this problem since the implicit layer seems well adapted for coating the particles. A piece of soft substance will then be composed of:
- Base structure: a particle system, made of a few tens of particles. Interactions between particles are modeled by attraction/repulsion forces such as Lennard-Jones forces, combined with friction forces that depend on the local density of particles. In our implementation, we use the following expressions for the interaction force and the friction force between two particles:
![]()
(26)
![]()
(27)
where
![]()
is the stiffness parameter,
stands for the speed vector of particle Pi, and
is a decreasing continous function with finite support.
- Implicit layer: an implicit surface defined by point skeletons located on each particle. We use field contributions with relatively large thickness and radius of influence in order to give a smooth aspect to the simulated material even if only a few particles are used. Local volume controllers are associated with each skeleton, in order to prevent volume variations.
The general animation algorithm we have developed also applies to this case. The next paragraphs explain how we handle separation and fusion of the substance.
5.2.2 Modeling Separation
When the particle system moves and deforms, a piece of substance may separate into several components, due to the relative motion of point skeletons defining the surface. However, if these disconnected chunks come back close to each other, they will blend, as in Fig. 11, rather than collide, since they are considered to be parts of the same surface.
This artifact is related to the unwanted blending problem we have referred to in the previous section. However, the problem is more complicated here since we cannot use a predefined blending graph: The blending properties between the set of point skeletons must change during the animation, according to the separation that is detected.
As a consequence, our method is based on the computation of a time-varying blending graph. At each animation step, the current blending graph is stored as a list of neighbors, so called "blending list," associated with each point skeleton. Processing unwanted blending is done by reducing blending lists each time the implicit surface breaks into disconnected components that must not blend any more. The algorithm we use is the following:
- Before the animation, the blending graph is initialized as a complete graph, where each skeleton is connected to every other one. This corresponds to the standard field function, computed as the sum of all the field contributions.
- At each animation step:
1) For each pair of point skeletons that blend together, we check if their spheres of influence, defined by the radius of influence of their fields, intersect. This relation defines an "influence graph." We then use the transitive closure of this graph for computing the blending graph we are looking for. For instance, in Fig. 15, point A is detected to be in the same components than point B, while the separation with the other part is detected.
2) Collisions are detected between skeleton territories not connected in the blending graph, as was done in Section 5.1.3. As a result, pieces of substance that separate from the same body collide instead of blending when they come back close to each other.
Fig. 15. The influence graph and its connected components. Particles A and B lie in the same component, and thus their fields will blend if they come close to each other.
Note that intersection tests on spheres of influence do not detect disconnections as soon as they appear, but when there is no more implicit contribution between the disconnected parts. However, we cannot reduce the blending list earlier without a sudden alteration of the shape of the disconnected components. 5.2.3 Modeling Fusion Under Compression
Blocks of soft substance, such as clay or dough, merge under compression forces that exceed a specified threshold. This behavior can easily be simulated with our model.
A fusion threshold is associated with each substance. Each time a collision is computed between two components of the same substance, the compression force along the contact surface between two skeleton territories is compared with the fusion threshold. If the threshold is exceeded, those skeleton that contribute to the contact surface for one component are added to the blending list for those skeletons contributing to the other component's contact surface. At the next time step, fields from the two pieces will then locally blend in this area, while collisions will still be computed between the rest of the components as illustrated in Fig. 16. This merging will endure in time, unless the two pieces happen to be disconnected again by subsequent deformations. This method do not ensure, however, continuity everywhere, as observed in [20]: Tangent discontinuities may appear locally at some intermediate steps of the fusion.
Fig. 16. Progressive fusion under compression of two soft substances.
Instant fusion can be handled even more easily. Fig. 17 shows four steps of an animation where a piece of soft substance is grabbed away by pliers and then released. The substance is made of nine particles only, and the fusion threshold has been set to zero, so that the substance immediately merges back after a collision. Here, volume preservation is essential. Otherwise, a very large and sudden increase of volume would be produced between the two last frames.
Fig. 17. Soft substance grabbed away by pliers and released.
Fig. 18 exhibits four frames from the animation Kitchen Fiction [16]. It shows the application of all the techniques detailed above to a more complex animation where a set of rigid tools are manipulating three different soft substances.
Fig. 18. Four frames of the animation Kitchen Fiction.
6. CONCLUSION This paper has presented a general framework for building layered deformable models with implicit surfaces. The implicit formulation is particularly well adapted to a layered construction. It can be used for coating any reference component as, for instance, a rigid solid, an articulated structure, a mass-springs network, or a particle system. It defines a smooth surface around the object that can be used for rendering, and offers simple yet precise processing of collisions and contacts. The implicit inside-outside function facilitates collision detection, while the deformation of the implicit layer generates exact contact surfaces between colliding bodies. The physically based model associated with the implicit layer approximates elasticity and allows the computation of response forces due to compression and friction. Moreover, preservation of deformed objects' volume is possible, even when the objects undergo significant changes such as separation or fusion.
We have illustrated this framework by detailing two very different applications: the animation of rigid articulated bodies coated with implicit flesh and the simulation of soft substances performing separation and fusion. The first of these applications should lead to interesting developments in the character animation area. Our layered framework would offer a compact way of modeling both geometry and the physical characteristics of simplified characters. Local adjustments of volume through time could be used for generating more expressive animations. Lastly, the capability of processing collisions and contact between a character and other objects of the scene would be an essential benefit of our approach.
APPENDIX
A STEP-BY-STEP DESCRIPTION OF A SIMPLE ANIMATION
We show next how to create animations and what our typical data structure is. It will focus on a simple animation of two colliding balls as depicted in Fig. 4. The lower ball is considered as motionless while both are deformable. The data structure for each ball is defined as follows:
Ball #1: Base structure: motionless mass-point constants mass 10.0 position P1 (0, 0, 0) Implicit Layer skeletons point-skeleton s1 located at P1 field with linear elasticity thicknes t1 = 0.03 stiffness k1 = 1.0 radius R1 = 0.1 constants stiffness scale K = 1.0 sampling rate= 10-2 surface friction
= 0.1 Ball #2: Base structure: mass-point constants mass 2.96 time-varying parameters position P2 (0, 0, 1) speed (0, 0, 0) Implicit Layer skeletons point-skeleton s2 located at P2 field with linear elasticity thickness t2 = 0.01 stiffness k2 = 1.0 radius R2 = 0.04 constants stiffness scale K = 0.8 sampling rate
= 10-2 surface friction
= 0.2 General data: dt 0.04 gravity 9.8
Once this data structure is defined, the sampling method of Section 3.4 is used to initialize sample points and to deduce axis-aligned bounding boxes around each of the two balls. The animation is then computed by numerically integrating the classical equations of motion over time for the mass-point to animate: ![]()
where
is the accumulation of all collision forces computed on the sample points from ball #2 during the time step and of gravity. Collision detection and computation of response forces are performed at each time step, on each sample point, as described in Section 3
ACKNOWLEDGMENTS
We wish to thank Jean-Dominique Gascuel and Nicolas Tsingos for their contributions to the development of the animation software. Many thanks to Agata Opalach and Jules Bloomenthal for fruitful discussions, to reviewers for very helpful comments, and to Andrew Hanson and George Drettakis for carefully rereading this paper.
- The authors are with iMAGIS-GRAVIR/IMAG, BP 53, F-38041 Grenoble cedex 09, France. iMAGIS is a joint project of CNRS, INRIA, Institut National Polytechnique de Grenoble, and Université Joseph Fourier.
E-mail: {Marie-Paule.Gascuel, Mathieu.Desbrun}@imag.fr.
For information on obtaining reprints of this article, please send e-mail to: transvcg@computer.org, and reference IEEECS Log Number V97000.
1. Elasticity theory [18] studies small oscillations around equilibrium states, but does not provide any model for collisions. Moreover, collisions between flexible bodies have finite time duration and consume some energy in deformations, so the solutions developed for rigid solids [27], [1] cannot be applied.
2. As, for instance, Terzopoulos et al.'s models [37], [39], [36], and Pentland's "Thing World" system [32], [35].
3. In the remainder of this paper, upper-case letters are used for points and vectors, and lower-case letters for scalar values. REFERENCES
[1] D. Baraff, "Dynamic Simulation of Non-Penetrating Rigid Bodies," PhD thesis, Cornell Univ., May 1992. [2] D. Baraff and A. Witkin, "Dynamic Simulation of Non-Penetrating Flexible Bodies," Computer Graphics, vol. 26, no. 2, pp. 303-308, July 1992. Proc. SIGGRAPH '92, Chicago, July 1992. [3] C. Blanc and C. Schlick, "Extended Filed Functions for Soft Objects," Implicit Surfaces '95 First Eurographics Workshop Implicit Surfaces, pp. 21-32, Grenoble, France, Apr. 1995.
[4] J. Bloomenthal, "Polygonisation of Implicit Surfaces," Computer Aided Geometric Design, vol. 5, pp. 341-355, 1988. [5] J. Bloomenthal and B. Wyvill, "Interactive Techniques for Implicit Modeling," Computer Graphics, vol. 24, no. 2, pp. 109-116, Mar. 1990. Proc. Symp. Interactive 3D Graphics. [6] N. Burtnyk and M. Wein, "Interactive Skeleton Technique for Enhancing Motion Dynamics in Key Frame Animation," Comm. ACM, vol. 19, no. 10, pp. 564-569, Oct. 1976. [7] J.E. Chdwick, D.R. Haumann, and R.E. Parent, "Layered Construction for Deformable Animated Characters," Computer Graphics, vol. 23, no. 3, pp. 243-252, July 1989. [8] M. Desbrun and M.-P. Gascuel, "Highly Deformable Material for Animation and Collision Processing," Proc. Fifth Eurographics Workshop Animation and Simulation, pp. 89-102, Oslo, Sept. 1994. [9] M. Desbrun and M.-P. Gascuel, "Animating Soft Substances with Implicit Surfaces," SIGGRAPH 95 Conf. Proc., ann. conference series, pp. 287-290, Aug. 1995. [10] M. Desbrun, N. Tsingos, and M.-P. Gascuel, "Adaptive Sampling of Implicit Surfaces for Interactive Modeling and Animation," Proc. Implicit Surfaces '95 First Eurographics Workshop Implicit Surfaces, pp. 171-185, Grenoble, France, Apr. 1995. An extended version appears in Computer Graphics Forum, vol. 15, no. 5, Dec. 1996.
[11] D.R. Forsey, "A Surface Model for Skeleton-Based Character Animation," Proc. Second Eurographics Workshop Animation and Simulation, pp. 55-73, Vienna, Sept. 1991. [12] M. Furio, M.-P. Gascuel, J.-D. Gascuel, and A. Lamouret, "Simply Implicit," an animation produced by iMAGIS/LIENS, Paris, July 1993. [13] J.-D. Gascuel, "Implicit Patches: An Optimized and Powerful Ray Intersection Algorithm for Implicit Surfaces," Proc. Implicit Surfaces '95 First Eurographics Workshop Implicit Surfaces, pp. 143-159, Grenoble, France, Apr. 1995.
[14] J.-D. Gascuel and M.-P. Gascuel, "Displacement Constraints for Interactive Modeling and Animation of Articulated Structures," The Visual Computer, vol. 10, no. 4, pp. 191-204, Mar. 1994. [15] M.-P. Gascuel, "An Implicit Formulation for Precise Contact Modeling Between Flexible Solids," Computer Graphics, vol. 27, pp. 313-320, Aug. 1993. Proc. SIGGRAPH '93, Anaheim, Calif. [16] M.-P. Gascuel, M. Desbrun, J.-D. Gascuel, and S. Réhel, "Kitchen Fiction," Eurographics '96, video competition, Aug. 1996. [17] M.-P. Gascuel, A. Verroust, and C. Puech, "A Modeling System for Complex Deformable Bodies Suited to Animation and Collision Processing," J. Visualization and Computer Animation, vol. 2, no. 3, pp. 82-91, Aug. 1991. A shorter version of this paper appeared in Proc. Graphics Interface '91. [18] H. Goldstein, Classical Mechanics. Addison-Wesley, 1950. [19] J.-P. Gourret, N.M. Thalmann, and D. Thalmann, "Simulation of Object and Human Skin Deformations in a Grasping Task," Computer Graphics, vol. 23, no. 3, pp. 21-29, July 1989. Proc. SIGGRAPH '89, Boston, July 1989. [20] A. Guy and B. Wyvill, "Controlled Blending for Implicit Surfaces Using a Graph," Proc. Implicit Surfaces '95 First Eurographics Workshop Implicit Surfaces, pp. 107-112, Grenoble, France, Apr. 1995.
[21] Z. Kacic-Alesic and B. Wyvill, "Controlled Blending of Procedural Implicit Surfaces," Proc. Graphics Interface '91, pp. 236-245, Calgary, Canada, June 1991. [22] J. Lasseter, "Principles of Traditional Animation Applied to 3D Computer Animation," Computer Graphics, vol. 21, no. 4, pp. 35-43, July 1987. Proc. SIGGRAPH '87, Anaheim, Calif., July 1987. [23] W. Lorensen and H. Cline, "Marching Cubes: A High Resolution 3D Surface Construction Algorithm," Computer Graphics, vol. 21, no. 4, pp. 163-169, July 1987. Proc. SIGGRAPH '87, Anaheim, Calif., July 1987. [24] A. Luciani, S. Jimenez, O. Raoult, C. Cadoz, and J.-L. Florens, "A Unified View of Multitude Behaviour, Flexibility, Platicity, and Fractures: Balls, Bubbles, and Agglomerates," Proc. IGIP WG 5.10 Working Conf., Tokyo, Apr. 1991. [25] G. Miller, "The Motion Dynamics of Snakes and Worms," Computer Graphics, vol. 22, no. 4, pp. 169-177, Aug. 1988. Proc. SIGGRAPH '88, Atlanta. [26] G. Miller and A. Pearce, "Globular Dynamics: A Cnnected Particle System for Animating Viscous Fluids," SIGGRAPH '89 Course 30 Notes, pp. 305-309, Aug. 1989. [27] B. Mirtich and J. Canny, "Impulse Based Simulation of Rigid Bodies," Proc. Symp. Interactive 3D Graphics, pp. 181-188, ACM SIGGRAPH, Apr. 1995. [28] M. Moore and J. Wilhelms, "Collision Detection and Response for Computer Animation," Computer Graphics, vol. 22, no. 4, pp. 289-298, Aug. 1988. Proc. SIGGRAPH '88, Atlanta. [29] P. Ning and J. Bloomenthal, "An Evaluation of Implicit Surface Tilers," IEEE Computer Graphics and Applications, vol. 13, no. 6, pp. 33-41, Nov. 1993. [30] A. Opalach and S. Maddock, "Implicit Surfaces: Appearance, Blending, and Consistency," Proc. Fourth Eurographics Workshop Animation and Simulation, pp. 233-245, Barcelona, Sept. 1993. [31] A. Opalach and S. Maddock, "High Level Control of Implicit Surfaces for Character Animation," Proc. Implicit Surfaces '95 First Eurographics Workshop Implicit Surfaces, pp. 223-232, Grenoble, France, Apr. 1995.
[32] A. Pentland and J. Williams, "Good Vibrations: Modal Dynamics for Graphics and Animation," Computer Graphics, vol. 22, no. 4, pp. 15-222, July 1989. Proc. SIGGRAPH '89, Boston. [33] J. Platt and A. Barr, "Constraint Methods for Flexible Models," Computer Graphics, vol. 22, no. 4, pp. 279-288, Aug. 1988. Proc. SIGGRAPH '88, Atlanta. [34] A. Rappoport, A. Sheffer, D. Youlus, and M. Bercovier, "Volume-Preserving Free-Form Deformations," Proc. ACM Solid Modeling '95, pp. 361-372, Salt Lake City, Ut., May 1995. [35] S. Sclaroff and A. Pentland, "Generalized Implicit Functions for Computer Graphics," Computer Graphics, vol. 25, no. 4, pp. 247-250, July 1991. Proc. SIGGRAPH '91, Las Vegas. [36] D. Terzopoulos and K. Fleischer, "Modeling Inelastic Deformations: Viscoeleasticity, Plasticity, Fracture," Computer Graphics, vol. 22, no. 4, pp. 269-278, Aug. 1988. Proc. SIGGRAPH '88, Atlanta. [37] D. Terzopoulos, J. Platt, A. Barr, and K. Fleischer, "Elastically Deformable Models," Computer Graphics, vol. 21, no. 4, pp. 205-214, July 1987. Proc. SIGGRAPH '87, Anaheim, Calif. [38] D. Terzopoulos, J. Platt, and K. Fleischer, "Heating and Melting Deformable Models (From Goop to Glop)," Proc. Graphics Interface '89, pp. 219-226, London, Ontario, Canada, June 1989. [39] D. Terzopoulos and A. Witkin, "Physically Based Model with Rigid and Deformable Components," IEEE Computer Graphics and Applications, pp. 41-51, Dec. 1988. [40] D. Tonnesen, "Modeling Liquids and Solids Using Thermal Particles," Proc. Graphics Interface '91, pp. 255-262, Calgary, Alberta, Canada, June 1991. [41] R. Turner, "Leman: A System for Constructing and Animating Layered Elastic Characters," Computer Graphics Developments in Virtual Environments, pp. 185-203. Academic Press, June 1995.
[42] A. Watt and M. Watt, Advanced Animation and Rendering Techniques. Addison-Wesley, 1992. [43] J. Wilhelms and A. Van Gelder, "Octree for Faster Isosurface Generation," Trans. on Graphics, vol. 11, no. 3, pp. 210-227, July 1992. [44] A. Witkin and P. Heckbert, "Using Particles to Sample and Control Implicit Surfaces," Computer Graphics, pp. 269-278, July 1994. Proc. SIGGRAPH '94. [45] A. Witkin and W. Welch, "Fast Animation and Control for Non-Rigid Structures," Computer Graphics, vol. 24, no. 4, pp. 243-252, Aug. 1990. Proc. SIGGRAPH '90, Dallas. [46] B. Wyvill and G. Wyvill, "Field Functions for Implicit Surfaces," The Visual Computer, vol. 5, pp. 75-82, Dec. 1989. [47] G. Wyvill, C. McPheeters, and B. Wyvill, "Data Structure for Soft Objects," The Visual Computer, vol. 2, no. 4, pp. 227-234, Aug. 1986.
Marie-Paule Cani-Gascuel is a graduate of the Ecole Normale Superieure (Paris, France) in both mathematics and computer science and received the PhD degree in computer science from the University of Paris XI in 1990. She is an assistant professor of computer science at ENSIMAG. She received the "Habilitation à diriger des recherches" degree from INPG (Grenoble, France) in March 1995. Her research interests include physically based simulation, motion control of linked figures, and implicit surfaces applied to interactive modeling and animation. Dr. Gascuel has served on the program committee of several Eurographics workshops and conferences since 1993.
Mathieu Desbrun was awarded an engineering degree in computer science at ENSIMAG with distinction and a graduate degree in computer graphics and vision, both in 1994. He is currently a doctoral candidate in computer science at the INPG (Grenoble, France). His research interests include physically based animation and implicit surfaces.