i
i
i
i
i
i
i
i
426 17. Computer Animation
17.3 Deformations
Although techniques for object deformation might be more properly treated as
modeling tools, they are traditionally discussed together with animation methods.
Probably the simplest example of an operation which changes object shape is a
non-uniform scaling. More generally, some function can be applied to local co-
ordinates of all points specifying the object (i.e., vertices of a triangular mesh
or control polygon of a spline surface), repositioning these points and creating a
new shape: p
= f(p,γ) where γ is a vector of parameters used by the deforma-
tion function. Choosing different f (and combining them by applying one after
another) can help to create very interesting deformations. Examples of useful
simple functions include bend, twist, and taper which are shown in Figure 17.13.
Animating shape change is very easy in this case by keyframing the parameters
of the deformation function. Disadvantages of this technique include difficulty of
choosing the mathematical function for some non-standard deformations and the
fact that the resulting deformation is global in the sense that the complete object,
and not just some part of it, is reshaped.
BendOriginal shape
Taper
Twist
Figure 17.13. Popular ex-
amples of global deforma-
tions. Bending and twist an-
gles as well as the degree
of taper can all be animated
to achieve dynamic shape
change.
To deform an object locally while providing more direct control over the re-
sult, one can choose a single vertex, move it to a new location and adjust vertices
within some neighborhood to follow the seed vertex. The area affected by the de-
formation and the specific amount of displacement in different parts of the object
are controlled by an attenuation function which decreases with distance (typically
computed over the object’s surface) to the seed vertex. Seed vertex motion can be
keyframed to produce animated shape change.
A more general deformation technique is called free-form deformation (FFD)
(Sederberg & Parry, 1986). A local (in most cases rectilinear) coordinate grid
is first established to encapsulate the part of the object to be deformed, and co-
ordinates (s, t, u) of all relevant points are computed with respect to this grid.
The user then freely reshapes the grid of lattice points P
ijk
into a new distorted
lattice P
ijk
(Figure 17.14). The object is reconstructed using coordinates com-
puted in the original undistorted grid in the trivariate analog of B´ezier interpolants
(see Chapter 15) with distorted lattice points P
ijk
serving as control points in this
expression:
P (s, u, t)=
L
i=0
i
L
(1 − s)
L−i
s
i
M
j=0
j
M
(1 − t)
M−j
t
j
N
k=0
k
N
(1 − u)
N−k
u
k
P
ijk
,
where L, M, N are maximum indices of lattice points in each dimension. In ef-
fect, the lattice serves as a low resolution version of the object for the purpose of
deformation, allowing for a smooth shape change of an arbitrarily complex ob-