danovaro.pdf

DATA STRUCTURES FOR
3D MULTI-TESSELLATIONS:
AN OVERVIEW
Emanuele Danovaro, Leila De Floriani, Paola Magillo, Enrico Puppo
Dipartimento di Informatica e Scienze dell’Informazione – Università di Genova
Via Dodecaneso, 35, 16146 Genova, ITALY
{danovaro,deflo,magillo,puppo}@disi.unige.it
Abstract
Multiresolution models support the interactive visualization of large volumetric data through selective refinement, an operation which permits
to focus resolution only on the most relevant portions of the domain,
or in the proximity of interesting field values. A 3D Multi-Tessellation
(MT) is a multiresolution model, consisting of a coarse tetrahedral mesh
at low resolution, and of a set of updates refining such a mesh, arranged
as a partial order. In this paper, we describe and compare different data
structures which permit to encode a 3D MT and to support selective
refinement.
Introduction
Several applications need analyzing and rendering volumetric scalar
fields, sampled at a set of points in the three-dimensional Euclidean
space. Examples can be found in scientific visualization, medical imaging, computed aided surgery, finite element analysis, etc. A tetrahedral
mesh having its vertices at the data points is an appropriate representation especially when the field is sampled at a set of points having an
irregular spatial distribution [Nielson, 1997].
In order to analyze volume data sets of large size and to accelerate
rendering, a multiresolution approach can be used. Multiresolution models have been widely used for describing surfaces and two-dimensional
height fields. Essentially, a multiresolution model consists of a coarse
base mesh plus a set of pre-computed refinement updates that increase
the resolution of the mesh (i.e., the density of its cells) locally. A multiresolution model encodes the steps performed by a mesh simplification
1
2
process in a compact structure, from which a virtually continuous set of
simplified meshes can be extracted.
Updates are organized in a partial order that helps applying them
in a consistent manner. On-line selective refinement, i.e., the efficient
extraction of variable-resolution meshes, is performed by traversing the
model and applying different updates among the pre-computed ones.
In [de Floriani et al., 1997], we have defined a general multiresolution model based on d-dimensional simplicial complexes, called a MultiTessellation (MT), which is both dimension- and application-independent.
Here, we consider a three-dimensional instance of such model, that we
call a three-dimensional Multi-Tessellation (3D MT), which provides a
multiresolution model for three-dimensional scalar fields based on irregular tetrahedral meshes. We have applied such a model to visualization
and analysis of unstructured volume data at different resolutions. This
paper provides an overview of data structures for a 3D MT together with
an analysis and a comparison.
First, we sketch a general data structure, which is based on the explicit
description of tetrahedra composing an MT. Such structure exhibits a
considerable overhead with respect to storing just the mesh at full resolution, but it is independent of the specific technique used to build the
model. Next, we consider two specific kinds of 3D MT, built through
the two most common techniques for incremental mesh simplification,
i.e., edge collapse and vertex insertion, and we present two compact data
structures for encoding them. Both structures support selective refinement efficiently and represent both the updates and their partial order
in an implicit way. We show that their storage cost is at least two times
lower than that of the input mesh at high resolution, and up to 22 times
lower than that of the explicit representation.
1.
Related Work
An extensive treatment of tetrahedral meshes as the basis for volume
data modeling can be found in [Nielson, 1997]. The problem of simplifying an irregular mesh has been extensively studied for triangle meshes
(see, e.g., [Garland, 1999], for a survey). A few techniques have been
proposed in the three-dimensional case for simplification of tetrahedral
meshes. The techniques proposed in [Cignoni et al., 2000a; Gross and
Staadt, 1998; Trotts et al., 1999] are based on edge collapse and just
differ in the way they control the error for producing a simplified mesh.
Hamann and Chen [1994] describe a refinement technique for an irregular mesh with a convex boundary, which performs a top-down selection
of relevant points based on curvature. Cignoni et al. [1994] describe
Data Structures for 3D Multi-Tessellations: an Overview
3
a Delaunay refinement technique based on the iterative selection of the
point with the largest error. Renze and Oliver [1996] describe a mesh
decimation algorithm based on a vertex removal from a Delaunay tetrahedral mesh. Farias et al. [2000] propose a non-incremental decimation
method based on vertex clustering built by superimposing a k-d tree to
the vertices of the mesh at full resolution.
In the literature there are several proposals for multiresolution models based on irregular triangle meshes, which are capable of supporting
selective refinement. This capability derives from organizing updates according to a partial order based on a dependency relation. Dependencies
among updates may be represented directly through a directed acyclic
graph (DAG) [de Floriani et al., 1997; Guéziec et al., 1998], or with
similar structures [Xia et al., 1997], or through forests of binary trees of
vertices [Hoppe, 1998; Luebke and Erikson, 1997], sometimes enriched
with vertex labeling [El-Sana and Varshney, 1999].
In the computer graphics and finite element literature, there is a burst
of research on nested tetrahedral meshes generated by recursive bisection of tetrahedra (see, for instance, [Lee et al., 2001; Ohlberger and
Rumpf, 1999; Rivara and Levin, 1992; Zhou et al., 1997]), or the socalled red/green tetrahedron refinement technique (see, for instance, [
Greiner and Grosso, 2000; Grosso and Greiner, 1998]). Nested tetrahedral meshes based on recursive tetrahedron bisection are used as the
domain decomposition technique for multiresolution modeling of regularly spaced volume data sets, or as the basis for scattered data approximation and interpolation [Nielson and Roxborough, 2000; Holliday and
Nielson, 2000].
Less work has been done on multiresolution tetrahedral meshes with
vertices at irregularly distributed sets of points. Existing proposals support only the extraction of meshes at uniform resolution. In [Cignoni
et al., 1994], a multilevel tetrahedral mesh representation has been defined, which encodes a pyramid of mesh approximations. Progressive
models [Gross and Staadt, 1998] encode a coarse mesh plus a linear sequence of updates refining it, and a mesh at an intermediate resolution
is obtained by truncating the sequence of refinements at some point.
The Multi-Tessellation (MT) is a general multiresolution model that
has been introduced for triangle meshes in [Puppo, 1996] and extended
to simplicial meshes in arbitrary dimensions in [de Floriani et al., 1997].
This model is independent of the dimension of the complex and of the
specific strategy used to built it. In [Cignoni et al., 2000b], a prototype
system for volume visualization is described, which supports selective
refinement on irregular data by using a 3D MT.
4
t10
t1
t11
t9
u1
t2
t7
t3
t5,t6
t4
t8
u1
u3
t5
t6
t7
t4
t8
u2
t4
u2
t10
t11
t12 t13
t9
t14 t15
t7
u3
t8
Figure 1.
A sequence of updates refining a triangle mesh (the portion of mesh
affected by each update is shaded), and the partial order depicted as a DAG: each
node represents an update, and each arc represents a dependency (labelled with the
triangles defining it).
2.
Multi-Tessellations
A Multi-Tessellation (MT) is composed of a base mesh at coarse resolution plus a set of updates that can be applied to locally refine the base
mesh. In general, an update consists of a set of cells (tetrahedra in the
3D case) to be removed from the mesh, and a second, larger, set of cells
to be inserted into the mesh to replace the removed cells (see Figure 1a).
The MT encodes a partial order among updates (see Figure 1b), which
is induced by the following dependency relation: an update u+ depends
on another update u0 + if and only if u+ removes some tetrahedron that
has been introduced by u0 + . An update can also be applied in reverse
order (i.e., undo) to locally coarsen a mesh at a high resolution. Given
a refinement update u+ , we denote by u− its inverse coarsening update.
In the context of an MT, an update u+ and its inverse u− will be represented as a single node u. The partial order among nodes must be seen
as reversed when applying inverse updates.
We say that a subset S of nodes of an MT is consistent if, for every
node u ∈ S, each node u0 such that u0 + precedes u+ is also in S. The
updates which form a consistent subset S can be applied to the base
mesh in any total order that extends the partial order, thus producing a
mesh at an intermediate Level Of Detail (LOD), that we denote with ΣS .
Many different meshes at different LODs can be obtained by performing
different subsets of the updates corresponding to nodes of the MT. The
Data Structures for 3D Multi-Tessellations: an Overview
5
edge collapse
v’’
t6
t1
e
t2
t3
v’
v
t5
t4
vertex split
Figure 2.
Edge collapse and vertex split on a tetrahedral mesh (exploded view).
mesh obtained from the base mesh by applying all updates in the MT
is the mesh at the highest resolution, that we call the reference mesh.
2.1
An Edge-based Multi-Tessellation
An edge collapse contracts an edge e ≡ v 0 v 00 to a new point v located
in the proximity of e. For instance, v may be placed at the midpoint of
e. The mesh around e is deformed by replacing vertices v 0 and v 00 with
v. As a consequence, tetrahedra containing both v 0 and v 00 collapse into
triangles (see Figure 2 from left to right). This corresponds to removing
tetrahedra incident at v 0 or v 00 , and replacing them with new tetrahedra
incident at v.
The inverse operation of an edge collapse, called a vertex split, expands
a vertex v into an edge e ≡ v 0 v 00 . The split partitions the tetrahedra
incident at v into two subsets, which are separated by a fan of triangles
incident at v. Tetrahedra of the two subsets are deformed to become
incident at v 0 and v 00 , respectively; triangles of the fan are expanded into
tetrahedra that become incident at both v 0 and v 00 (see Figure 2 from
right to left). The effect of a vertex split is uniquely defined given the
vertex v to be split, the positions of the new vertices v 0 and v 00 , and a
partition of the set of tetrahedra incident at v into two subsets.
An edge-based MT is an MT in which every update u+ is a vertex split
(and its inverse update u− is an edge collapse). Note that the nodes of an
edge-based MT are in one-to-one correspondence with the vertices that
appear in the mesh during the simplification process, with the exception
of the vertices belonging to the reference mesh. We identify each node
u with the vertex vu split by u+ , and created by u− .
6
vertex insertion
v
vertex removal
Figure 3.
Vertex insertion and removal on a tetrahedral mesh (exploded view).
2.2
A Vertex-based Multi-Tessellation
A vertex insertion adds a new vertex v to a mesh Σ by deleting a set
of tetrahedra T bounded by a star-shaped polyhedron Π, and replacing
them with the tetrahedra obtained by connecting vertex v with all the
vertices of Π (see Figure 3 from left to right). The inverse update, called
a vertex removal, removes all tetrahedra incident at a vertex v, leaving a
“hole” in the mesh bounded by a polyhedron Π, and replaces them with
a set T of tetrahedra obtained by re-triangulating Π (see Figure 3 from
right to left).
Criteria to define the tetrahedra forming T in a vertex insertion can
be: the Delaunay criterion, in which the tetrahedra in T are the subset
of the tetrahedra of Σ whose circumsphere contains vertex v; the halfedge collapse criterion, in which the tetrahedra in T are obtained by
contacting an edge e of Σ incident at v into its other extreme vertex w.
A vertex-based MT is an MT in which each update u+ is a vertex
insertion, and its inverse update u− is a vertex deletion. The nodes of a
vertex-based MT are in one-to-one correspondence with the vertices of
the reference mesh, except for the vertices of the base mesh. Thus, we
identify a node u with the vertex vu inserted by u+ and deleted by u− .
2.3
Selective Refinement
Selective refinement is an operation that adapts the level of detail of a
mesh to the specific requirements of an application, possibly varying the
resolution over different portions of the mesh. Selectively refined meshes
are associated with subsets of nodes of the MT which are consistent with
the dependency relation.
Selective refinement is performed upon requests expressed in terms of
the resolution and the size of the output mesh. A resolution threshold is
a function τ that assigns a real value to each node u of an MT, which
measures the “importance” of performing update u+ . A value τ (u) > 0
Data Structures for 3D Multi-Tessellations: an Overview
7
means that the portion of mesh covered by u is under-refined if update
u+ is not performed. A value τ (u) < 0 means that the portion of mesh
covered by u is over-refined (with respect to the current requirements) if
update u− is not performed. The larger the positive [negative] value of
τ (u), the more under-refined [over-refined] the portion of current mesh
covered by u.
A size threshold is simply a positive integer b which gives an upper
bound to the number of tetrahedra in the output mesh.
Based on a resolution threshold τ and a size threshold b, we want to
find the mesh which best approximates the requirements of τ , and has a
size less or equal to b.
In [Cignoni et al., 2000b], we have proposed an algorithm for performing selective refinement based on a incremental approach.
The
algorithms starts from a current consistent set S (and its associated
current mesh ΣS ), and iteratively adds / removes a node u to / from S
(and modifies ΣS by applying update u+ / u− ). A node can be added to
S, or deleted from it, provided that the resulting set is still consistent.
In order to implement such algorithm,a data structure encoding an
MT must support the following operations efficiently:
Checking the feasibility of an update u− or u+ . If u 6∈ S, adding
it to S produces a consistent set (i.e., update u+ can be applied to
ΣS ) if and only if the parents of u belong to S. If u ∈ S, removing
it from S produces a consistent set (i.e., update u− can be applied
to ΣS ) if and only if the children of u are not in S
Performing update u− , or u+ on the current mesh ΣS , i.e., coarsening or refining it, when node u is deleted from, or added to S.
3.
An Explicit Data Structure for the MT
A general data structure for a three-dimensional MT explicitly represents the tetrahedra created and deleted by each update, as well as
the dependency relation among the updates. It is independent of the
specific type of updates used. A structure of this type has been used in
a general-purpose library for multiresolution modeling [Magillo, 2000].
The dependency relation is encoded in a Directed Acyclic Graph
(DAG), in which the nodes are the updates, and there is an arc (u1 , u2 )
for each pair of nodes such that u2 + depends on u1 + (see Figure 1b).
vertices, tetrahedra, and nodes of the MT are encoded in three arrays:
For each vertex, its three coordinates, and its field value are stored.
8
For each tetrahedron, the indexes of its four vertices are stored.
Tetrahedra created in the same update u+ are stored at consecutive
entries.
For each node u, we store: the number of parents of u and their
indexes; the number of children of u and their indexes; the number
of tetrahedra in u− and their indexes; the number of tetrahedra in
u+ , and the index of the first tetrahedron in u+ .
By assuming that coordinates, field values, and indices are stored on
4 bytes, and by storing counters associated with a node on a single
byte, the storage cost of the explicit data structure can be estimated
as 24n + 28m bytes, where n is the number of vertices of the reference
mesh, and m is the total number of tetrahedra involved in the MT. It
has been experimentally found that the value of m ranges from 16n to
27n (it is higher for edge-based MTs than for vertex-based ones), and
the total cost of the explicit structure is between 450n and 800n bytes.
We have compared the above figure with the cost of storing the reference mesh. This latter can be stored in an indexed structure (which
encodes, for each tetrahedron, just the indices of its vertices), or as an
indexed structure with adjacencies (which also encodes the tetrahedra
adjacent along the fours faces) [Nielson, 1997]. The number of tetrahedra in the reference mesh is about 5 or 6 times the number n of its
vertices. The explicit data structure requires about 5 or 6 times the
space required for encoding the reference mesh with an indexed data
structure, and about 3 times times the space required by a structure
with adjacencies.
4.
A Data Structure for an Edge-Based MT
In this Section, we describe a compact data structure specific for edgebased MTs introduced in [Cignoni et al., 2000b]. In this version of the
edge-based MT, we consider collapsing an edge to its midpoint. Simplification algorithms based on edge collapse impose the constraint that an
edge can be collapsed only if the number of vertices adjacent to its two
endpoints is not larger than a predefined constant. In our edge-based
MT we have considered a value of 32 for such a constant.
Encoding the partial order.
We adopt a data structure proposed
in [El-Sana and Varshney, 1999] for view-dependent rendering of triangle
meshes, which is based on two components:
A forest of binary trees of vertices, having one node for each vertex
appearing in the MT. The leaves of the forest are the vertices of
Data Structures for 3D Multi-Tessellations: an Overview
9
the reference mesh. The other nodes are the vertices created by
the edge collapses u− , and are in one-to-one correspondence with
nodes of the MT. The two children of each internal node vu are
the endpoints v 0 u and v 00 u of the edge created when splitting vu .
The roots correspond to vertices of the base mesh.
A vertex enumeration mechanism. Vertices are numbered in the
following way: the n vertices of the reference mesh are numbered
arbitrarily from 1 to n; the remaining vertices are numbered with
consecutive numbers in a total order that extends the partial order
of the MT.
The forest is built bottom-up while decimation occurs, and the numbering is obtained by the order in which the new vertices appear during
simplification. In our implementation, the storage cost of maintaining
the forest is equal to 12n bytes.
The feasibility of a vertex split u+ and of an edge collapse u− can be
tested efficiently on the current mesh ΣS during selective refinement. A
collapse u− is feasible on ΣS if and only if edge v 0 u v 00 u is in ΣS and all
the vertices adjacent to v 0 u or v 00 u in ΣS either are roots, or their parent
has a label greater than vu . A split u+ is feasible on ΣS if and only if
vertex vu belongs to ΣS and all the vertices adjacent to vu have a label
lower than vu .
Note that this mechanism is not appropriate for an MT built based
on half-edge collapse, since unnecessary dependencies would be retrieved,
which over-constrain the model.
Encoding the MT nodes.
The forest alone is sufficient only to
−
perform an edge collapse u on the current mesh. In order to perform a
vertex split u+ , we store, for each node u: an offset vector (three components), used to find the positions of vertices v 0 u and v 00 u from that of
vu ; a field offset used to find the field value of v 0 u and v 00 u from that of
vu ; and a bit mask, used to partition the star of vu , i.e., the set of tetrahedra incident at vu . The bit mask contains one bit for each tetrahedron
incident at vu . Then, the following rule is applied: tetrahedra marked
with 0 must replace vu with v 0 u ; tetrahedra marked with 1 must replace
vu with v 00 u ; each triangular face shared by two tetrahedra marked differently must be expanded into a tetrahedron incident at both v 0 u and
v 00 u . In the example of Figure 2, tetrahedra t1 , t3 , t4 , t5 are marked with
0, while tetrahedra t1 , t6 are marked with 1.
Since we collapse only edges so that the total number of adjacent
vertices to their two endpoints is not larger than 32, the number of
tetrahedra incident in a vertex is bounded by 64, and, thus, the bit
10
loop(A)
A
B
loop(A)=[A]
loop(B)=[B]
Figure 4.
loop(C)
B
C loop(C)=[C,B,A]
D
A
loop(B)
loop(D)=[D,B,C]
loop(D)
C
D
A DAG (on the left) and the loops needed to encode it (on the right).
mask can be stored in 8 bytes. The storage cost for the information
associated with a node is 24 bytes. The total cost of the data structure
is thus equal to 12n + 24n = 36 n bytes.
This data structure achieves a compression factor of up to 22 with
respect to the explicit data structure. It is also up to three times more
compact than a structure storing just the reference mesh (up to six times
if a structure with adjacencies is used).
5.
A Data Structure for a Vertex-Based MT
In this Section, we describe a compact data structure specific for
vertex-based MTs presented and implemented in [danovaro et al., 2001].
We consider a version of a vertex-based MT built through vertex decimation under the constraint that a vertex can be deleted only if the
number of its adjacent vertices is not larger than a constant. We assume
that this constant is 32.
Encoding the partial order.
For encoding the partial order of
nodes, we use a technique proposed by Klein and Gumhold [1998]. For
each node u of the MT, they define a cyclic linked list, called a loop.
Such loop contains update u followed by all its parents in the DAG.
Figure 4 shows a DAG and the loops needed to encode it. A node u
will appear in its own loop and in all the loops defined by its children.
Thus, the following information are stored at a node u: the number of
loops to which u belongs, and for each of such loops, a forward pointer
implementing the linked list plus the loop identifier which is used to
distinguish the loop each node belongs to.
The total number of links to describe the arcs of the DAG is a + n,
where a is the number of arcs in the DAG, and n is the number of vertices
of the reference mesh. Each link consists of a pointer to a node plus a
loop identifier. Since each node has at most 32 parents or children, one
Data Structures for 3D Multi-Tessellations: an Overview
11
byte is enough to encode a loop identifier as well as to count the loops to
which a node belongs. Experimentally, it has also been found that, for
vertex-based MTs, a is about 5n on average. Thus, the cost of storing
the DAG is equal to 31n bytes.
Encoding the MT nodes.
The idea is to encode an implicit and
procedural description of an update, which contains sufficient information to perform vertex insertion and vertex deletion on the current mesh.
For each node u, we store the coordinates of the vertex vu introduced
by update u+ , plus a compact encoding of the topological structure
of the tetrahedralization Tu of the star shaped polyhedron Πu deleted
by the insertion of vu . Since each node u corresponds to a vertex vu ,
nodes and vertices are re-numbered in such a way that a node u and its
corresponding vertex vu have the same label.
An encoding structure for the topology of Tu must store those information, that are sufficient for performing the following two basic tasks:
1 given the current mesh ΣS and a feasible vertex insertion u+ , recognize the tetrahedra forming Tu among those of ΣS ;
2 given polyhedron Πu bounding Tu , build Tu .
Both tasks need encoding one boundary face fu of the star-shaped
polyhedron Πu plus a bit stream which describes a traversal of the tetrahedra of Tu , starting at fu .
A boundary face fu is described by the tetrahedron tu in Tu containing
fu plus the index of fu within tu , and by the tetrahedron t0 containing
fu among the tetrahedra incident in vu after u+ has been performed.
See [danovaro et al., 2001] for a detailed description. Encoding such
information requires 12 bits.
The tetrahedra of Tu are described as a tetrahedron spanning tree
rooted at tu , which is constructed as follows. Starting from tu , all tetrahedra of Tu are traversed in a depth-first fashion. Each triangular facet
of a traversed tetrahedron is labeled (see Figure 5):
0, if the facet is a face of polyhedron Πu ;
10, if the facet is adjacent to a tetrahedron that belongs to Tu and
has not yet been traversed;
11, if the facet is adjacent to a tetrahedron that belongs to Tu and
has already been traversed.
Note that three facets are labeled for each tetrahedron.
If Tu contains p tetrahedra and has q external facets, then the stream
contains 6p − q + 1 bits. Note that the number q of external facets is
12
Tu
t3
t4
0
0
t1
t5
t3
fu
t4
0
10
tu
01
0
t2
0
10
0
t2
10
t1
0
tu
0
0
10
10
01
t5
0
0
Figure 5. The tetrahedron spanning tree. On the left, set Tu of tetrahedra is shown
along with the starting facet fu , and the spanning tree. On the right, the binary
labels corresponding to each arc of the spanning tree are shown.
equal to the number of new tetrahedra created by vertex insertion u+ .
Since, on average, we have that p ' 12 and q ' 16 [danovaro et al.,
2001], the average length of the bitstream is 57 bits. Vertex coordinates
and field values are stored separately, and require 16 n bytes. Thus, the
cost for storing all the updates is equal to 69 n bits (< 9 n bytes), and
the total space required by this data structure is 56 n bytes.
This structure achieves a compression factor of up to 12 with respect
to the explicit data structure. Also it requires about half of the space
needed by an indexed structure storing just the reference mesh; and little
more than 1/4 of the space needed by a structure with adjacencies.
The storage cost of a vertex-based MT is 1.5 times higher than that
of an edge-based MT. The increase in cost is mainly due to encoding the
partial order, since the cost for encoding the nodes is only 1 byte higher
in the vertex-based than in the edge-based case. On the other hand,
vertex-based MTs have the advantage of being formed of more compact
updates, and thus the number of tetrahedra necessary to achieve a given
accuracy with a vertex-based MT is usually smaller than those necessary
to achieve the same accuracy with an edge-based MT (see Section 6).
6.
Results
We report about experimental comparisons based on some instances
of the selective refinement query. In the first case (uniform LOD), the
resolution threshold τ (u) is proportional to the difference between the
approximation error at u and a given error value set by the user. In the
second case (variable LOD based on spatial location), a uniform LOD is
considered for nodes intersecting a given region of interest R in space,
while τ is equal to −∞ for every other node. In the third case (variable
LOD based on field value), a uniform LOD is considered for nodes which
span a given field value f (e.g., the value corresponding to an isosurface
Data Structures for 3D Multi-Tessellations: an Overview
(a)
13
(b)
Figure 6.
The isosurface corresponding to field value 105,000, computed with an
approximation error equal to 0.1% of the range spanned by the data (18,523 facets).
(a) The mesh at a uniform resolution corresponding to the above approximation error
(146,211 tetrahedra). (b) The mesh variable resolution, in which only tetrahedra containing the field value 105,000 are guaranteed to be within the above approximation
(70,205 tetrahedra).
to be visualized). The value of τ is −∞ for every other node. Further
experimental results and analysis of these two structures can be found
in [Cignoni et al., 2000b; danovaro et al., 2001].
Our test data set is Smallbucky, i.e., a portion of the Bucky Ball data
set (courtesy of AVS Inc.), which consists of a regular grid with 35,937
points. A vertex-based MT was constructed by refining a base mesh
obtained by decomposing the cubic domain into six tetrahedra. The
resulting reference mesh contains 194,620 tetrahedra. An edge-based
MT was built by decimating the reference mesh of the vertex-based
MT.
Figure 6 shows two meshes, at a uniform and at a variable resolution,
respectively, which both provide a given approximation error, equal to
0.1% of the range of field values spanned by the data set, on tetrahedra
contributing to the visualized isosurface. The mesh at uniform resolution
has 146,211 tetrahedra, while the mesh at variable resolution has just
70,205 tetrahedra. The vertex-based MT has been used for producing
this image.
Figure 7 shows two meshes, at a uniform and at a variable resolution,
respectively, which both provide the full resolution (error = 0) inside a
user-defined box. The mesh at uniform resolution has 163,831 tetrahedra, while the mesh at variable resolution has 41,326 tetrahedra. The
edge-based MT has been used for producing this image.
14
(a)
(b)
Figure 7.
(a) The isosurface corresponding to field value 105,000, computed on a
uniform mesh with a null error (163,831 tetrahedra, 16,272 facets.). (b) The same
isosurface computed on a mesh at variable LOD with a null error just inside the box
(41,326 tetrahedra, 9,654 facets).
Table 1. Memory requirements of the different data for the Smallbucky data set.
The space requirements for encoding just the reference mesh are 3,688,912 bytes,
or 6,802,832 bytes with an indexed data structure without, or with adjacencies, respectively. We report results for an edge-based and a vertex-based MT. The first
column describes the type of MT. The second to fourth column give the storage cost
of the general data structure and its overhead factors with, respectively. The last
four columns give the storage cost of the compact data structure and its compression
factors with respect to storing the reference mesh without or with adjacencies or the
MT with the explicit structure, respectively. All storage costs are in bytes.
MT
type
Explicit
struct.
Edge
Vertex
29,433,916
13,930,564
Overhead
index.
adj.
8
3.7
4.3
2
Compact
struct.
1,289,964
2,015,523
Compression
index.
adj.
exp.MT
2.8
1.8
5.7
3.4
23
7
Vertex-based updates have usually a smaller extension than edgebased ones (on average, update u+ creates about 16 and 27 tetrahedra
in a vertex- and in an edge-based MT, respectively). For this reason,
vertex-based updates generate MTs with less tetrahedra, and with fewer
dependency links.
Table 1 reports storage costs for the different data structures, together
with ovwerhead/compression factors with respect to a data structures
encoding just the reference mesh.
15
Data Structures for 3D Multi-Tessellations: an Overview
1.000
1.000
Vertex MT
Edge MT
Vertex MT
Edge MT
0.800
0.800
0.600
0.600
0.400
0.400
0.200
0.200
0.000
0.000
0.0%
0.1%
0.5%
1.0%
5.0%
10.0%
(a)
0.0%
0.1%
0.5%
1.0%
5.0%
10.0%
(b)
Figure 8. Sizes of the extracted mesh for a vertex-based MT (continuous line) and
for an edge-based MT (dashed line), for (a) a uniform LOD and (b) a variable LOD
based on field value. The horizontal axis reports the error value as a percentage of
the range spanned by the field values of the data set. The vertical axis reports the
ratio between the number of tetrahedra in the extracted mesh and the number of
tetrahedra in the reference mesh.
Fewer dependency links result in an improved selectivity of queries.
We have compared the performances of a vertex-based MT and of an
edge-based MT for selective refinement queries at uniform LOD, and
at variable LOD based on field value. The results, reported in Figure
8, show the ratio between the number of tetrahedra in the extracted
and in the reference mesh. At variable LOD, the size of the meshes
extracted from the vertex-based MT is about 20% less than the size
of those extracted from the edge-based MT. For extractions at uniform
LOD, the percentage of size reduction of vertex-based MTs with respect
to edge-based ones is only 8%. In this case, refinement is performed
on the whole domain and thus the advantage of having more localized
updates is not so evident.
7.
Concluding Remarks
In this paper, we have presented an overview of data structures for
encoding a multiresolution tetrahedral model.
The explicit structure, which is application- as well as dimensionindependent, introduces a considerable overhead in terms of space with
respect to storing just the mesh at full resolution. The other two structures are specific for edge collapse and vertex insertion, respectively,
but they are considerably more compact than an explicit representation. They even achieve good compression ratios with respect to the
mesh at full resolution, and they support the direct construction of a
data structure with adjacencies during selective refinement.
16
Further developments of the work presented in this paper are concerned with the study of data structures for encoding a 3D MT on
secondary storage, and the design of out-of-core algorithms for MT construction and selective refinement.
Acknowledgments
This work has been partially supported by a Research Training European Network on ”Multiresolution in Geometric Modeling (MINGLE)”
under grant HPRN-CT-1999-0117 and by a project funded by the National Group on Scientific Computation on ”Data Structures and Algorithms for Scientific Data Visualization”.
References
Cignoni, P., Costanza, D., Montani, C., Rocchini, C., and Scopigno, R. (2000a). Simplification of tetrahedral volume with accurate error evaluation. In Proceedings
IEEE Visualization’00, pages 85–92. IEEE Computer Society.
Cignoni, P., De Floriani, L., Magillo, P., Puppo, E., and Scopigno, R. (2000b). TAn2 visualization of large irregular volume datasets. Technical Report DISI-TR-00-07,
Department of Computer and Information Sciences, University of Genova (Italy).
(submitted for publication).
Cignoni, P., De Floriani, L., Montani, C., Puppo, E., and Scopigno, R. (1994). Multiresolution modeling and rendering of volume data based on simplicial complexes.
In Proceedings 1994 Symposium on Volume Visualization, pages 19–26. ACM Press.
Danovaro, E., De Floriani, L., Magillo, P., and Puppo, E. (2001). Representing vertexbased simplicial multi-complexes. In Bertrand, G., Imiya, A., and Klette, R., editors, Digital and Image Geometry, Lecture Notes in Computer Science, volume
2243, pages 128–147. Springer-Verlag, New York.
De Floriani, L., Puppo, E., and Magillo, p. (1997). A formal approach to multiresolution modeling. In Klein, R., Straßer, W., and Rau, R., editors, Geometric Modeling:
Theory and Practice, pages 302–323. Springer-Verlag.
El-Sana, J. and Varshney, A. (1999). Generalized view-dependent simplification. Computer Graphics Forum, 18(3):C83–c94.
Garland, M. (1999). Multiresolution modeling: Survey & future opportunities. In Eurographics ’99 – State of the Art Reports, pages 111–131.
Greiner, G. and Grosso, R. (2000). Hierarchical tetrahedral-octahedral subdivision
for volume visualization. The Visual Computer, 16:357–365.
Gross, M. and Staadt, O. (1998). Progressive tetrahedralizations. In Proceedings IEEE
Visualization’98, pages 397–402, Research Triangle Park, NC. IEEE Computer
Society.
Grosso, R. and Greiner, G. (1998). Hierarchical meshes for volume data. In Proceedings
of the Conference on Computer Graphics International 1998 (CGI-98), pages 761–
771, Los Alamitos, California. IEEE Computer Society.
Guéziec, A., Taubin, G., Lazarus, F., and Horn, W. (1998). Simplicial maps for progressive transmission of polygonal surfaces. In Proceedings ACM VRML98, pages
25–31.
Data Structures for 3D Multi-Tessellations: an Overview
17
Holliday, D. and Nielson, G. (2000). Progressive volume model for rectilinear data
using tetrahedral Coons patches. In de Leeuw, W. and van Liere, R., editors, Data
Visualization 2000. Springer Verlag.
Hoppe, H. (1998). Efficient implementation of progressive meshes. Computers & Graphics, 22(1):27–36.
Lee, M., De Floriani, L., and Samet, H. (2001). Constant-time neighbor finding in
hierarchical meshes. In Proceedings International Conference on Shape Modeling,
pages 286–295, Genova (Italy).
Luebke, D. and Erikson, C. (1997). View-dependent simplification of arbitrary polygonal environments. In ACM Computer Graphics Proceedings, Annual Conference
Series, (SIGGRAPH’97), pages 199–207.
Magillo, P. (2000). The MT (Multi-Tesselation) package. Dept. of Computer and
Information Sciences, University of Genova, Italy,
http://www.disi.unige.it/person/MagilloP/MT/index.html.
Nielson, G. (1997). Tools for triangulations and tetrahedralizations and constructing
functions defined over them. In Nielson, G., H.hagen, and Müller, H., editors, Scientific Visualization: Overviews, Metodologies, Techniques, pages 429–525. IEEE
Computer Society.
Nielson, G. and Roxborough, T. (2000). Tetrahedron based, least squares, progressive
volume models with applications to freehand ultrasound data. In Proceedings IEEE
Visualization 2000, pages 93–100. IEEE Computer Society.
Ohlberger, M. and Rumpf, M. (1999). Adaptive projection operators in multiresolution scientific visualization. IEEE Transactions on Visualization and Computer
Graphics, 5(1):74–93.
Puppo, E. (1996). Variable resolution terrain surfaces. In Proceedings Eight Canadian Conference on Computational Geometry, pages 202–210, Ottawa, Canada.
Extended version appeared with title Variable Resolution Triangulations, Computational Geometry, 1998, 11(3-4):219-238.
Rivara, M. and Levin, C. (1992). A 3D refinement algorithm suitable for adaptive
and multi-grid techniques. J. Comp. Appl. Math., 8:281–290.
Trotts, I., Hamann, B., and Joy, K. (1999). Simplification of tetrahedral meshes
with error bounds. IEEE Transactions on Visualization and Computer Graphics,
5(3):224–237.
Xia, J., El-sana, J., and Varshney, A. (1997). Adaptive real-time level-of-detail-based
rendering for polygonal models. IEEE Transactions on Visualization and Computer
Graphics, 3(2):171–183.
Zhou, Y., Chen, B., and Kaufman, A. (1997). Multiresolution tetrahedral framework
for visualizing regular volume data. In Proceedings IEEE Visualization’97, pages
135–142. IEEE Computer Society.