Date post: | 26-Dec-2015 |
Category: |
Documents |
Upload: | bartholomew-edwards |
View: | 214 times |
Download: | 0 times |
Compressing MultiresolutionTriangle Meshes
Emanuele Danovaro, Leila De Floriani,
Paola Magillo, Enrico Puppo
Department of Computer and Information Sciences
University of Genova (Italy)http://www.disi.unige.it/research/Geometric_modeling/
Outline
• Motivations
• The vertex-based MultiTriangulation (MT)
• The basic query on a multiresolution model: Selective Refinement
• Encoding a vertex-based MT
• Encoding the partial order
• Encoding the MT components
• Comparisons
• Conclusions and Future Work
Motivations (1)
• Simplicial meshes: used for describing surfaces, objects, scalar and vector fields
• Applications: terrain modeling, virtual reality, scientific data visualization, etc.
• Availability of very large meshes:
research activity on
• mesh simplification
• multiresolution geometric models
Motivations (2)
• Mesh simplification: computationally expensive task
• Multiresolution geometric models:
• Compact way of encoding the steps performed by a simplification algorithm as a partial order
• Virtually continuous set of meshes at different Levels Of Detail (LOD) can be extracted from such models
Multiresolution Geometric Models
Multiresolution Model
Simplicial MultiComplex (SMC)[De Floriani, Magillo, Puppo, SSD’99]
• General multiresolution geometric model for k-D spatial entities through simplicial complexes
• Suitable for handling multidimensional data
• Independent of a specific simplification strategy
• Dimension-independent data structure for an SMC implemented in a library for multiresolution modeling, available in the public domain
Vertex-based MultiTriangulation (MT)
• Specialization of the SMC for the two-dimensional case (triangle meshes)
• Built on the basis of a specific local update: vertex insertion / removal
Vertex-based MT
• Consider a sequence of updates incrementally refining a mesh at low resolution
• Dependency between updates: an update i depends on an update j if i removes some triangle created by j
• Dependency defines a partial order over the set of updates
The MultiTriangulation
• The MT captures the partial order of updates• An MT is described by a directed
acyclic graph (DAG) where:• nodes: updates• arcs: dependencies
The MultiTriangulation
All subsets of nodes closed with respect to the partial order describe all triangulations represented in the MT
Selective Refinement
• Extract a mesh M from an MT such that• the resolution of M satisfies some user-defined
requirement
• M contains a minimal number of triangles among all meshes satisfying the resolution constraint
• Application dependent queries are specific instance of selective refinement
Selective Refinement: View-Dependent Resolution
Selective refinement: Intersection with a Line of Interest at Variable Resolution
Selective Refinement: Window Query at Variable Resolution
Algorithms for Selective Refinement
• Breadth-first DAG traversal for retrieving a mesh satisfying the conditions in the selective refinement query
• Scheme: • start form a previously extracted mesh (or from the mesh at
low resolution)
and
• refine the mesh where the resolution is too low(Expansion phase)
• coarsen the mesh where the resolution is unnecessarily high(Contraction phase)
Expansion StepPerform update u=(u-,u+) on the current mesh
• On the DAG: Parents (u): feasibility of update u
• On the current mesh: Refine: replace the triangles in u- with those in u+
Contraction StepUndo update u=(u-,u+) on the current mesh
• On the DAG: Children (u): feasibility of update u
• On the current mesh: Abstract: replace the triangles in u+ with those in u-
Data Structures for an MT
• Objectives:• Implement primitive operations (Children, Parents, Refine
and Abstract ) with an optimal worst-case time complexity
• Optimize storage space
• Two issues:
• Encoding dependencies
• Encoding updates
Encoding Dependencies
• Direct encoding: for each node u, encode links to its parents and to its children in the DAG
• Storage cost: 8n+6nlog(n) bits, where n = number of vertices in the MT
• Parents and Children implemented in time linear in the size of the output
• DAG encoding by Klein and Gumhold (1998): an update u and its parents are linked into a loop.
• Storage cost: 20n+4nlog(n) bits
• Only Parents implemented in optimal time; Children implemented in O(j2), where j = #children
Encoding Updates: Explicit Structure
• Special case of the explicit structure with zero-adjacencies for Simplicial MultiComplexes (SSD’99)
• It stores the collection of all triangles in u- and in u+; for each triangle, explicit reference to its vertices
• Storage cost: 25n+25nlog(n) bits• Coordinates of the vertices: 96n bits
• References to the vertices for all t triangles: 6nlog(t) bits
• Cost for all updates 4n+(t+n)log(t) bits
• Refine and Abstract in time linear in (#u-) + (#u+)
Encoding Vertex-Based Updates
• No need to store the triangles in the update
• Two tasks to be performed efficiently:
• Recognize the trianglesof u- in the current mesh(primitive Refine)
• Given the polygon Pbounding u+, generate u-(primitive Abstract)
Encoding Vertex-Based Updates
• Store the MT vertices as triplets of coordinates(cost = 96n bits)
• For each update u, store a starting edge s on the polygon P bounding u (cost = 3nlog(n) bits)
• Analysis of two encoding structures for the triangulation T of u-1. an encoding based on a traversal of T [Taubin et al., 1998]
2. an encoding based on ranking all triangulations of a polygon with k sides
An Encoding Based on Traversal• Given a current edge e and a current triangle t, look at the edges of t
different from e:
• Code 01:edge following e in ccw order on P
• Code 10: edge preceding e in ccw order on P
• Code 00: the other two edges of t are not on P
• Code 11: the other two edges of t are both on P
• Storage cost: 8n bits (2 bits per triangle in u-)
• Refine and Abstract in O(k), where k is the size of P
An Encoding Based on Ranking
• Basic Idea: enumerating all triangulations of a given k-polygon
• It stores log(Ek) bits for each update bounded by a k-polygon, where Ek is the number of all distinct isomorphic triangulations of a k-polygon (lower bound)
• For each polygon size k, compute the canonical representations of all possible triangulations of a k-polygon and sort them lexicographically
• A specific triangulation represented by storing its rank in the sorted sequence of canonical representations
• For updates of size k=6 (average case), storage cost = 7n bits• Refine and Abstract performed in O(k log(k)) time
Results from Comparisons
• Compact DAG encoding (C) requires 20% less storage than direct DAG encoding (D)
• Compact update encodings require approximately 1/10 of the storage needed by the explicit encoding
• (Explicit + C) requires only 4% less wrt (Explicit + D)
• Both explicit data structures require about 2.5 times the space needed to store the mesh at full resolution
• Both compact encodings based on traversal and on ranking are more economical wrt a data structure for updates proposed by Klein and Gumhold (1998)
Results from Comparison• MT1 = Explicit + Direct DAG encoding
• MT2 = Traversal + Direct DAG encoding
• MT3 = Ranking + Compact DAG encoding
MT1 MT2 MT3
Parents O(j) O(j) O(j)
Children O(j) O(j) O(j2)
Refine/Abstract O(k) O(k) O(k log k)
MT1 MT2 MT3
Full Resolution 266 % 72 % 61 %
MT1 100 % 27 % 23 %
Conclusions
• Vertex-based MultiTriangulation: based on vertex insertion/removal
• Compact data structures for encoding a vertex-based MT• Compression of almost 80% wrt explicit data structure
• Compression of almost 40% wrt mesh at full resolution
• Current Work:• Comparison with hierarchical structures based on regular
triangular subdivisions
• Design of a compact data structure for a 3D vertex-based MT (Danovaro et al. 2001)
• Future Work:• Out-of-core data structures
• Out-of-core simplification and selective refinement algorithms