## Edgebreaker on a Corner Table: A Simple Technique for Representing and Compressing Triangulated Surfaces

##### View/Open

##### Date

2001##### Author

Rossignac, Jaroslaw R.

Safanova, Alla

Szymczak, Andrzej

##### Metadata

Show full item record##### Abstract

A triangulated surface S with V vertices is sometimes stored as a list of T independent triangles, each described by the 3 floating-point coordinates of its vertices. This representation requires about 576V bits and provides no explicit information regarding the adjacency between neighboring triangles or vertices. A variety of boundary-graph data structures may be derived from such a representation in order to make explicit the various adjacency and incidence relations between triangles, edges, and vertices. These relations are stored to accelerate algorithms that visit the surface in a systematic manner and access the neighbors of each vertex or triangle. Instead of these complex data structures, we advocate a simple Corner Table, which explicitly represents the triangle/vertex incidence and the triangle/triangle adjacency of any manifold or pseudo-mainfold triangle mesh, as two tables of integers. The Corner Table requires about 12VlogxV bits and must be accompanied by a vertex table, which requires 96V bits, of Floats are used. The Corner Table may be derived from the list of independent triangles. For meshes homeomorphic to a sphere, it may be compressed to less than 4V bits by storing the "clers" sequence of triangle-labels from the set {C,L,E,$,S}. Further compression to 3.6V bits may be guaranteed by using context-based codes for the clers symbols. Entropy codes reduce the storage for large meshes to less than 2V bits. Meshes with more complex topologies may require O(log2V) additional bits per handle of hole. We present here a publicly available, simple, state-machine implementation of the Edgebreaker compression, which traverses the corner table, computes the CLERS symbols, and constructs an ordered list of vertex references. Vertices are encoded, in the order in which they appear on the list, as corrective displacements between their predicted and actual locations. Quantizing vertex coordinates to 12 bits and predicting each vertex as a linear combinations of its previously encoded neighbors leads to short displacements, for which entropy codes drop the total vertex location storage for heavily sampled typical meshes below 16V bits.