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.
© Copyright 2025 Paperzz