compressing multiresolution triangle meshes emanuele danovaro, leila de floriani, paola magillo,...
TRANSCRIPT
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