Game Development Reference

In-Depth Information

10.3.3 Dynamic System

In order to simulate dynamic deformations of an object, we need to make the posi-

tion coordinates a function of time. For linear elasticity, we can use the Lagrange

equations of motion, which involve kinematic and potential energies and have the

form

M
¨

u
+
D
˙

u
+
K
u,

where the mass matrix
M
and the damping matrix
D
are constant (recall that

u
=
x

x
0
). The stiffness matrix
K
is the same one that we computed in the pre-

vious section. To compute the displacement of the nodes of the tetrahedral mesh,

i.e., to isolate the vector of displacements
u
, we will need to invert the mass and

damping matrices. Although these matrices are sparse, their inverse may result

in a dense matrix that can require more memory storage and processing time. To

avoid this, we consider, in general, the damping matrix
D
to be a simple diagonal

matrix that can be written as
μ
I
. Similarly, the mass matrix is diagonalized using

mass-lumping methods. There are a variety of methods to performmass lumping;

among the most frequently used, we found the following:

−

•

Dividing the total mass into the number of nodes and assigning the result

to each node.

•

Assuming that the density of the object is homogeneous, use the volume of

the tetrahedron to compute its mass. Then assign to each node the mass of

the tetrahedron divided by four.

Hence, the mass and damping matrices can be precomputed to accelerate the sim-

ulation.

To solve Equation (10.12), we transform it into a set of 2

×

3
n
equations of

first derivatives and replace
u
=
x

−

x
0
:

˙

v
=

x,

M
˙

x
0
)+
f
ext
.

v
=

−

D
v

−

K
(
x

−

There exists a variety of methods to solve this system of equations and find the

displacement vector
x
; however, we recommend the implicit Euler's method. Al-

though other methods provide faster numerical resolutions, the implicit approach

is largely more robust. Euler's implicit resolution method can be stated as follows:

x
(
t
+
h
)=
x
(
t
)+
hv
(
t
+
h
)
,

(10.14)

M
v
(
t
+
h
)=
M
v
(
t
)+
h
M
v
(
t
+
h
)

(10.15)