Compressing Multiresolution Triangle Meshes Emanuele Danovaro, Leila De Floriani, Paola Magillo,...

Post on 26-Dec-2015

214 views 0 download

Tags:

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