Mathematical-Basics-of-Motion-and-Deformation-in-Computer-Graphics-Second-Edition
Mathematical-Basics-of-Motion-and-Deformation-in-Computer-Graphics-Second-Edition
Ken Anjyo
OLM Digital, Inc.
Hiroyuki Ochiai
Kyushu University
M
&C Morgan & cLaypool publishers
Copyright © 2017 by Morgan & Claypool
DOI 10.2200/S00766ED1V01Y201704VCP027
Lecture #27
Series Editor: Brian A. Barsky, University of California, Berkeley
Series ISSN
Print 2469-4215 Electronic 2469-4223
ABSTRACT
is synthesis lecture presents an intuitive introduction to the mathematics of motion and defor-
mation in computer graphics. Starting with familiar concepts in graphics, such as Euler angles,
quaternions, and affine transformations, we illustrate that a mathematical theory behind these
concepts enables us to develop the techniques for efficient/effective creation of computer anima-
tion.
is book, therefore, serves as a good guidepost to mathematics (differential geometry and
Lie theory) for students of geometric modeling and animation in computer graphics. Experienced
developers and researchers will also benefit from this book, since it gives a comprehensive overview
of mathematical approaches that are particularly useful in character modeling, deformation, and
animation.
KEYWORDS
motion, deformation, quaternion, Lie group, Lie algebra
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Rigid Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1 2D Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 2D Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 2D Rigid Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 2D Reflection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5 3D Rotation: Axis-angle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.6 3D Rotation: Euler Angle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.7 3D Rotation: Quaternion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.8 Dual Quaternion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.9 Using Complex Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.10 Dual Complex Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.11 Homogeneous Expression of Rigid Transformations . . . . . . . . . . . . . . . . . . . . . 19
3 Affine Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1 Several Classes of Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2 Semidirect Product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 Decomposition of the Set of Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.1 Polar Decomposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.2 Diagonalization of Positive Definite Symmetric Matrix . . . . . . . . . . . . . 27
3.3.3 Singular Value Decomposition (SVD) . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8 Further Readings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
A Formula Derivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
A.1 Several Versions of Rodrigues Formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
A.2 Rodrigues Type Formula for Motion Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
A.3 Proof of the Energy Formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Preface
In the computer graphics community, many technical terms, such as Euler angle, quaternion, and
affine transformation, are fundamental and quite familiar words, and have a pure mathematical
background. While we usually do not have to care about the deep mathematics, the graphical
meaning of such basic terminology is sometimes slightly different from the original mathematical
entities. is might cause misunderstanding or misuse of the mathematical techniques. Or, if we
have just a bit more curiosity about pure mathematics relevant to computer graphics, it should be
easier for us to explore a new possibility of mathematics in developing a new graphics technique
or tool.
is volume thus presents an intuitive introduction to several mathematical basics that are
quite useful for various aspects of computer graphics, focusing on the fundamental procedures for
deformation and animation of geometric objects, and curve/surface editing. e objective of this
book, then, is to fill the gap between the original mathematical concepts and the practical mean-
ings in computer graphics without assuming any prior knowledge of pure mathematics. We then
restrict ourselves to the mathematics for matrices, while we know there are so many other math-
ematical approaches far beyond matrices in our graphics community. ough this book limits
the topics to matrices, we hope you can easily understand and realize the power of mathemati-
cal approaches. In addition, this book demonstrates our ongoing work, which benefits from the
mathematical formulation we develop in this book.
is book is an extension of our early work that was given as SIGGRAPH Asia 2013 and
SIGGRAPH 2014 courses. e exposition developed in this book has greatly benefited from
the advice, discussions, and feedback of a lot of people. e authors are very much grateful to
Shizuo Kaji at Yamaguchi University and J.P. Lewis at Victoria University of Wellington, who
read a draft of this book and gave many invaluable ideas. e discussions and feedback from the
audience at the SIGGRAPH courses are also very much appreciated. Many thanks also go to
Gengdai Liu and Alexandre Derouet-Jourdan at OLM Digital for their help in making several
animation examples included in this book.
is work was partially supported by Core Research for Evolutional Science and Technol-
ogy (CREST) program “Mathematics for Computer Graphics” of Japan Science and Technology
Agency ( JST). Many thanks especially to Yasumasa Nishiura at Tohoku University and Masato
Wakayama at Institute of Mathematics for Industry, who gave long-term support to the authors.
e authors wish to thank Ayumi Kimura for the constructive comments and suggestions
made during the writing of this volume. anks also go to Yume Kurihara for the cute illustrations.
Last, but not least, the authors are immensely grateful to Brian Barsky, the editor of the Synthesis
Lectures on Compute Graphics and Animarion series, and Mike Morgan at Morgan & Claypool
Publishers for giving the authors such an invaluable chance to publish this book in the series.
Introduction
ORGANIZATION
In the latter half of this chapter we give a very rough sketch of several mathematical concepts that
will reappear throughout this book.
In Chapters 2 and 3, we describe rigid and non-rigid transformations, while explaining the
basic definitions regarding the matrix group. We thereafter show that Lie theoretic framework
gives us comprehensive understanding of affine transformations, quaternions, and dual quater-
nions in Chapters 4 and 5. e Lie theoretic approach is also successfully applied to parametriza-
tion issues in Chapters 6 and 7, where we provide several useful recipes for rigid motion descrip-
tion and global deformation, along with our recent work. Finally in Chapter 8, we show a list
of further readings, suggesting the power of mathematical approaches in graphics far beyond the
present volume.
Here are a few additional notes that make this book easy to read and more enjoyable. First
there are several colored columns in this book, which give brief, interesting stories of mathemati-
cians or deeper explanations of the mathematical concepts in the body text. You may skip them
at the first reading, but they will give you good guidance for your further study. Second, in this
book, a point in Euclidean space is given as a row vector, whereas many geometric transformations
are described with matrices. e action of a matrix to a vector then means multiplication from
the left. As you may know, OpenGL takes the same manner of matrix multiplication, whereas
DirectX does not.
i 2 D j 2 D k2 D 1
ij D j i D k:
H is then called an algebra or field (see [Ebbinghaus1991] for more details). We also note that, as
shown in the above rules, it is not commutative. A few more alternative definitions of quaternions
will also be given later for our graphics applications. In particular we’ll see how 3D rotations can
be represented with quaternions of unit length.
DUAL QUATERNION
In 1873, as a further generalization of quaternions, William K. Clifford obtained
the concept called biquaternions, which is now known as a Clifford algebra. e
concept of dual quaternions, which is another Clifford algebra, was also introduced
in the late 19th century. A dual quaternion can be represented with q D q0 C q" ",
where q0 ; q" 2 H and " is the dual unit (i.e., " commutes with every element of the
algebra, while satisfying "2 D 0). We’ll see later how rigid transformations in 3D
space can be represented with dual quaternions of unit length.
CHAPTER 2
Rigid Transformation
In physics, a rigid body means as an object which preserves the distances between any two points
of it with or without external forces over time. So describing rigid transformation (or rigid motion)
means finding the non-flip congruence transformations parametrized over time. For a rigid body
X , an animation (or a motion) X.t / indexed by a time parameter t can be described by a series of
rigid transformations S.t / with X.t / D S.t /X.0/, instead of dealing with the positions of all the
particles consisting of X . In the following sections, a non-flip congruence transformation may
also be called a rigid transformation. e totality of the non-flip rigid transformations constitutes
a group, which will be denoted by SE.n/, where n is the dimension of the world where rigid bodies
live (n D 2 or 3). So let’s start with 2D translation, a typical rigid transformation in R2 .
2.1 2D TRANSLATION
A translation Tb by a vector b 2 R2 gives a rigid transformation in 2D. e composition of two
translations and the inverse of a translation, which is denoted by Tb 1 , are also translations:
1
Tb Tb 0 D TbCb 0 ; Tb DT b:
is can be rephrased as the totality of translations forms a group (recall Chapter 1). Moreover,
they satisfy also
Tb Tb 0 D Tb 0 Tb :
is means that the totality of translations forms a commutative group. is property is illustrated
in Figure 2.1. A commutative group is also called abelian group named after Niels Abel. e
totality of 2D translations are denoted by R2 , as is the two-dimensional vector space.
6 2. RIGID TRANSFORMATION
y y
Tb′
Tb • Tb′ Tb
Tb Tb′ • Tb
Tb′
x x
2.2 2D ROTATION
A rotation in 2D centered at the origin (illustrated as in Figure 2.2) is then expressed by a matrix
cos sin
R D : (2.1)
sin cos
Note that the angle 2 R is not uniquely determined. To be more precise, two matrices R and
R 0 give the same rotation if and only if 0 is an integer multiple of 2 . e compositions of
2.2. 2D ROTATION 7
R R 0 D R C 0 ; R 1 D R :
Here R 1 denotes the inverse of R . e totality of the rotations in 2D forms a group (also recall
the definition of group in Chapter 1). It is denoted by
We also write as
SO.2/ D fA 2 M.2; R/ j AAT D I; det A D 1g; (2.3)
where M.2; R/ is the set of square matrices of size two, I is the identity matrix, and det is the
determinant. e transpose¹ of a matrix A is denoted by AT . A matrix A 2 M.2; R/ is a rotation
matrix if and only if the column vectors u; v 2 R2 of A form an orthonormal basis and the orien-
tation from u to v is counter-clockwise. is means that a rotation matrix sends any orthonormal
basis with the positive orientation to some orthonormal basis with the positive orientation.
e result of the composition of several rotations in 2D is not affected by the order. is
fact comes from the commutativity; R R 0 D R 0 R . Note that this is never true for 3D or a
higher dimensional case.
¹ere are several manners to write a transpose of a matrix; At is rather popular but we will use [e.g., in Equation (5.2)] the
notation At to express the t -th power of a matrix A for a real number t , so that we want to avoid this conflict. Another choice
to write the transpose of a matrix A will be tA.
8 2. RIGID TRANSFORMATION
2.3 2D RIGID TRANSFORMATION
e translation Tb does not preserve the origin (unless b is a zero vector), so it cannot be natu-
rally expressed by a 2 2 matrix. A homogeneous expression² can express a translation Tb in 3 3
matrices: 0 1 0 1 0 01
1 0 b1 x x
@0 1 b2 A @y A D @y 0 A : (2.4)
0 0 1 1 1
A successive operation (illustrated in Figure 2.3) of a rotation R and a translation Tb maps
a column vector x D .x; y/T 2 R2 to Tb .R .x// D R x C b . In a homogeneous expression, it is
written as 0
R b x x
D : (2.5)
0 1 1 1
R Tb R D Tb 0 : (2.8)
is property is rephrased as the group of translations is a normal⁴ subgroup of the rigid trans-
formation group, and it is denoted by R2 G SE.2/. In Section 2.2, we discuss rotations centered
at the origin. In general, the rotation with angle centered at b 2 R2 can be expressed by
Tb R T b: (2.9)
is bears a resemblance to (2.8), but the role of rotations and translations are reversed.
2.4 2D REFLECTION
A reflection (flip) with respect to a line y D .tan /x through the origin can be expressed as
1 0 cos 2 sin 2
R R D : (2.10)
0 1 sin 2 cos 2
e totality of rotations and reflections form an orthogonal group of size two, which is de-
fined by
O.2/ D fA 2 M.2; R/ j AAT D I2 g: (2.12)
e totality of rotations has been denoted by
In the terminology in Section 3.2, SO.2/ is a normal subgroup of O.2/. Any reflection is not
considered to be a motion, since it cannot be continuously connected with the identity transfor-
mation. In other words, O.2/ is not connected while SO.2/ is connected. Note that a connected
component is like an island, illustrated in Figure 2.4. With this terminology, SO.2/ is a connected
component. It is known that any two 2D reflections are continuously connected. is means
³is notion is explained in Section 3.2.
⁴is terminology will be explained in Section 3.2.
10 2. RIGID TRANSFORMATION
that the set of 2D reflections is a different connected component of O.2/ from SO.2/. e same
holds for an arbitrary dimension n. at is, SO.n/ is connected, and O.n/ has two connected
components. e set of the elements of O.n/ whose determinants are 1 is the other connected
component of SO.n/. Moreover, for any two elements g; h 2 O.n/ with g; h … SO.n/, we have
gh 2 SO.n/. is fact is rephrased as the index of the subgroup SO.n/ in O.n/ is two, and denoted
by ŒO.n/ W SO.n/ D 2.
θ
x
R(x)
Each of the rotation matrices in the right-hand side can essentially be understood as a 2D rotation
matrix, so that this method regards a 3D rotation as a composition of several (three) 2D rotations.
is method respects the axis, so is not free from the choice of coordinates.
We have several versions of Euler angle representation. Here we employ successive xyz-
rotations, but we may have six variations of three letters such as yxz, zxy, etc., as well as six vari-
ations of two letters such as xyx, xzx, etc. ese variations look different, but are essentially the
same. Within each class, we only need to exchange the name of coordinates. Between the classes,
for example, the relations between xyz-Euler angle and xyx-Euler angle representations are given
explicitly as follows. e identity
Rz ./Ry . / D Ry . /Rx . /
2 2
implies the formula
Rz .3 /Ry .2 /Rx .1 / D Ry . /Rx . 3 /Ry .2 /Rx .1 /: (2.22)
2 2
We understand this formula as follows: given a 3D rotation matrix with the xyz-Euler angle
.1 ; 2 ; 3 /, move by rotation Ry . 2 /, then we obtain another rotation matrix with the xyx-Euler
angle .1 ; 2 2 ; 3 /.
Every 3D rotation can be expressed by an Euler angle representation. Consider the xyx-
Euler angle representation of a z -rotation
Rx .3 /Ry .2 /Rx .1 / D Rz . /: (2.23)
en, for 0 < j j < , we see that the solutions of this Equation (2.23) are .1 ; 2 ; 3 / D
˙. =2; ; =2/. is means that even if is close to zero, the angles 1 and 3 are far from zero,
so that if we move continuously through zero, then its Euler angle .1 ; 2 ; 3 / may change dis-
continuously. Another intuitive explanation is that if we put 2 D 0 in (2.23), then the left-hand
2.7. 3D ROTATION: QUATERNION 13
side becomes Rx .3 C 1 /, so that only one-dimensional freedom remains though we expect two-
parameter family. ese phenomena are known as Gimbal lock, which is a demerit of this method.
See [Ebbinghaus1991].
(i) H D R C Ri C Rj C Rk , the real 4-dimensional vector space with the muliplication law
i 2 D j 2 D k 2 D 1; ij D k D ji; jk D i D kj; ki D j D ki.
(iii) e set of pairs .s; q/ of real numbers s and real three-dimensional vectors q 2 R3 .
e relation between (i), (ii), and (iii) are given by a C bi C cj C dk D sq. Each of these realiza-
tions has some advantage and disadvantage. For example, in the picture (iii) the multiplication
rule is inherited from the matrix multiplication, so that the associative law q.q 0 q 00 / D .qq0 /q 00 is
obvious, while in the picture (i) the multiplication rule is defined as ij D k , so that the associative
law is non-trivial and to be examined (though it is easy and straightforward). e realization (iii)
is most directly related with the description of 3D motion (e.g., 3D rotation by unit quaternion).
In Section 2.9, we give two other equivalent definitions of quaternions. It should be emphasized
that these five realizations are equivalent. We can choose and use an appropriate way according
to each purpose from these equivalent realizations in order to understand, prove some formu-
lae, and/or improve, make a code, etc. e notion of quaternions is a generalization of complex
numbers. Most significant difference is the non-commutativity qq0 ¤ q 0 q , in general. However,
quaternions share many nice properties, for example, quaternions form a ring (i.e., addition, mul-
tiplication), a vector space (i.e., multiplication by a real number), a field (i.e., every non-zero
element has its inverse).
Unit Quaternions
e conjugate of a quaternion is defined by a C bi C cj C dk D a bi cj dk 2 R C Ri C
Rj C Rk D H. e real part of q D a C bi C cj C dk is defined by a and denoted by Re.q/.
14 2. RIGID TRANSFORMATION
e imaginary part of q D a C bi C cj C dk is defined by bi C cj C dk and denoted by Im.q/.
We have a formula⁵
1 1
Re.q/ D .q C q/; N Im.q/ D .q q/: N
2 2
A quaternion is called imaginary if its real part is zero. e totality of imaginary quaternions is
denoted by
Im H D fbi C cj C dk j b; c; d 2 Rg:
p p
e absolute value is denoted by jqj D qq D a2 C b 2 C c 2 C d 2 for q D a C bi C cj C dk.
e set of unit quaternions
S3 D fq 2 H j jqj D 1g (2.25)
is a group by a multiplication. (Note that there are several notations on the set of unit quaternions.
Another notation is Sp.1/, the compact symplectic group of rank one.) Any unit quaternion is of
the form
q D cos C .sin /u; (2.26)
2 2
where u is a unit imaginary quaternion and a 2 R. e multiplication p 7! qpq 1 D qpq gives
an action of a unit quaternion q on H.
What is an action?
For a group G and a set X , a map G X ! X is called an action if it satisfies a variation
of the associative law .gh/x D g.hx/ for g; h 2 G and x 2 X with an auxiliary condition
1x D x for all x 2 X , where 1 is the identity element of the group G . We can simply say
that G acts on X when the map G X ! X is obvious from the context. For example,
when G D SO.2/ and X D R2 , the usual multiplication of a matrix and a vector gives
an action of G on X .
.
S3 SO(3)
SO(3) S3 ImH
log
linear
slerp
interpolation
SO(3) S3 ImH
exp
z 7! e i e i z D e 2i z D ze 2i :
e multiplicativity jqq0 j D jqj jq 0 j of norms of quaternions follows from the property of deter-
minant det.AB/ D det.A/ det.B/ for the corresponding matrices A and B of the form (2.37).
From the definition, it follows that "2 D 0, and .p0 C p1 "/.q0 C q1 "/ may not be equal to .q0 C
q1 "/.p0 C p1 "/. We also define the conjugate and absolute values of DCN by
so we can compute DCN as usual numbers. Similarly to the unit dual quaternion numbers, the
unit anti-commutative complex numbers are of particular importance:
L 1 D fpO 2 C
C O D 1g D fe i C p1 " j 2 R; p1 2 Cg:
L j jpj
.e i C p1 "/ 1
De i
p1 ":
L:
A unit DCN pO acts on R2 by identifying v 2 C D R2 with 1 C v" 2 C
that is, v is mapped to p02 v C 2p0 p1 . For example, when p1 D 0, then pO D p0 D e i maps v 2
C to p02 v D e 2i v , which is the rotation around the origin of degree 2 . On the other hand,
2.11. HOMOGENEOUS EXPRESSION OF RIGID TRANSFORMATIONS 19
2
when p0 D 1, the action corresponds to the translation by 2p1 2 C D R . Note that this gives a
surjective group homomorphism ' W C L 1 ! SE.2/ whose kernel is f˙1g. In other words, any 2D
rigid transformation corresponds to exactly two unit DCN’s with opposite signs.
e following homomorphism
is compatible with the involution and the conjugation, and preserves the norm. Furthermore if
we identify v D x C iy 2 C with 1 C .xj C yk/" D 1 C vj", the above map is commutative with
the action. From this embedding, DCN is realized as a sub-ring of dual quaternion numbers.
e relations among DQN, DCN and related groups are summarized in Figure 2.9. Here we add
SE(2) SE(3)
DQN
DCN
SO(2) SO(3)
U(1) S3
some explanation. In each left-right edge, the object on the left is 2D, and that on the right is
3D. e left object is naturally contained in the right object. In each vertical edge, the top object
contains the bottom object, and the top object is obtained from the bottom object by adding
translations. In each front-behind edge, one element in the behind object corresponds exactly to
two elements in the front object. We have a two-to-one surjective map from front to back.
e properties of DCN and its applications are given in [Matsuda2004].
Homogeneous coordinates
e term homogeneous comes from projective geometry. In a real vector space Rn , two
distinct lines meet at one point if they are not parallel. ese two parallel lines are
considered to meet at a point at infinity. If we add appropriate points of infinity to
Rn , we obtain a projective space, denoted by P n .R/. is space is explicitly realized as
follows: we consider a non-zero vector with .n C 1/-components
Œz1 W z2 W W znC1 :
If two such vectors are parallel, then we consider these two vectors to be same. In
other words, if there is a non-zero number such that z10 D z1 ; z20 D z2 ; : : : ; znC10
D
0 0 0
znC1 , then we regard Œz1 W z2 W W znC1 D Œz1 W z2 W W znC1 . On the one hand, in
the case znC1 ¤ 0, then we can take D 1=znC1 so that Œz1 W z2 W W znC1 D Œz10 W
z20 W W zn0 W 1. In this manner, an .n C 1/-vector with znC1 ¤ 0 is regarded as a usual
n-vector in Rn . e coordinates Œz1 W z2 W W znC1 are called homogeneous coordi-
nates since the values of coordinates have some homogenuity, while the classical co-
ordinates .x1 ; : : : ; xn / D Œx1 W W xn W 1 are called inhomogeneous coordinates. On the
other hand, in the case znC1 D 0 an .n C 1/-vector Œz1 W z2 W W znC1 gives an extra
element other than Rn , which is considered to be an element at infinity.
Now we consider the symmetry group of the projective spaces. A projective linear
transformation on the projective space P n .R/ turns out to be represented by a multipli-
cation of a regular matrix of size .n C 1/:
0 10 1
a11 a1n a1nC1 z1
B :: :: :: C B :: C
B : : : CB : C
B CB C: (2.44)
@ an1 ann annC1 A @ zn A
anC11 anC1n anC1nC1 znC1
Affine Transformation
In this chapter, we discuss affine transformations, i.e., matrices for deformations.
Aff+(n) Aff(n)
SE(n) E(n)
GL+(n) GL(n)
SO(n) O(n)
of the motion group can be expressed as a pair of a rotation and a translation. e congruence
group, denoted by E.n/, is the set of transformations which preserve the shape, but may change
the orientation. A reflection is a typical example of congruence transformation. ese classes of
transformations are groups: e successive composition of transformations belongs to the same
class of transformation, and the inverse transformation also does (see Chapter 1).
A bounded and closed subset of a vector space is called compact in terms of topology. e set
of all rotations is bounded, while the set of all translations is unbounded. In these eight classes of
groups, SO.n/ and O.n/ are compact, while other six classes of groups are not compact. e notion
of connected and arcwise connected is equivalent in our cases. A maximal connected subset is called
a connected component (see Section 2.4). We cannot continuously interpolate two elements in
different connected components. For example, a flip and the identity cannot be interpolated in
GL.n/. Actually GL.n/ consists of two connected components, each of which inlcudes the flip
or the identity, respectively. On one hand, SO.n/, for instance, is connected, i.e, it has only one
connected component which is itself.
Note that all these eight types of groups in Figure 3.1 are non-commutative for n D 2; 3
except for SO.2/.
Why should we consider so many groups? Do mathematicians like the complication? One
may regard this large variety of Lie groups as a large variety of software in CG. Depending on
the purpose, one may use a wide variety of computer languages and/or platforms, like C++, maya,
python, MatLab, etc. is philosophy goes back to Klein’s Erlangen program.
3.2. SEMIDIRECT PRODUCT 25
(i) A subset H of G is called a subgroup if H is closed under the composition and the inversion,
1
(ii) A subgroup H of G is called a normal subgroup if the composition g h g of any h 2 H
and g 2 G belongs to H .
For example, the set R3 of translations is a normal subgroup of SE.3/, while the set SO.3/ of
rotations centered at the identity is a subgroup of SE.3/ but not normal.
Let G be a group, H a subgroup of G , and K a normal subgroup of G . (For example,
G D SE.3/; H D SO.3/; K D R3 .) If the map
H K 3 .h; k/ 7! hk 2 G (3.6)
is a bijective, then G is the semi-direct productof H and K , denoted by H Ë K . Note that hkh 1 2
K for any h 2 H and k 2 K , but is not necessarily equal to k . If both H and K are normal
subgroups of G , and hk D kh for all h 2 H and k 2 K , and the map (3.6) is bijective, then G is
called a direct product group H K . Note that hk D kh if and only if hkh 1 D k . Motion groups
26 3. AFFINE TRANSFORMATION
and affine transformation groups are typical examples of semi-direct product groups:
ese decompositions can be interpreted as, for example, the translation part of a motion
has its own meaning, which does not depend on the choice of coordinates and scaling, but a rota-
tion part has some ambiguity, depending on the choice of the origin and that of the coordinates.
is bijective.
Note that if we reverse the order
is surjective. Note that this map is not injective. If .R; D/ and .R0 ; D 0 / expresses the same X ,
then there exists a permutation matrix P such that D 0 D PDPT . Here a permutation matrix is,
by definition, a matrix which has unique non-zero entry 1 in each row and each column. e
inverse and the product of permutation matrices are also permutation matrices. Furthermore, if
D has distinct diagonal entries, then P is unique. is means that the expression X D RDRT is
not unique, but the freedom of choices exists only in the order of eigenvalues of X in the diagonal
entries in D .
Figure 3.3: SVD; the curved arrows show rotations. e dotted line shows a directional dilation.
28 3. AFFINE TRANSFORMATION
is surjective. is SVD is a combination of the polar decomposition and the diagonalization of
positive symmetric matrix. In fact, if we denote by A D R0 S the polar decomposition of A, and
by S D RDRT , then the expression A D .R0 R/DR gives SVD. (Notice that R0 R 2 SO.n/.) is
enables us to compute SVD by polar decomposition and the diagonalization of positive symmetric
matrix. On the other hand, when we have SVD A D R0 DR, then A D .R0 R/.RT DR/ gives polar
decomposition of A.
Similarly, O.n/ DiagC .n/ O.n/ ! GL.n/ is also surjective. Note that SVD is called
Cartan decomposition in mathematical literature (see, e.g., [Helgason1978]). In this point of
view, the compactness of SO.n/ and commutativity of DiagC .n/ is significant.
CHAPTER 4
We first consider a square matrix A, which is implicitly considered an element of a Lie group of
matrices. e exponential of A is then defined as
1
X 1 k 1 1
exp.A/ D A D I C A C A2 C A3 C ; (4.1)
kŠ 2 6
kD0
30 4. EXPONENTIAL AND LOGARITHM OF MATRICES
where A0 D I is the identity matrix. We’ll refer to (4.1) as the matrix exponential, for short. is
is motivated by Taylor expansion of the usual exponential function
1
X 1 k 1 1
ex D x D 1 C x C x2 C x3 C : (4.2)
kŠ 2 3Š
kD0
e series exp.A/ converges for an arbitrary A rapidly, as does the usual exponential function.
However, this infinite series expression is not so efficient for actual numerical computations. For
a computation, we can use several useful properties: for diagonal matrices we have
0 1 0 a 1
a 0 0 e 0 0
exp @0 b 0A D @ 0 e b 0 A ; (4.3)
0 0 c 0 0 ec
and a rotation
0 cos sin
exp D : (4.4)
0 sin cos
We also see that the exponential image of a strictly upper-triangular matrix terminates into a
finite sum. For example, for l 2 Rn , we have
O l In l
exp D : (4.5)
0 0 0 1
Slightly more generally, for a strictly upper triangular matrix A of size n, we have An D O and
therefore the infinite series (4.1) terminates to a finite sum expression
1 1
exp.A/ D I C A C A2 C C An 1 : (4.6)
2 .n 1/Š
Significantly, we can understand Rodrigues’s rotation formula (2.15) by using the matrix
exponential. Every 3D rotation is expressed by
0 1
0 u3 u2
sin juj 1 cos juj 2
R D exp.A/ D exp @ u3 0 u1 A D I3 C AC A ; (4.7)
u2 u1 0
juj juj2
q
where juj D u21 C u22 C u23 is the norm of a vector u D .u1 ; u2 ; u3 / 2 R3 . We also see that
juj2 D 21 tr.AAT / D 12 tr.A2 /. e matrix R shows the rotation around the axis through u, and
with angle juj. In particular, if juj 2 2Z then R D I3 , the identity matrix.
Coming back to the general situation, we always have the exponential law
may not hold in general. For example, it is easy to see that three matrices exp.A C B/,
0 0 0 1
exp.A/ exp.B/ and exp.B/ exp.A/ are different, for A D and B D . If we as-
1 0 0 0
sume A and B are commutative, i.e., AB D BA, then we have an expected formula
e matrix exponential is by definition an infinite sum of matrices, but by this property (4.11) we
can reduce the computation of the exponential map to the cases (4.3), (4.4), (4.6) so that we can
avoid the infinite series for the computation of the exponential exp.A/.
We now consider the inverse map of the exponential map: logarithmic map, or logarithm,
for short. e logarithm might be defined to be the inverse of the exponential as is the case of the
real scalar-valued function
exp W R ! fy > 0g D R>0 : (4.12)
However, we note that the logarithm of the complex exponential function
exp W C ! fz 2 C j z ¤ 0g D C
which gives an intimate connection between exponential functions and trigonometric functions,
the exponential expression (4.4) of a rotation is not unique; C 2n.n 2 Z/ gives the same ro-
tation as . is feature makes the inverse of a matrix complicated; the logarithm of a matrix is
thus multi-valued. As is the scalar valued function, the logarithm has a series expansion
1
X . 1/k 1
log.X / D .X I /k
k
kD1
if the absolute values of all the eigenvalues of the matrix X I are less than 1. is function
satisfies exp.log.X// D X as is expected. Similar to (4.11), the logarithm has a conjugate invari-
ance log.P 1 XP/ D P 1 log.X /P , and then the computation of log.X / is reduced to the case of
32 4. EXPONENTIAL AND LOGARITHM OF MATRICES
scalar-valued functions and the case of triangular matrices, where infinite series terminates.
cos sin 0
log D ;
sin cos 0
0 a 1 0 1
e 0 0 a 0 0
log @ 0 e b 0 A D @0 b 0A ;
0 0 ec 0 0 c
In this book, we consider a Lie group to consist of matrices, say, a matrix group. e Lie
algebra of a Lie group is a linear approximation of a group at the identity. In general, the Lie
algebra of a matrix group G GL.n/ is defined to be the tangent space (see Figure 4.1) of G at
the identity of G . Equivalently, the Lie algebra is the collection of elements in M.n; R/ of the
form ˇ
d ˇ
' .0/ D '.t /ˇˇ
0
(4.14)
dt tD0
For example, let us compute the Lie algebra of the Lie group SO.n/. For any curve ' W
R ! SO.n/, the image should satisfy '.t /'.t /T D In . By differentiating with the Leibnitz rule,
we obtain
ˇ ˇ
d ˇ d'.t / d'.t /T ˇˇ
0 D '.t/'.t /T ˇˇ D '.t/T C '.t / ˇ D A C AT ;
dt t D0 dt dt tD0
where we put A D ' 0 .0/ for short. is shows the Lie algebra of SO.n/ is the set of matrices A
with AT D A. In general, the Lie algebra corresponding to a given Lie group is denoted by the
corresponding “mathfrak” letters; for example, the Lie algebra of SO.3/ is denoted by so.3/, that
of GL.n/ by gl.n/. We give several examples of Lie algebras.
(i) e Lie algebra of GL.n/ and GLC .n/ is gl.n/ D M.n; R/,
(iii) e Lie algebra of the group of positive real numbers R>0 is R. Note that the group law for
R>0 is multiplicative, while that for R is additive.
(vi) e Lie algebra of the group S3 of unit quaternions is the set Im H of imaginary quaternions.
(vii) e special linear group is defined to be the set of volume-preserving linear maps;
SL.n; R/ D fA 2 GL.n; R/ j det A D 1g. Its Lie algebra is sl.n; R/ D fA 2 M.n; R/ j
trA D 0g, the set of traceless matrices.
(x) e Lie algebra of the affine transformation groups AffC .n/ and Aff.n/, defined in (3.2
and 3.4) is
A l
aff.n/ D j A 2 M.n; R/; l 2 Rn :
0 0
is fact will be used in Chapter 6 and 7.
(xi) e Lie algebra of SE.n/, defined in (2.43) and that of E.n/ is
A l n
se.n/ D j A 2 so.n/; l 2 R :
0 0
is will appear in Figure 5.3 for n D 2 , and in Figure 7.2 for n D 3 of later sections.
(xii) e set of invertible dual quaternion numbers
ŒA; B D AB BA:
4.3. EXPONENTIAL MAP FROM LIE ALGEBRA 35
exp W g ! G: (4.17)
In fact, the exponential map gives a local diffeomorphism (D one-to-one, onto, smooth, and its
inverse is also smooth) between a neighborhood of the origin of the vector space and a neighbor-
hood of the identity of the group (the set of transformations). In general, the exponential map is
not necessarily injective, nor surjective. We give several examples of exponential maps. Here the
number is taken from the Lie algebra examples in the Section 4.2.
(iii) exp W R ! R>0 is a bijective(D one-to-one onto) map (4.12).
(ii) exp W so.2/ ! SO.2/ is surjective(D onto), but not injective(D one-to-one). e explicit
form is given in (4.4).
(vi) exp W Im H ! S3 is surjective, but not injective. e explicit form is given in (2.31).
36 4. EXPONENTIAL AND LOGARITHM OF MATRICES
(v) exp W H ! H is surjective, but not injective. e explicit form is given by using the case (vi)
of unit quaternions. For a 2 R and z 2 Im H, we have exp.a C z/ D e a exp.z/, where
exp.z/ is given in (vi).
(xii) e explicit form of the exponential map exp W H C "H ! H C "H is given in Appendix
of [Kavan2008].
(xi) e explicit form of the exponential map exp W se.3/ ! SE.3/ for 3D motion group is given
in (7.3), (7.4) and (7.5).
(ix) e exponential map (4.3) gives a bijection
where
Note that SymC .n/ is not a group, and that sym.n/ is not a Lie algebra. e relation between
(4.19) and (4.18) has been suggested in (3.13): exp.RXRT / D R exp.X /RT for R 2 SO.n/ and
X 2 diag.n/. e role of linearity (vector space) and of commutativity is discussed in Section 4.7.
Both SymC .n/ and DiagC .n/ are convex open subsets of vector spaces.
We continue examples of exponential maps.
(ii) e exponential map gives a surjection(D onto map):
for the Lie algebras of semi-direct product groups. Euler angle representation (2.21) can be also
regarded as an example: Let
0 1 0 1 0 1
0 1 0 0 0 1 0 0 0
Jz D @1 0 0A ; Jy D @ 0 0 0A ; Jx D @0 0 1A :
0 0 0 1 0 0 0 1 0
en fJz ; Jy ; Jx g is a basis of so.3/, so that so.3/ D RJz ˚ RJy ˚ RJx , that is, every skew sym-
metrix matrix of size 3 can be written uniquely as a linear combination of Jx ; Jy , and Jz . Note
that each RJz ; RJy ; RJx gives a Lie subalgebra of so.3/.
In general, let g be a Lie algebra, and X1 ; : : : ; XN 2 g a basis of g as a vector space. en
the map from .t1 ; : : : ; tN / to exp.t1 X1 C t2 X2 C C tN XN / in G gives a diffeomorphism from
a neighborhood at the origin of RN to a neighborhood at the identity element of G . is is called
the canonical coordinates of the first kind. Similarly, the map exp.t1 X1 / exp.t2 X2 / exp.tN XN /
also gives a local diffeomorphism, which is called the canonical coordinates of the second kind.
e Euler angle representation is considered to be an example of the canonical coordinates of
38 4. EXPONENTIAL AND LOGARITHM OF MATRICES
the second kind. Rodrigues’s formula (4.7) is considered to be the canonical coordinates of the
first kind. Note that some (multiplicative) matrix decompositions do not give the correspond-
ing (additive) decomposition in a Lie algebra (or a vector space). For example, SVD might give
‹
gl.n/ D so.n/ ˚ diag.n/ ˚ so.n/, which is obviously wrong because two so.n/ components have
non-trivial intersection. is phenomenon has a relation with the fact that the behavior of SVD
at the origin is not stable (not a local diffeomorphism).
ese two (rather distinct) behaviors are understood in a uniform manner (see Figure 4.2):
the map
exp W fx 2 R3 j 0 < jxj < 2g ! fR 2 SO.3/ j R ¤ I g (4.27)
gives the two-to-one covering map (everywhere smooth, so that the local inverse does exist
uniquely). Slightly more generally, for every integer n 1,
also gives the two-to-one covering map. is map factors through the map (2.29):
2W1
fx 2 R3 j 2.n 1/ < jxj < 2ng ! fq 2 S3 j q ¤ ˙1g ! fR 2 SO.3/ j R ¤ I g: (4.29)
where the first map is defined as: x 7! . 1/n for jxj D 2n . Figure 4.2 illustrates these maps.
e first map shows the degeneration of spheres fx 2 R3 j jxj D 2ng, which looks like circles
4.7. THE FIELD OF BLENDING 39
(3)
S3
SO(3)
p2
pk
p1
matrices is an open convex subset of the set of symmetric matrices. It sounds not bad for blending,
but still the set of symmetric matrices will be better. is is why we once move from one curved
space to the other by the exponential function (see Figure 4.4).
2D Affine Transformation
between Two Triangles
As a simple case, this chapter deals with interpolating two triangles via affine transformations. We
note that interpolating affine transformations itself may also have other interesting applications;
see, for example, [Shoemake1994b] and [Alexa2002].
First of all, we notice that there is a unique affine transformation that maps a given trian-
gle to another one. Specifically, suppose that we are given three points .x1 ; y1 /T ; .x2 ; y2 /T , and
.x3 ; y3 /T 2 R2 forming a triangle, then there is a unique affine transformation
0 1 0 10 1
x1 x3 x2 x3 x3 x1 x2 x3 1 0 0
@y1 y3 y2 y3 y3 A D @y1 y2 y3 A @ 0 1 0A (5.1)
0 0 1 1 1 1 1 1 1
which maps three points .1; 0/T ; .0; 1/T ; .0; 0/T 2 R2 into the given three points in this order.
In other words, the set of three points forming a triangle is a principal homogeneous space of the
affine transformation group Aff.2/. Suppose that we are given three points .x1 ; y1 /T ; .x2 ; y2 /T ,
and .x3 ; y3 /T 2 R2 and want to map them onto other three points .x10 ; y10 /T ; .x20 ; y20 /T , and
42 5. 2D AFFINE TRANSFORMATION BETWEEN TWO TRIANGLES
.x30 ; y30 /T 2 R2 in this order. en the following 3 3-matrix
0 10 1 1
x10 x20 x30 x1 x2 x3
AO D @y10 y20 y30 A @y1 y2 y3 A (5.2)
1 1 1 1 1 1
0 1
a1;1 a1;2 dx
is of the form @a2;1 a2;2 dy A, and represents the requested affine transformation. We denote
0 0 1
the group of the two-dimensional affine transformations by Aff.2/, which are represented by
3 3-matrices of the above form. Note that all the entries aij , dx , and dy are linear in entries of
xj0 ’s. is observation is important in global optimization (see Section 6.3).
a1;1 a1;2
We call A D as the linear part and dAO D .dx ; dy /T as the translation part of AO
a2;1 a2;2
and consider them separately for interpolation. Interpolating the translation part can be neglected
(see the discussion in Section 6.3). We focus on interpolation of linear transformation here. In
general we may assume that transformation is orientation preserving, that is, it does not flip 2D
shapes. We denote the group of the orientation-preserving linear transformations by GLC .2/,
which are represented by matrices with positive determinants. We want to interpolate between
the identity matrix and a given matrix A 2 GLC .2/.
A’
GL+(2) Matrix
SO(2) × Sym (2)
product
A B
GL+(2) Matrix
SO(2) × Sym+(2) log
(2) × !"(2)
decom
linear
interpolation
A’ B’
GL+(2) Matrix
SO(2) × Sym+(2) exp
(2) × !"(2)
product
the rotation part and the symmetric part independently, and then get the interpolation of A by
multiplying the individual interpolations. Figures 5.2 and 5.3 illustrate AP and AE , respectively.
Now we observe more carefully how to interpolate with the homotopies AP and AE , refer-
ring to Figures 5.4 and 5.5. After the polar decomposition in AP or AE , the rotation interpolation
at t (t 2 R) is the t -th power of matrix R, that is, Rt D R t . Note that we can take the angle
to be < , while has choice up to modulo 2 . is would cause a problem, which
will be discussed in Section 6.3. rough the discussions in Sections 4.1–4.3, we know that
this means a simple interpolation technique in Lie group SO.2/ through linear interpolation in
its Lie algebra so.2/. First recall that the Lie algebra so.2/ is the set of matrices in the form of
0 cos sin 0
, with 2 R. Using the logarithm, we have log D . en
0 sin cos 0
it is easy to see that so.2/ is isomorphic to the real number space R as a vector space. e rota-
tion interpolation R t can therefore be considered via the exponential map from so.2/ to SO.2/:
0 t cos t sin t
exp D . As for the symmetric factors S , these two interpolations
t 0 sin t cos t
AP and AE take the different approaches. AP interpolates linearly the symmetric S . As illustrated
in Figure 5.2, the symmetric part then gives a map from SymC .2/ to Sym.2/. is means that the
symmetric interpolant in AP might provide us a degenerate matrix, which is a situation similar
to AL . On the other hand, AE linearly interpolates log.S/. e “log”operations are done for both
rotation and symmetric factors, as illustrated in Figure 5.3. In the special case A D S 2 SymC .2/,
then we have S P .t / D .1 t/I C tS and S E .t / D exp.t log.S // D S t . e difference between
these two methods is illustrated in Figure 5.6. e method AE .t/ uses both the logarithm and
44 5. 2D AFFINE TRANSFORMATION BETWEEN TWO TRIANGLES
A
A = Rθ S (Rθ, S)
linear
interpolation
A’
AP = Rt θ ((1 − t)I + tS) (Rt θ, (1 − t)I + tS)
( 0 −θ (
A B
A = Rθ S (Rθ, S) ( θ 0 , logS)
linear
interpolation
(0 −t θ
A’ B’
AE = Rt θ exp(t log S) (Rt θ, exp(t log S)) ( tθ 0 (
, t logS)
the exponential map, which can be understood a combination of the ideas in [Alexa2002] and
[Shoemake1994b]. roughout this book we refer to this interpolation technique as Log-Exp
interpolation.
CHAPTER 6
Figure 6.1: Problem: Construct a continuous transformation between two triangulated 2D figures.
ere are many approaches, including those mentioned earlier, for 2D shape interpolation
under the above assumptions. A typical scenario of these approaches came from the seminal work
of [Alexa2000]: We first define a homotopy of affine maps for each pair of the corresponding
triangles of the source and target objects, such that it connects the identity map and the local
affine map that gives a bijection between the corresponding triangles. Let us call this homotopy
local. Next we construct the homotopy that gives global interpolation between the source and
target. is homotopy is defined as a family of the piecewise affine maps, each of which is derived
from the affine maps of the local homotopy through a certain energy minimization process. is
scenario works well and has inspired many research works.
However, from a practicality viewpoint, there remain many things to be improved and
polished. For example, the following practical aspects of the methods should be addressed:
(a) controllability—How to add constraints to get a better result?
(b) rotation consistency—How to treat large rotations (> 180 degrees)?
¹In general, when the two shapes are given without boundary matching nor compatible triangulation, we would need a pre-
process to establish them. As for this issue, [Baxter2009] is a good reference describing the most relevant techniques along
with their own approach.
46 6. GLOBAL 2D SHAPE INTERPOLATION
(c) symmetry—Can we make it possible that the vertex paths for interpolation from shape A to
shape B are the same as from B to A?
Recently [Baxter2008] gave a formulation of rigid shape interpolation using normal equations,
presenting the algorithms that meet these requirements.
is section presents a mathematical framework for the above homotopic approaches using
affine maps. We start with analyzing the local affine map directly, and introduce a new local ho-
motopy between the affine maps. We also present the algorithms to achieve global interpolation,
each of which minimizes an energy function with user-specified constraints. We also discuss how
the algorithms meet the above practical requirements. We demonstrate that our mathematical
framework gives a comprehensive understanding of rigid interpolation/deformation approaches.
In particular we illustrate the power of this framework with the animation examples obtained by
several different constraint functions.
6.2 FORMULATION
We now describe the source and target shapes which are compatibly triangulated more explicitly.
To make it, we denote the source shape made of triangles by P D .p1 ; : : : ; pn /; .pi 2 R2 /, where
each pi is a triangle vertex. Similarly we denote the target shape by Q D .q1 ; : : : ; qn /; .qi 2 R2 /,
which are the triangle vertices. e triangles are denoted by 1 ; : : : ; m , where i D fi1 ; i2 ; i3 g is
the set of the indices of the three vertices. Hence, the i -th source (respectively, target) triangle
consists of pi1 ; pi2 , and pi3 (respectively, qi1 ; qi2 , and qi3 ) for i D fi1 ; i2 ; i3 g (Figure 6.2).
p3
q4
τ3 q5
p4 p2 τ2
τ3 q3
τ2 τ1
τ1 q1 q2
p1
p5
source target
Figure 6.2: Local affine maps for triangle meshes: 1 D f1; 2; 5g, 2 D f2; 4; 5g, 3 D f2; 3; 4g.
rough Sections 5.1 and 6.3, our local and global interpolation techniques are summarized
as follows:
• (from triangle to affine transformation) For each pair of the source and the target triangles
corresponding to i , we initially get the affine map AOi 2 Aff.2/ that maps the initial triangle
to the target triangle.
6.3. ERROR FUNCTION FOR GLOBAL INTERPOLATION 47
• (local interpolation of linear part) We then construct a homotopy between the 2 2 identity
matrix and the linear part Ai of AOi (i.e., from I2 2 GLC .2/ to Ai 2 GLC .2/). e homo-
topy is parametrized by t , with 0 t 1. e collection fAOi j i D 1; 2; : : : ; mg of affine
maps AOi ’s can be considered as a piecewise affine transformation from P to Q (see its precise
definition in Section 6.3).
• (global interpolation via error function) We next construct a global homotopy between the
inclusion map P ,! R2 and the piecewise affine transformation from P to Q, which will
be denoted by fBO i .t / 2 Aff.2/ j i D 1; 2; : : : ; mg with t 2 R in Section 6.3. It is obtained
by minimizing a global error function regarding the linear part Bi (of BO i ) and Ai along with
the user-specified constraint function.
We have been explained the first and the second procedure. We now explain the final procedure.
Figure 6.4: From local to global: from one triangle to a triangulated shape.
• a constraint function
C W .R2 /n ! R0 :
e local error function Ei is positive definite and quadratic with respect to the entries of the
first factor M.2; R/. Intuitively, it measures how different the given two local transformations
are. e constraint C is also positive definite and quadratic. It controls the global translation.
Furthermore, with this function, we can incorporate various constraints on the vertex path as we
will describe later.
If we are given local error functions for each triangle i ; .1 i m/ and a constraint func-
tion, we combine them into a single global error function
m
X
E t .B/ WD Ei .Bi .t/; Ai .t // C C.v1 .t/; : : : ; vn .t//;
iD1
where we regard B.t / (or more precisely, the entries of Bi .t/ which are linear combinations of
vk .t /’s) as indeterminants to be solved. For each t , the minimizer of E t may have positive dimen-
sion in general, however, one can modify the constraint function C such that it becomes a single
point, as we see by concrete examples later. e single minimizer B.t/ is the piecewise affine map
that we take as a global interpolation method.
6.4. EXAMPLES OF LOCAL ERROR FUNCTIONS 49
Efficiency of finding the minimizer: We show that finding the minimizer of a global error func-
tion is efficient enough. Since the global error function is a positive definite quadratic form, it can
be written as a function of v .t/ D .v1 .t /x ; v1 .t /y ; : : : ; vn .t /x ; vn .t/y /T 2 R2n as
for some .2n 2n/-symmetric positive definite matrix G , u.t/ 2 R2n , and c 2 R. We see that
v .t/ D 12 G 1 u.t / is the minimizer. Note that G is time-independent and we need to compute
G 1 just once for all frames (see [Alexa2000]).
It produces a fairly satisfactory global transformation when the constraint function is very simple
and rotation is “homogeneous.” However, this method fails if (a) we want to put some constraints
(see Figure 6.5), or (b) the expected rotation angles vary beyond 2 from triangles to triangles
(see Figure 6.6).
In order to achieve more flexibility of shape deformation and easier manipulation by a user,
[Igarashi2009] and [Igarashi2005] considered error functions which are invariant under similarity
50 6. GLOBAL 2D SHAPE INTERPOLATION
Figure 6.5: An example of global interpolation obtained by EiF with the constraints on the vertices
loci indicated by the curves. In the intermediate frames around t D 0:3 and t D 0:6, extreme shrink
and flip of triangles are observed.
Figure 6.6: An example of global interpolation obtained by EiF . To obtain smooth interpolation
between the leftmost and rightmost figures, local transformations should deal with rotation angles
larger than , but EiF fails to make it.
transformation, i.e., rotation and scale. [Werman1995] has proposed an error function E S , which
is slightly different from them. It measures how different the two sets of points fAi .t /pk g and
fBi .t /pk g are up to similarity transformation. In [Igarashi2009] and [Igarashi2005] they used
a constraint function which forces the vertex loci to be on the specified curves. We will see the
detailed construction later.
For the purpose of finding a best-matching global transformation with given local trans-
formations, it is better to use a metric in the space of transformations, rather than in the space
of points. e error function E R , which is a slight modification of E S , measures how different
Ai .t/ and Bi .t / are as linear maps up to rotation and scale. e above function E R has a closed
form
2
B AT C 2 det B AT
min ksRı A Bk2F D kBk2F F
: (6.5)
s;ı2R kAk2F
6.4. EXAMPLES OF LOCAL ERROR FUNCTIONS 51
A proof of formula (6.5) is given in Section A.3. is is positive definite quadratic with respect
to the entries of B . Since it is invariant under similarity transformation, it avoids the flaws of EiF
in the cases of (a) and (b); compare Figure 6.7 with Figure 6.5, and Figure 6.8 with Figure 6.6,
respectively.
Figure 6.7: An example of global interpolation obtained by EiR with the same input data as Figure 6.5.
By allowing rotational and scale variance without any penalty in the error function, we can get more
flexible control of the output animation.
Figure 6.8: An example of global interpolation obtained by EiR with the same input data as Figure 6.6.
e proper rotation angles for the local triangles are automatically chosen by minimizing the global
error function.
We note that a positive linear combination of positive definite quadratic function is also
a positive definite quadratic function. is means that a linear combination of above mentioned
error functions is also an error function. is idea can be used for practical improvement. We give
three examples:
(i) In assembling local error functions, we can take weighted sum instead of ordinary sum. We
can put large weights to more important parts (triangles). For example, the more the area
of triangle is, the more important its rigidity becomes. Hence, it is reasonable to weight by
the areas of the initial triangles:
Ei Area..pi1 ; pi2 ; pi3 //Ei .i D fi1 ; i2 ; i3 g/:
52 6. GLOBAL 2D SHAPE INTERPOLATION
is was already discussed in [Xu2005] and [Baxter2008] as well.
(ii) e local error function EiR in (6.4) is employed for a general use. However, we may not
want some parts of the 2D shape to rotate or to scale (such as a face of a character). In such
cases, we can use a balanced local error function
where wi 2 Œ0; 1. If we put a large wi , the rotation and scale of the triangle i would be
suppressed. We thus believe that our framework provides more user controllability over
previous approaches.
(iii) As is shown in [Baxter2008], we can symmetrize the interpolation by symmetrizing the
error function. Let Ei .t / be a global error function for a local homotopies Ai .t/, and Ei 1 .t/
be that for Ai 1 .t/. en define a new error function by
Ei0 .t / WD Ei .t / C Ei 1 .1 t/:
is is symmetric in the sense that it is invariant under the substitution Ai Ai 1 and
t 1 t . at means that the same minimizing solution is given if we swap the initial and
the terminal polygons and reversing time.
• Some points must trace specified loci (for example, given by B-spline curves). is is realized
as follows: let uk .t / be a user-specified locus of pk with uk .0/ D pk and uk .1/ D qk . en
add the term ck jjvk .t/ uk .t /jj2 , where ck 0 is a weight.
• e directions of some edges must be fixed. is is realized by adding the term ckl jjvk .t/
vl .t / ekl .t/jj2 , where ekl .t/ 2 R2 is a user-specified vector and ckl 0 a weight. is gives
a simple way to control the global rotation.
• e barycenter must trace a specified locus uo .t/. is is realized by adding the term
P
co jj n1 nkD1 vk .t/ uo .t/jj2 , where co > 0 is a weight. is gives a simple way to control
the global translation.
Likewise we can add as many constraints as we want.
CHAPTER 7
Parametrizing 3D Positive
Affine Transformations
Next we present our 3D application based on the concepts and techniques in Chapters 3 and 4. So
let us consider how to parametrize rigid or non-rigid transformations. As we’ve learned, quater-
nion or Euler angle parametrizes rotations, and dual quaternion with axis-angle presentation
parametrizes the rigid transformation [Kavan2008]. ese parametrizations are partial: they deal
only with subsets of AffC .3/, and cannot shear and scale. [Alexa2002] tried to give a Euclidean
parametrization of AffC .3/, considering the Lie correspondence between Lie group AffC .3/ and its
Lie algebra through the matrix exponential map and logarithm. However the method is limited
for the translations with non-negative eigenvectors, while the Lie correspondence only ensures
local bijectivity.
Having in mind these approaches, in this chapter we start with giving an alternative
parametrization of AffC .3/ based on Lie theory [Kaji2013], which successfully parametrizes the
whole transformations. Next we show how to integrate the parametrization method to shape
deformation techniques as well as Poisson mesh editing [Yu2004]. It will also be demonstrated
that these approaches integrated with the parametrization method allow us runtime operations
in deforming and animating 3D objects.
O X l T 3
se.3/ WD X D jX D X 2 M.3; R/; l 2 R
0 0
is the Lie algebra for the 3-dimensional rigid transformation group SE.3/ and that sym.3/ is
the set of 3 3-symmetric matrices. We consider the 12-dimensional parameter space se.3/
sym.3/ and define the parametrization map (see Figure 7.1)
(3) × !"(3)
$
#
Aff+(3)
where exp is the matrix exponential defined by (4.1) in Section 4.1 and W M.3; R/ ! M.4; R/
is the natural embedding given by
B 0
.B/ D :
0 1
is map gives a mathematically well-defined parametrization, since it is surjective and has a
continuous inverse as we see below. While the above map is not one-to-one, we can compute
its continuous inverse explicitly, thanks to the Cartan decomposition theorem. e inverse map
is given by
(See Figure 7.1.) Note that AT A is a positive definite symmetric matrix so that its square root
matrix and its logarithm matrix are uniquely determined.
p (It is calculated by [Denman1976] and
O O
[Cheng2001], for example.) Note also that R WD A . AT A/ 1 is an element in SE.3/ and its
logarithm log.R/O is defined up to modulo 2 .
e computation by the infinite series of the matrix exponential (4.1) is very slow, and
hence, it is helpful to give an explicit formula of the matrix exponential and logarithm and a
faster algorithm. e explicit form of the matrix exponential and logarithm is given in [Kaji2016]
by mimicking the famous Rodrigues’s formula [Brockett1984] for 3D rotation matrices. See
Section A.2 for the detailed computation of (7.3)–(7.8). Let XO 2 se.3/ and RO 2 SE.3/ with
O O O O O X l O R d
exp.X / D R and log.R/ D X . We put X D and R D . en the expression
0 0 0 1
7.2. DEFORMER APPLICATIONS 55
of R and d in terms of X and l is given, with an auxiliary parameter , by
q r
2 2 2 1
D X12 C X13 C X23 D tr.X T X/; (7.3)
2
sin 1 cos 2
R D I3 C XC X ; (7.4)
2
1 cos sin 2
d D I3 C X C X l: (7.5)
2 3
Conversely, the expression of X and l in terms of R and d is given by
1 1
D cos tr.R/ ; (7.6)
2
XD R RT ; (7.7)
2 sin
1 2 sin .1 C cos / 2
l D I3 XC X d: (7.8)
2 2 2 sin
Here we have indeterminacy of cos 1 up to modulo 2 . However, if we impose continuity, we
can take one explicit choice. (An explicit code will be given in [Kaji-code].)
We also give a comment on the computation of the matrix exponential and logarithm for
the symmetric matrices appearing in (7.1). For any symmetric matrix Y 2 sym.3/, any matrix
function can be computed using diagonalization. However, we have introduced [Kaji2016] a
faster algorithm to compute the exponential based on the spectral decomposition (see [Moler2003],
for example). is is because, in most applications, we need to compute (7.2) only once as pre-
computation, while computing (7.1) many times in real-time.
3
where we consider the vertex positions v 2 R as column vectors and the matrices multiply from
the left. Considering the above formulation, we can show the following deformer applications.
56 7. PARAMETRIZING 3D POSITIVE AFFINE TRANSFORMATIONS
$
A B
AFF+(n) Matrix
SE(n) × Sym(n) log
(n) × !"(n)
decom
linear
interpolation
A’ B’
AFF+(n) Matrix
SE(n) × Sym(n) exp
(n) × !"(n)
product
Figure 7.3: e red icons show the probe-based deformer: (left ) initial positions of the probes; (right )
the target shape is deformed according to user’s manipulation of the probe icons.
Probe-based Deformer
Suppose that a target shape is given. We then assign any number of “probes” which carry trans-
form data. For example, see Figure 7.3, where the red icons mean the probes. If the probes are
transformed by the user, the target shape will accordingly be deformed. More precisely, each
probe detects the affine map AOi 2 Aff.3/ which transforms it to the current position from the
initial position. A vertex v 2 R3 on the target shape is transformed by Equation (7.9), where the
weights wi ’s are either painted manually, or computed automatically from the distance between
v and the probe location. Figure 7.4 shows another example for designing a vortex shape.
7.2. DEFORMER APPLICATIONS 57
Figure 7.4: Vortex by probe-based deformer: (left ) initial; (right ) obtained result.
Cage-based Deformer
Cage-based deformer techniques have been quite popular through recent progress found in
[Ju2005]. Suppose that a target shape is given along with a “cage” surrounding it. e cage can be
any triangulated polyhedron wrapping the target shape. We want to deform the target shape by
directly manipulating it but through the proxy cage (see Figure 7.5). Our parametrization can be
used in this framework. A tetrahedron is associated with each face triangle by adding its normal
vector (see Figure 7.6). en each face detects the affine map AOi 2 Aff.3/ which transforms the
Figure 7.5: Cage-based deformer: (left ) initialize the cage that surrounding the target; (right ) the
deformed result by user’s manipulations on the cage.
where N.i / consists of all the triangles connected to the vertex pi . jTk j is the area of k -th tri-
angle connected to pi . Bik is the piecewise linear hat function defined on the vertex. us, the
divergence defines how much of the guidance vector goes through the mesh at a given vertex. In
[Yu2004], it is pointed out that the original formulation based on (7.10) keeps the original gra-
dients g0 constant during deformation. However, the results are not pleasing, because, when we
deform a shape, its gradient could usually be changed, i.e., the triangles are transformed during
deformation. e most deformed area should then be around the edited area (near the bound-
ary), whereas the other parts far from the boundary should not be affected by the deformation so
much.
We therefore need to control the amount of transformation of each triangle. To make it,
[Yu2004] introduces the weight for each vertex, which is defined as the distance from the bound-
ary. e weight for each triangle is then defined as the mean of three weight values of its three
vertices, which is therefore used to control how much this triangle should be locally transformed.
Since the local transform applied to each triangle may be different especially near the edited area,
the original mesh will be torn apart and the triangles are not connected any more. We thus need
to solve the Poisson equation with the altered guidance vector field, because, as mentioned in
[Yu2004], solving the Poisson equation intuitively means stitching together the previously dis-
connected triangles again. is is the heart of the Poisson mesh edit and would remind us of
the deformation techniques described in Chapters 5 and 6. ese techniques employ the energy
function to be minimized in getting a desired result, while the Poisson mesh edit approaches use
the partial differential equation. Also it is noted that the energy function is introduced in solv-
ing the global constraints problem, which is specified with the target shape, whereas the Poisson
equation deals with the local constraints (user-specified local modifications).
Solving the Poisson equation for mesh editing is thereafter reduced to solving the following
linear system for unknown f :
Af D b; (7.14)
60 7. PARAMETRIZING 3D POSITIVE AFFINE TRANSFORMATIONS
where A is the discretized differential operator, and b is prescribed with the altered guidance
vector field based on the boundary conditions and the weights.
e Poisson mesh editing is easy to implement because of its linearity and no requirement to
solve any minimization equation, which is normally quite costly in computation. On one hand,
the visual quality of deformation by the Poisson mesh editing depends highly on the weights
for vertices, even if the boundary conditions are edited properly. In [Yu2004], discrete geodesic
distance with some smoothing functions is employed for the weight calculation. Unfortunately it
is not intuitive and still suffering from non-smooth weights throughout the mesh.
Figure 7.7: e handle interface: e red nodes mean to pin (fix) the edge points of the legs, whereas
the red node with coordinate axes, called “handle,” shows that the specified vertices are under affine
transform operations.
Figure 7.8: Rotation by parametrization map: (left ) e initial pose of the octopus; (right ) one of the
legs can then be rotated over 360 degrees at runtime operations.
Further Readings
We have presented several mathematical basics that give the theoretical foundation for the de-
formation/animation techniques in computer graphics. As for your more visual understanding
of this book, we would also recommend you to refer to our SIGGRAPH 2016 course notes
[Ochiai2016a] and the video assocated with it [Ochiai2016b].
e graphics topics covered in this book are, however, not exhaustive. e mathematics
employed in this book then deal only with affine transformations, quaternions, dual quaternions,
and their Lie theoretic aspects.
In the following sections, we briefly describe some more mathematical aspects that should
further be explored for better understanding of geometric objects and their deformation and an-
imation.
• Global: e set of affine maps or Poisson editing approaches well approximate deformation
and/or animation.
For global deformation, introducing a diffeomorphism (smooth bijective map whose in-
verse map is also smooth) may also give us a natural and wider framework of Lie group approaches.
We then note that the set of all diffeomorphisms for a given surface (or manifold) constitutes an
infinite-dimensional Lie group, where the multiplication is defined as composite of the diffeo-
morphisms. Unfortunately an infinite-dimensional Lie group is still difficult to understand with
the current mathematics, although many attempts have been done. For example, [Mumford2010]
gives a good introduction to this general framework, focusing on morphing between two 2D im-
ages as input.
Finally, for a more mathematical aspect of Lie groups and Lie algebras, we would like
to refer to the classical literatures: [Helgason1978] for Lie groups with differential geometry,
65
[Knapp1996] for Lie groups with representation theory, [Hochschild1965, Gorbatsevich1993],
and [Duistermaat1999] for Lie groups with structure theory. For abstract Lie algebra, we see
[Serre1992], and its representation theory with physics application is found in [Georgi1982].
ough those are a bit far from graphics applications, you can consult them to know more about
the basic ideas in Lie theory, which we believe will be quite useful for further graphics research.
APPENDIX A
Formula Derivation
In this appendix, we give a few remarks on Rodrigues formulas in Chapters 2 and 4 as well as the
energy formula in Chapter 6.
R.x/ D .u; x/ C .cos /fx .u; x/ug C .sin /.u x/; (A.1)
R.x/ D .cos /x C .1 cos /.u; x/u C .sin /.u x/; (A.2)
R.x/ D x .1 cos /fx .u; x/ug C .sin /.u x/; (A.3)
RD (A.4)
0 1
cos C .1 cos /u21 .1 cos /u1 u2 .sin /u3 .1 cos /u1 u3 C .sin /u2
@.1 cos /u1 u2 C .sin /u3 cos C .1 cos /u22 .1 cos /u2 u3 .sin /u1 A ;
.1 cos /u1 u3 .sin /u2 .1 cos /u2 u3 C .sin /u1 cos C .1 cos /u23
Here u is assumed to be a unit vector in (A.1), (A.2), (A.3) and (A.4), while u in (A.6) may not
be a unit vector. Note that u D .u1 ; u2 ; u3 / in (A.4). Also, for (A.5) and (A.7), A D AT should
2 2 2
be ‘unit’, that is, it is assumed that a12 C a13 C a23 D 1. In all the cases, u shows the direction
of the rotation axis.
For (A.6), the relation between A and u is given by Av D u v . To be more explicit,
0 1
0 u3 u2
A D @ u3 0 u1 A : (A.8)
u2 u1 0
q
2 2 2
is means that juj D a12 C a13 C a23 .
68 A. FORMULA DERIVATION
(A.1) explains the meaning as the 2D rotation of angle in the plane orthgonal to the
vector u. In a sense, (A.2) is most popular in the liturature. (A.2) is same as (2.14), and (A.5) is
same as (2.15). e direct implications among these equivalent formulas are illustrated as
en
1
X
1 Xk kX k 1 l exp.X / Y l
exp.XO / D D ;
kŠ 0 0 0 1
kD0
where we define
1
X 1 k 1
Y D X : (A.9)
kŠ
kD1
1 cos
tr.R/ D 3 C tr.X 2 / D 3 2.1 cos / D 1 C 2 cos ;
2
which is equivalent to (7.6).
By (7.4), we obtain
2 sin
R RT D X;
which is equivalent to (7.7).
A.2. RODRIGUES TYPE FORMULA FOR MOTION GROUP 69
Finally, we come to (7.5) and (7.8). What we should do is to derive
1 cos sin 2
Y D I3 C 2
XC X ; (A.10)
3
1 1 2 sin .1 C cos / 2
Y D I3 XC X : (A.11)
2 2 2 sin
We will obtain these formulas by noticing .X 2 C 2 I3 /X D O . For (A.10),
1
X X1
1 1
Y DIC X 2m 1 C X 2m C
mD1
.2m/Š mD1
.2m C 1/Š
X1 1
X
1 1
DIC . 2 /m 1 X C . 2 /m 1
X2
mD1
.2m/Š mD1
.2m C 1/Š
1 cos sin 2
DIC XC X :
2 3
An alternative explanation of (A.10) will be the following. We assume that Y is of the form
Y D I3 C a1 X C a2 X 2 . We compute XY in two ways:
X Y D X C a1 X 2 C a2 X 3 D .1 a2 2 /X C a1 X 2 ;
1
X 1 k sin 1 cos 2
XY D X D exp.X / I D XC X :
kŠ 2
kD1
By comparing the coefficients, we obtain 1 a2 2 D .sin /= and a1 D .1 cos /= 2 , which
proves (A.10).
For (A.11), we put Y D I3 C a1 X C a2 X 2 and Y 1 D I3 C b1 X C b2 X 2 , and write the
equation
I3 D Y Y 1 D .I3 C a1 X C a2 X 2 /.I3 C b1 X C b2 X 2 /
D I3 C .a1 C b1 /X C .a2 C b2 C a1 b1 /X 2 C .a1 b2 C a2 b1 /X 3 C a2 b2 X 4
D I3 C .a1 C b1 /X C .a2 C b2 C a1 b1 /X 2 .a1 b2 C a2 b1 / 2 X a2 b2 2 X 2 :
kB AT k2F C 2 det.B AT /
min ksRı A Bk2F D kBk2F :
s;ı2R kAk2F
First note that the set of all matrices of the form sRı is a vector space of skew-symmetric matrices:
Here we denote
1 0 0 1
I D ; J D :
0 1 1 0
So the left-hand side of the problem is rewritten as
kAk2F D tr.AAT /;
k.xI C yJ /A Bk2F
D tr..xA C yJA B/.xAT C yAT J T B T //
D tr.x 2 AAT C xyAAT J C xyJAAT C y 2 JAAT J T
xAB T xBAT yJAB T yBAT J T C BB T /
(*)
D tr.x 2 AAT C y 2 JAAT J T 2xBAT 2yBAT J T C BB T /
D x 2 kAk2F C y 2 kJAk2F 2x tr.BAT / 2y tr.BAT J T / C kBk2F :
S T D S if S D AAT ; (A.12)
tr.SJ / D 0 if S T D S; (A.13)
tr.PQT / D tr.QP T /: (A.14)
A.3. PROOF OF THE ENERGY FORMULA 71
Now we will use
k.xI C yJ /A Bk2F
D x 2 kAk2F C y 2 kAk2F 2x tr.BAT / 2y tr.BAT J T / C kBk2F
2 2 tr.BAT / 2 2 tr.BAT J T /
D kAkF x 2x C kAkF y 2y C kBk2F
kAk2F kAk2F
2 2
tr.BAT / .tr.BAT //2 tr.BAT J T /
D kAk2F x C kAk 2
F y
kAk2F kAk2F kAk2F
.tr.BAT J T //2
C kBk2F
kAk2F
kB AT k2F C 2 det.B AT /
D kBk2F
kAk2F
2 2
tr.BAT / tr.BAT J T /
C kAk2F x C kAk 2
F y :
kAk2F kAk2F
kB AT k2F C 2 det.B AT /
kBk2F ;
kAk2F
[Kavan2008] L. Kavan, S. Collins, J. Zara, and C. O’Sullivan, Geometric skinning with approx-
imate dual quaternion blending, ACM Transactions on Graphics (TOG), 27(4), Article 105,
2008. DOI: 10.1145/1409625.1409627. 17, 36, 53
[Klein1926] F. Klein, Vorlesungen über die Entwicklung der Mathematik im 19. Jahrhundert I,
Springer-Verlag, 1926. See also, Development of Mathematics in the 19th century, translated
by M. Ackerman, Math. Sci. Press, 1979. 25
[Kobilarov2009] M. Kobilarov, K. Crane, and M. Desbrun, Lie group integrators for animation
and control of vehicles, ACM Transactions on Graphics (TOG), 28(6), Article 16, 2009. DOI:
10.1145/1516522.1516527. 64
[Lewis2000] J.P. Lewis, M. Cordner, and N. Fong, Pose space deformation: A unified approach
to shape interpolation and skeleton-driven deformation, SIGGRAPH Proc. of the 27th An-
nual Conference on Computer Graphics and Interactive Techniques, pages 165–172, 2000. DOI:
10.1145/344779.344862. 29
76 BIBLIOGRAPHY
[Matsuda2004] G. Matsuda, S. Kaji, and H. Ochiai, Anti-commutative dual 2d rigid transfor-
mation, Mathematical Progress in Expressive Image Synthesis I, Springer-Verlag, 2014. DOI:
10.1007/978-4-431-55007-5_17. 19
[Moler2003] C. Moler and C. van Loan, Nineteen dubious ways to compute the exponen-
tial of a matrix, twenty-five years later, SIAM Review, 45(1), pages 3–49, 2003. DOI:
10.1137/S00361445024180. 55
[Nieto2013] J.R. Nieto and A. Susín, Cage based deformations: A survey, Deformation Models,
M.G. Hidalgo, A.M. Torres and Javier Varona Gómez (Eds.) Lecture Notes in Computa-
tional Vision and Biomechanics 7, 2013. DOI: 10.1007/978-94-007-5446-1_3. 29
[Ochiai2016b] H. Ochiai, K. Anjyo and A. Kimura, Mathematical basics for computer graphics,
2016. https://youtu.be/I2Y-pJYmu9A. 63
[Pérez2003] P. Pérez, M. Gangnet, and A. Blake, Poisson image editing, ACM Transactions on
Graphics (TOG), 22(3), pages 313–318, 2003. DOI: 10.1145/882262.882269. 58
[Serre1992] Jean-Pierre Serre, Lie algebras and lie groups. 1964 lectures given at Harvard Uni-
versity, 2nd ed., Lecture Notes in Mathematics, 1500, Springer-Verlag, Berlin, 1992. 35, 65
[Shoemake1994a] K. Shoemake, Fiber bundle twist reduction, Graphics Gems IV, Academic
Press, pages 230–236, 1994. DOI: 10.1016/B978-0-12-336156-1.50031-8. 63
[Takahashi2009] S. Takahashi, K. Yoshida, T. Kwon, K.H. Lee, J. Lee, and S.Y. Shin, Spectral-
based group formation control, Computer Graphics Forum, 28(2), pages 639–648. 2009. DOI:
10.1111/j.1467-8659.2009.01404.x. 64
BIBLIOGRAPHY 77
[Tournier2009] M. Tournier, X. Wu, N. Courty, E. Amaud, and L. Revéret, Motion compres-
sion using principal geodesics analysis, Computer Graphics Forum, 28(2), pages 355–364,
2009. DOI: 10.1111/j.1467-8659.2009.01375.x. 29
[Tournier2012] M. Tournier and L. Revéret, Principal geodesic dynamics, SCA Proc. of the ACM
SIGGRAPH/Eurographics Symposium on Computer Animation, pages 235–244, 2012. DOI:
10.2312/SCA/SCA12/235-244. 64
[Vince2011] J. Vince, Quaternions for Computer Graphics, Springer-Verlag, 2011. DOI:
10.1007/978-0-85729-760-0. 13
[Watt1992] A. Watt and M. Watt, Advanced Animation and Rendering Techniques, Addison
Wesley, 1992. 13
[Werman1995] M. Werman and D. Weishall, Similarity and affine invariant distances be-
tween 2d point sets, IEEE Transactions on Pattern Analysis and Machine Intelligence, 17(18),
pages 810–814, 1995. DOI: 10.1109/34.400572. 50
[Xu2005] D. Xu, H. Zhang, Q. Wang, and H. Bao, Poisson shape interpolation, SPM
Proc. of the ACM Symposium on Solid and Physical Modeling, pages 267–274, 2005. DOI:
10.1145/1060244.1060274. 52
[Yu2004] Y. Yu, K. Zhou, D. Xu, X. Shi, H. Bao, B. Guo, and H.-Y. Shum, Mesh editing with
poisson-based gradient field manipulation, ACM Transactions on Graphics (TOG)—Proc. of
ACM SIGGRAPH, 23(3), pages 644–651, 2004. DOI: 10.1145/1015706.1015774. 53, 58,
59, 60
[Zayer2005] R. Zayer, C. Rssl, Z. Karni, and H.-P. Seidel, Harmonic guidance for surface de-
formation, Computer Graphics Forum, 24(3), pages 601–609, 2005. DOI: 10.1111/j.1467-
8659.2005.00885.x. 58, 60