on a supercomputer). Our approach, which is in-
spired with the techniques of computer graphics,
attempts at bringing a compromise by representing a
muscle with a surface mesh that quickly deforms.
Most popular computer graphics methods for de-
formation of the surface mesh are based on mesh-
skinning technique, e.g., in (Blanco et al., 2008), that
binds a mesh to the underlying skeleton so that
change of this skeleton produce a smooth non-rigid
deformation of the mesh. However, these methods
often fail to preserve the volume of the object being
deformed, e.g., (Ju et al., 2005), and they do not
induce impenetrability between objects, which is
undesirable for our purpose.
Shi et al. (Shi et al., 2007) proposed an approach
in which, for each vertex of the mesh, an equation
describing the energy of this vertex derived from its
position is formed and the approach tries to succes-
sively reposition vertices to minimize the total ener-
gy. Each time the intersection between two meshes
is detected, a new equation describing the impulse
force at the intersected area is added into the system.
Our approach is similar to the one by Shi et al.
The most significant differences are as follows. To
speed up the process, we do not minimize the energy
of the original mesh but of a coarse mesh and then
transfer the computed values to the original mesh.
We solve the intersections locally because this gives
us a better control than the impulse force approach.
3 DEFORMATION METHOD
Bones, action lines, and muscles are positioned in
the rest pose (RP), which is the initial position for
the deformation algorithm. For bones and action
lines also their final position, called current pose
(CP), is available. To get a muscle from RP into CP,
the deformation of the muscle has to be provided.
An example can be seen in Figure 1.
a)
b)
c)
Figure 1: Position of bones (pelvis and femur) and shape
of the gluteus maximus: a) muscle and bones in RP;
b) bones in CP, muscle in RP; c) muscle deformed to CP.
The original method is based on algorithm de-
scribed in (Huang et al., 2006). For each muscle, its
outer hull (a low polygon coarse mesh) is needed.
Mostly it is loaded from the pre-computed database;
if not available, the hull is computed by the progres-
sive hull decimation algorithm (Cholt, 2012). This
coarse hull is used to get an initial approximate solu-
tion, which is then refined by a final few iterations in
which the original mesh is used. This strategy saves
both memory and computational power.
The deformation algorithm as described in
(Kellnhofer et al., 2012) defines constraints to pre-
serve the shape of the muscle, its main deformation
direction and its volume. From these constraints the
over-constrained linear system with non-linear
boundary constraint of volume was mathematically
derived. We solve the equations iteratively using
Gauss-Newton method with Lagrange coefficients.
In each iterative step, a new position for every ver-
tex of the mesh being processed (either the coarse
hull mesh or the full mesh) is computed, after which
the intersection corrections are applied to avoid
mutual inter-penetration of meshes.
3.1 Solving Intersections
During the whole deformation, computation inter-
sections are solved on two levels. In each iterative
step, it is checked, if the deformation has not moved
the mesh vertices too far. Because it profits from the
knowledge of the previous vertex position and its
motion, it is called dynamic intersection. As can be
seen in Figure 2, if any vertex is found to lie inside
an obstacle, the adequate triangle of the obstacle in
the direction inverse to the vertex motion direction is
detected and the vertex is moved to the boundary of
the obstacle (on the detected triangle) – left gray
point in Figure 2; or to its previous position, if the
vertex has been already inside the obstacle before
the deformation step – right gray point in Figure 2.
a)
b)
Figure 2: Dynamic intersection solving schema (colour
curve represents the obstacle, black curve the deforming
muscle): a) the original position of vertices (solid line) and
the intersected vertices after deformation iteration (dashed
line); b) situation after intersection solving.
As each vertex of the original muscle mesh is de-
fined as the linear combination of all vertices of the
hull, the linear mapping is not able to represent a
larger pit pushed into the original mesh surface and,
therefore, after all iterations, the final intersection
check, called static intersection, using full meshes
must be done to prevent problems.
GRAPP2013-InternationalConferenceonComputerGraphicsTheoryandApplications
74