FROM TRIANGULATION TO SIMPLEX MESH AND VICE-VERSA
A Simple and Efficient Conversion
Francisco J. Galdames
1,3
and Fabrice Jaillet
2,3
1
Department of Electrical Engineering, Universidad de Chile, Av. Tupper 2007, Santiago, Chile
2
Universit
´
e de Lyon, IUT Lyon 1, Computer Science Department, F-01000, Lyon, France
3
Universit
´
e de Lyon, CNRS, Universit
´
e Lyon 1, LIRIS, SAARA team, UMR5205, F-69622, Lyon, France
Keywords:
Simplex Mesh, Triangle Mesh, Optimized Surface Interpolation, Surface Mesh Conversion.
Abstract:
We propose an accurate method to convert from a triangular mesh model to a simplex mesh and vice-versa. For
this, we are taking advantage of the fact that they are topologically duals, turning it into a natural swap between
these two models. Unfortunately, they are not geometrically equivalents, leading to loss of information and
to geometry deterioration when performing the conversion. Therefore, optimal positions of the vertices in
the dual mesh have to be found while avoiding shape degradation. An accurate and effective transformation
technique is described in this paper, where we present a direct method to perform an appropriate interpolation
of a simplex mesh to obtain its dual, and/or vice-versa. Our method is based on the distance minimization
between the local tangent planes of the mesh and vertices of each face.
1 INTRODUCTION
Deformable model techniques are widely used in
image segmentation tasks. Among these models,
simplex meshes are valuable candidates (Delingette,
1999), for their favorable characteristics in this type
of modeling, as its convenient way to model inter-
nal forces. With this type of meshes, as with trian-
gulations, any topology can be described. Triangu-
lations are meshes of triangles in which, if they are
manifolds, each triangle has three neighboring trian-
gles, while simplex meshes are meshes of polygons
in which each vertex has three neighboring vertices.
Simplex meshes and triangulations are topologically
duals (Delingette, 1999), and this allows us to natu-
rally obtain a simplex mesh by applying a dual oper-
ation to the triangulation, and vice-versa. Moreover,
there are some tasks for which simplex meshes are
not suitable, and thus triangulated meshes are more
adapted. Examples of these applications are: genera-
tion of volumetric meshes, rendering and calculation
of area.
Currently, the most common way to perform con-
versions between triangulations and simplex meshes
is to determine the set of vertices for the final mesh
as the gravity center of each face of the initial
mesh (e.g. (The Insight Segmentation and Registra-
tion Toolkit (ITK), 2011)). This technique is fast, but
unfortunately in this case, mesh smoothing is gener-
ally high; original shape (curvature) and volume is not
properly respected. In (De Putter et al., 2006), an it-
erative curvature correction algorithm for the dual tri-
angulation of a two-simplex mesh is proposed. Their
solution provides optimal error distribution between
the two dual surfaces while preserving the geometry
of the mesh, but at the price of an iterative global min-
imization over the whole meshes.
In this paper, a new technique is presented, achiev-
ing reasonable computation cost and minimal loss of
geometric information. From a geometric point of
view, the problem can be reduced to finding an in-
terpolation of the center of each face, and to build
the dual mesh accordingly to these points. We pro-
pose to use a geometric interpolation, based on the
distance to the tangent planes of the vertices of each
face. A similar measure has been successfully used
in (Ronfard and Rossignac, 1996) to perform trian-
gular mesh simplifications. Another equivalent mea-
sure has been employed, using this time a summation
to obtain a quadratic error in (Garland and Heckbert,
1997; Heckbert and Garland, 1999). In a more recent
work, a method for refining triangulations has been
developed (Yang, 2005) using a similar measure. It
is worth pointing out that our global objective is to
perform a transformation between meshes, and not to
refine them. However, we mainly got inspiration from
151
J. Galdames F. and Jaillet F..
FROM TRIANGULATION TO SIMPLEX MESH AND VICE-VERSA - A Simple and Efficient Conversion.
DOI: 10.5220/0003851801510156
In Proceedings of the International Conference on Computer Graphics Theory and Applications (GRAPP-2012), pages 151-156
ISBN: 978-989-8565-02-0
Copyright
c
2012 SCITEPRESS (Science and Technology Publications, Lda.)
this last work.
The paper is organized as follows. In section 2,
we present essential background on simplex meshes,
their characteristics and relationship with triangula-
tions. The main part concerning the interpolation
method used to find the dual mesh is explained in sec-
tion 3. Application of this method to swap between
meshes is shown in sections 4 and 5, where details
can be found for each swap direction. Finally, some
results are exhibited in section 6, followed by conclu-
sions in 7.
2 TRIANGULATION VS.
SIMPLEX MESH
A simplex mesh can be seen as the topological dual
of a triangulation, each vertex of the simplex mesh
corresponding to a triangle in the dual triangulation
(Fig. 1). However, simplex meshes and triangulations
are not geometrically duals. Their geometry is de-
termined by the coordinates of their vertices; never-
theless, the number of vertices is different between a
simplex meshe V
S
and a triangulation V
T
. The Euler’s
characteristic for a triangulation without holes and its
dual simplex mesh states:
V
T
V
S
2
= 2(1 g), (1)
where g is the genus of the mesh. As the sets of coor-
dinates have different sizes for a triangulation and its
dual simplex mesh (different number of vertices), no
homeomorphism can be constructed between them.



Figure 1: Simplex meshes and triangulations are topolog-
ical but not geometrical duals. White dots: triangulation
vertices; Black dots: simplex mesh vertices. A vertex of the
simplex mesh p
i
and its three neighbors p
N1
, p
N2
, p
N3
are
shown.
Simplex meshes can be used to efficiently im-
plement segmentation methods based on deformable
models. Each vertex of a simplex mesh has three
neighbors p
N1(i)
, p
N2(i)
, p
N3(i)
(Fig. 1); between them,
a restricted number of entities is defined, the simplex
angle and the metric parameters (Delingette, 1999).
The mesh deformation can be controlled by using
these entities.
To perform transformations in any direction be-
tween these two types of dual meshes, we have to find
an associated vertex q
u
of the dual mesh M
2
for each
face f
u
of the initial mesh M
1
. When dealing with
triangulations, faces are triangles; and conversely for
simplex meshes, faces are polygons whose vertices
are generally not coplanar. The resulting mesh M
2
should have a regular shape and preserve the geome-
try defined by M
1
, what is far from being straightfor-
ward. For trying to maintain the geometry, we can im-
pose that q
u
remains close to the tangent planes π
i
of
each vertex p
i
defining the face f
u
. Constraining M
2
to have a regular shape, can be achieved by choosing
q
u
close to the center of the face f
u
, i.e. minimize the
distance between q
u
and all p
i
. Therefore, we must
minimize the distance between a point q
u
and a set of
points and planes. A method to achieve the aforemen-
tioned goal is explained in the next section.
3 INTERPOLATION BASED ON
TANGENT PLANES
The equation of a plane can be denoted as A · p = 0,
where A = [a, b,c,d] and p = [x
p
,y
p
,z
p
,1]
T
is a point
lying on this plane. The coefficients a,b,c are the
components of the unit vector
N normal to the plane,
accordingly a
2
+ b
2
+ c
2
= 1, and d =
N · p. For q
an arbitrary point in the space,
|
A · q
|
is the distance to
the plane.
Considering now a set of planes π
i
represented
by A
i
· p = 0 (i = 1,... , L), the distance between
any point q = [x,y, z, 1]
T
and each plane π
i
is
|
A
i
· q
|
.
On the other hand, consider a set of points p
j
( j =
1,...,M). If we want to find the point q minimizing
its distance to planes π
i
and points p
j
, the function to
be considered follows:
D(q) =
L
i=1
α
i
|
A
i
· q
|
2
+
M
j=1
β
j
q p
j
2
(2)
where α
i
and β
j
are positive weights for the distance
to the planes (in order to respect geometry and cur-
vature) and points (controlling shape regularity), re-
spectively. Equation (2) can be rewritten in matrix
form as:
D(q) = q
T
Qq (3)
where
Q =
L
i=1
α
i
A
T
i
A
i
+
M
j=1
β
j
Q
j
(4)
GRAPP 2012 - International Conference on Computer Graphics Theory and Applications
152
and
Q
j
=
1 0 0 x
j
0 1 0 y
j
0 0 1 z
j
x
j
y
j
z
j
x
2
j
+ y
2
j
+ z
2
j
(5)
Since Q
j
and A
T
i
A
i
are symmetric matrices, then
Q is also symmetric and can be written as:
Q =
q
11
q
12
q
13
q
14
q
12
q
22
q
23
q
24
q
13
q
23
q
33
q
34
q
14
q
24
q
34
q
44
(6)
To minimize the quadratic form of eq. (3), the par-
tial derivatives of D(q) are used:
D(q)
x
= 0,
D(q)
y
=
0,
D(q)
z
= 0. This system of equations can be rewrit-
ten in a matrix form as:
q
11
q
12
q
13
q
14
q
12
q
22
q
23
q
24
q
13
q
23
q
33
q
34
0 0 0 1
x
y
z
1
=
0
0
0
1
(7)
Finally, the solution of eq. (7) follows:
x
y
z
=
q
11
q
12
q
13
q
12
q
12
q
23
q
13
q
23
q
33
1
q
14
q
24
q
34
(8)
where q = [x,y,z]
T
. This system always has a unique
solution (i.e. the matrix is invertible) because function
(2) is strictly convex and therefore has no more than
one minimum.
3.1 Weights Calculation
The solution of equation (2) can be understood as an
affine combination of the generalized intersection of
all planes π
i
(first term) and the average of all points
p
j
(second term). This affine combination is con-
trolled by the weights α
i
and β
i
. For example, let’s
consider points p
1
, p
2
and planes π
1
,π
2
as shown on
Figure 2. Planes intersect at point p
α
, and the aver-
age of the points (for β
i
= β) is p
β
. The weights α
i
should reflect the importance of each plane to the in-
terpolation; and this importance will be estimated in
a different way for triangulations or simplex meshes,
as it will be detailed in the next sections.
The weights β
i
can be calculated using a similar
method to the one used for mesh refinement in (Yang,
2005). We are looking for an interpolated point q at
the center of each face. Assuming that L vertices p
i
define a face, and
N
i
are the unit normal vectors to the
mesh at p
i
, then we can estimate the position for q as:
¯q = c
u
+ w
L
i=1
((p
i
c
u
) ·
N
i
)
N
i
(9)
π
1
π
2
p
1
p
2
p
α
p
β
Figure 2: Solution of equation (2) as the affine combination
of the generalized intersection of planes π
i
(p
α
) and the av-
erage of all points p
i
(p
β
, here for β
i
= β).
where w is a free positive parameter controlling the
smoothness of the interpolation, and c
u
is the average
position of the vertices p
i
. Replacing q by its estimate
¯q = [ ¯x, ¯y, ¯z]
T
in eq. (7), it follows:
q
11
q
12
q
13
q
14
q
12
q
22
q
23
q
24
q
13
q
23
q
33
q
34
0 0 0 1
¯x
¯y
¯z
1
=
δ
x
δ
y
δ
z
1
, (10)
Now, the weights β
i
that minimize the residues δ
should be found, such that ¯q approximates the solu-
tion of equation (10) for those β
i
. Because q should
lie close to the face center, the same weight can be
assigned to all points, i.e. β
i
= β. Using the original
planes to express the residues δ, it follows:
δ
x
=
L
i=1
α
i
a
i
(A
i
· ¯q) + β
L ¯x
L
i=1
x
i
!
δ
y
=
L
i=1
α
i
b
i
(A
i
· ¯q) + β
L ¯y
L
i=1
y
i
!
δ
z
=
L
i=1
α
i
c
i
(A
i
· ¯q) + β
L¯z
L
i=1
z
i
!
(11)
Then, finding the weight β can be achieved by
minimizing δ
2
x
+ δ
2
y
+ δ
2
z
. The solution of (δ
2
x
+ δ
2
y
+
δ
2
z
)/∂β = 0 leads to:
β =
T B
B
2
(12)
where:
T =
L
i=1
α
i
(A
i
· ¯q)
N
i
, B =
L
i=1
(p
i
) L ¯q (13)
To avoid a negative or zero value of β, and to keep
a regular surface, β = min(max(T B/B
2
,0.1),2)
4 FROM TRIANGULATION TO
SIMPLEX SURFACE MESH
In this section, we will see the first case, i.e. convert-
ing a triangulation into a simplex surface mesh. In
this case, an appropriate vertex q
u
on the new simplex
FROM TRIANGULATION TO SIMPLEX MESH AND VICE-VERSA - A Simple and Efficient Conversion
153
mesh must be computed for each triangular face t
u
.
Then, we need information for each triangle t
u
about
the curvature of the mesh. Let us consider the tangent
planes to the vertices p
i
(i = 1,2,3) composing tri-
angle t
u
(Fig. 3(a)); these planes π
i
can be written as
A
i
· p = 0 as defined previously. The normal vectors
that define these planes can be calculated as:
N
i
=
L
i
k=1
φ
k
N
k
L
i
k=1
φ
k
N
k
, (14)
where
N
k
(k = 1,...,L
i
) are the normals of the trian-
gles t
k
to which the vertex p
i
belongs, and φ
k
is the
angle of the triangle t
k
at vertex p
i
(Fig. 3(a)).
To approximate the surface, the distance between
the new vertex q
u
and planes π
i
is minimized. Again,
q
u
should not lie too far from the center of triangle t
u
to preserve a regular shape, therefore q
u
should mini-
mize its distance to vertices p
i
. The direct minimiza-
tion of eq. (2) will provide us with an appropriate q
u
.
(a)
f
u
p
2
p
3
p
4
π
1
π
2
π
3
π
4
π
5
p
1
p
5
(b)
Figure 3: (a) Scheme of triangle t
u
, planes and vertices used
to find vertex q
u
of the dual simplex mesh. (b) Scheme of
face f
u
, planes and vertices used to find vertex q
u
of the dual
triangulation.
Each weight α
i
computation is based on the area a
i
corresponding to the sum of the areas of all triangles
t
k
sharing p
i
(Fig. 3(a)):
α
i
=
a
i
3
j=1
a
j
. (15)
This way, the distance to each plane is weighted
according to the area of triangles that were used to
calculate it. The weights β
i
are calculated with equa-
tion (12).
5 FROM SIMPLEX TO
TRIANGULATION SURFACE
MESH
In this section, we are dealing now with the converse
case. A vertex q
u
of the triangulation must be calcu-
lated for each face f
u
of the simplex mesh. However,
faces of a simplex mesh do not have a fixed num-
ber of vertices p
i
(i = 1, . ..,N
u
), and moreover they
are generally not coplanar. The distance between q
u
and the planes π
i
tangent to the vertices p
i
, is mini-
mized to maintain the geometry of the mesh. These
planes are defined by the vertices p
i
and the nor-
mal vector at each vertex. In a simplex mesh, nor-
mals are defined by the plane containing the three
neighbors p
N1(i)
, p
N2(i)
, p
N3(i)
of the considered ver-
tex p
i
(Delingette, 1999). As in the inverse case, q
u
should lie close to the center of the face f
u
to preserve
a regular shape. Figure 3(b) illustrates these planes
and vertices. As previously, eq. (2) can be used to
calculate q
u
by minimizing the distance to planes π
i
and vertices p
i
.
The surface of the circle defined by the neighbors
of each vertex p
i
is a good estimation of the impor-
tance the plane π
i
has within the mesh, therefore its
radius r
i
is used to calculate the weights α
i
. It fol-
lows:
α
i
=
r
2
i
N
u
j=1
r
2
j
(16)
Again, in this case, weights β
i
are calculated with
equation (12).
6 RESULTS
To measure the quality of the transformations in
both directions, the set of successive transformations
(T
1
S
1
T
2
··· T
k
S
k
T
k+1
···
T
N
S
N
) is performed, where T
k
is a triangulation
and S
k
a simplex mesh, with (k = 1,...,N). It is ob-
vious that such back and forth conversion will never
be required by any application, but successive trans-
formations magnify, and thus pointing out, incorrect
behaviors of a technique.
The proposed technique has been compared to the
most commonly used at this time, i.e. using the Cen-
ter of Mass of each face to compute the corresponding
vertex of the dual mesh (Delingette, 1999). Since all
meshes T
k
and S
k
have respectively the same number
of vertices, we have considered that the most appro-
priate measure was a simple vertex-to-vertex distance
computation after each transformation cycle. This
way, each triangulation is compared at each step to the
initial triangulation; and correspondingly, each sim-
plex meshes is considered accordingly to the first sim-
plex mesh obtained.
Figure 4 shows the distance graph measured
for the surface of cerebral ventricles (1360 ver-
tices/simplex faces, 2728 triangles/simplex vertices),
for 150 iterations. The vertex-to-vertex mean dis-
tances are expressed as a percentage of the bounding
GRAPP 2012 - International Conference on Computer Graphics Theory and Applications
154
Table 1: Hausdorff distances and computational time.
Center Distance Gain
of Mass to Planes [%]
min 0.0 0.0 0.0
Block max 0.019153 0.014321 25.23
Mesh mean 0.002397 0.001820 24.07
time [ms] 165.219 6330.415 -3731.53
min 0.0 0.0 0.0
Horse max 0.004596 0.003873 15.74
Mesh mean 0.000126 0.000047 62.50
time [ms] 3718.78 116221.5 -3025.26
min 0.0 0.0 0.0
Bunny max 0.003321 0.002761 16.85
Mesh mean 0.000220 0.000096 56.36
time [ms] 2734.51 86895.5 -3077.74
box diagonal of T
1
or S
1
, respectively. Curve 4(a)
shows results using the Center of Mass technique,
while 4(b) draws results with our technique. If we
compare the results for a set of meshes, the Center of
Mass technique produces high degeneration in some
parts of the mesh (Fig. 5(b), (d) and (f)), losing most
of the details present in the initial geometry. However,
using an interpolation based on the tangent planes
as presented in this article, it can be clearly seen on
Fig. 5(c), (e) and (g), that the initial geometry is much
better preserved.
Figure 4: Curves of the mean error of the successive trans-
formations of a cerebral ventricles surface (a) Transforma-
tion based on the faces center of mass. (b) Interpolation
based on tangent planes.
As a complementary result, the Hausdorff dis-
tance was measured as well between initial and
transformed meshes by using the Metro tool that
adopts a surface sampling approach (Cignoni et al.,
1998). The Block (2132 vertices, 4272 triangles;
from AIM@SHAPE), Horse (48485 vertices, 96966
triangles; from Cyberware, Inc), and Bunny (34834
vertices, 69451 triangles; from Stanford 3D Scan-
ning Repository) meshes have been considered; and
the distance was measured after a cycle of transfor-
(a)
(b) (c)
(d) (e)
(f) (g)
Figure 5: Cerebral ventricles mesh (a) after successive
transformations between simplex (lighter) mesh and trian-
gulation (darker). Left: meshes obtained using the faces’
mass centers, after (b) 5, (d) 15 and (f) 50 cycles. Right:
meshes obtained using our technique, after (c) 5, (e) 15 and
(g) 50 cycles.
mations, i.e. swapping back and forth to simplex
mesh and triangulation. Figure 6 shows the initial
meshes with coloration according to their distance to
the resulting one, and Table 1 shows the well known
ratio between measured distances and the bounding
box diagonal of the original mesh. The mean dis-
tance between two surfaces M
1
and M
2
is defined
as: Mean dist.(M
1
,M
2
) =
1
|M
1
|
R
pM
1
HD(p,M
2
)ds,
where HD(p,M) is the Hausdorff distance between
point p and surface M, and |M| its area. As it can
be guessed, in both cases, the main error is concen-
trated in high curvature areas. But, as previously seen,
the error dramatically decreases with our technique
(Fig. 6, right column).
From examining equation (2), the question of the
topological validity of the resulting mesh may arise.
The solution is an equilibrium between shape preser-
vation and mesh smoothing, that behaves properly
(i.e. the point lays inside the triangle). However, for
extreme cases like spiky meshes with high curvature
areas, some additional feature preserving process may
be required.
Table 1 also shows the computational time of each
mesh in milliseconds
1
. The computational time was
1
Developed in Python Language on AMD Athlon 62x2
Dual, 2GHz, 1Gb RAM.
FROM TRIANGULATION TO SIMPLEX MESH AND VICE-VERSA - A Simple and Efficient Conversion
155
multiplied by approximately 33 with our method. The
computational time is linear according to the number
of vertices of the mesh because our method is direct
and performed locally for each vertex. From the re-
sults we obtain, we believe it is worth paying an ex-
tra (but limited) amount of computation to drastically
improve the final quality of the dual mesh. Moreover,
the large computational time may be explained by the
fact that our implementation is carried out in an in-
terpreted language (Python). By performing a sim-
ple test of numerical computation, we have verified
that the computational time can be reduced about 400
times with a C++ implementation instead of Python.
(a) (b)
(c) (d)
(e) (f)
Figure 6: Block, Horse and Bunny meshes colored accord-
ing to the Hausdorff distance after a cycle of transforma-
tions. The blue-green-red color scale is used, where red rep-
resents the largest value .1) Left, subfigures (a), (c) and (e)
using Center of Mass. 2) Right, subfigures (b), (d) and (f)
using our method based on Distance to the tangent planes.
7 CONCLUSIONS AND
DISCUSSION
We have presented a method to carry out transforma-
tions between triangulations and simplex meshes, and
vice-versa. Compared to the ones proposed in the lit-
erature, our method is straightforward and does not
require any iteration. It is intuitively based on the in-
terpolation of the initial mesh to find the correspond-
ing vertices of the dual mesh. The interpolation is
based on a direct and local minimization of the dis-
tance to tangent planes, and vertices of each face. Our
transformation technique was compared to the most
frequently used method, which is based on placing the
dual vertices at the center of mass of the initial faces,
and the weaknesses of this latter have been illustrated.
The performance of the proposed method was mea-
sured using a vertex-to-vertex distance between both
triangulations and simplex meshes, after performing
a chain of successive transformations. Moreover, we
measured the Hausdorff distance between meshes af-
ter performing a cycle of transformations, i.e. after
carrying out a transformation to simplex mesh and
back to triangulation. The performance of our method
was more than satisfactory, providing a significant re-
duction of the error, of nearly 50%, at reasonable lin-
ear time. Thus, our method has proven to be ade-
quate to be used in any application requiring topolog-
ical mesh transformation while preserving geometry,
and without increasing complexity.
REFERENCES
Cignoni, P., Rocchini, C., and Scopigno, R. (1998). Measur-
ing error on simplified surfaces. Computer Graphics
Forum, 17(2):167–174.
De Putter, S., Vosse, F., Gerritsen, F., Laffargue, F., and
Breeuwer, M. (2006). Computational mesh generation
for vascular structures with deformable surfaces. Int.
J. of Computer Assisted Radiology and Surgery, 1:39–
49.
Delingette, H. (1999). General object reconstruction based
on simplex meshes. Int. J. of Computer Vision,
32(2):111–146.
Garland, M. and Heckbert, P. S. (1997). Surface simplifica-
tion using quadric error metrics. In ACM SIGGRAPH
proceedings, pages 209–216.
Heckbert, P. S. and Garland, M. (1999). Optimal triangu-
lation and quadric-based surface simplification. Com-
putational Geometry: Theory and Applications, 14(1-
3):49 – 65.
Ronfard, R. and Rossignac, J. (1996). Full-range approxi-
mation of triangulated polyhedra. Proc. of Eurograph-
ics, Computer Graphics Forum, 15(3):67–76.
The Insight Segmentation and Registration Toolkit (ITK)
(2011). www.itk.org. www.itk.org.
Yang, X. (2005). Surface interpolation of meshes by
geometric subdivision. Computer-Aided Design,
37(5):497–508.
GRAPP 2012 - International Conference on Computer Graphics Theory and Applications
156