Graphics Reference
In-Depth Information
time in graphics: some sort of translation, and an associated linear transformation.
The problem is that the two triangles each lie in a
plane,
and there are infinitely
many affine transformations taking one triangle (and its plane) to the other (and
its plane): The off-plane part of the transformation is completely unconstrained.
Inline Exercise 25.14:
Examine a 2D analog: Find an affine transformation
T
from
R
2
to
R
2
that takes the line segment from
(
0, 0
)
to
(
1, 0
)
on the
x
-axis
into the line segment from
(
0, 1
)
to
(
0, 2
)
on the
y
-axis. Now compose your
transformation with the transformation
S
:
R
2
R
2
:(
x
,
y
)
→
→
(
x
+
3
y
,
y
)
,
that is, form
R
=
T
◦
S
, and show that
R
transforms the segments exactly the
same way that
T
did.
We therefore add a new vertex
v
4
that's offset one unit along the normal to the
triangle defined by
v
1
,
v
2
, and
v
3
,
(
v
2
−
v
1
)
(
v
3
−
v
1
)
×
v
4
=
v
1
+
,
(25.28)
(
v
2
−
v
1
)
(
v
3
−
v
1
)
×
and a corresponding new vertex to
M
. Now there's a
unique
affine transformation
taking
v
1
,
...
...
,
v
4
. Writing the transformation as a combination of a
translation with a linear map, we see that the linear map
Q
must send the vectors
V
i
−
,
v
4
to
v
1
,
V
1
to
v
i
−
v
1
for
i
=
2, 3, 4. Writing
V
=
v
2
−
v
1
and
v
1
v
3
−
v
1
v
4
−
(25.29)
V
=
v
2
−
v
1
,
v
1
v
3
−
v
1
v
4
−
(25.30)
we have
S
=
VV
−
1
; we can thus compute the translation
d
as
d
=
v
1
−
S
(
v
1
−
O
)
,
(25.31)
where
O
is the origin of 3-space.
Notice that we have added one new vertex to the original and deformed meshes
for each triangle
. So our starting point becomes
• An original mesh
M
, with an enlarged vertex set that we'll still denote with
the same symbols,
, and with each “triangle” associated to
four
vertices
• A deformed mesh
M
, with a corresponding enlarged vertex set
• A second mesh,
M
, with an enlarged vertex set
{
v
i
}
w
i
}
• A correspondence
C
between triangles of
M
and
M
• For each triangle
t
of
M
, an affine transformation
v
{
S
t
v
+
d
t
that trans-
forms the four vertices of
t
to the four vertices of
t
in
M
→
It's convenient to think of the triangle
t
in
M
as represented by its index in
M
's
triangle table so that
S
t
and
d
t
are indexed by integers.
Our goal is to find a collection of transformations of the
target
mesh
M
that
are “as much like” those of
M
as possible; writing the target transformation for a
target triangle
s
in the form
T
s
w
+
d
s
,
w
→
(25.32)
our goal is to have
T
s
and
S
t
be as similar as possible whenever
(
t
,
s
)
C
. Notice
that we've ignored the translations of the source mesh here, and concentrated on
∈