1.
EUROGRAPHICS ’99 STAR – State of The Art Report 3D Geometry Compression and Progressive Transmission Gabriel Taubin IBM T.J.Watson Research Center Ý Abstract Polygonal meshes remain the primary representation for visualization of 3D data in a wide range of industries, including manufacturing, architecture, geographic information systems, medical imaging, robotics, entertainment, and military applications. Because of its widespread use, it is desirable to compress polygonal meshes stored in ﬁle servers and exchanged over computer networks to reduce storage and transmission time requirements. In this report we describe several schemes that have been recently introduced to represent single and multi-resolution polygonal meshes in compressed form, and to progressively transmit polygonal mesh data. The progressive trans- mission of polygonal meshes allows the decoder process to make part of a single-resolution mesh, or the low resolution levels of detail of a multi-resolution mesh, available to the rendering system before the whole bitstream is fully received and decoded. It is desirable to combine compression and progressive transmission, but not all the existing methods exhibit both features. These progressive transmission schemes are closely related to surface simpliﬁcation or decimation methods, which change the surface topology while approximating the geometry, and can be regarded as lossy compression schemes as well. Finally, we describe in more detail the Topological Surgery and Progressive Forest Split schemes that are currently part of the MPEG-4 multimedia standard.1. Introduction the Internet instead, Taubin and Rossignac introduced the Topological Surgery (TS) scheme 45 , the ﬁrst connectivity-Polygonal meshes are the primary representation used in preserving single-resolution manifold triangular mesh com-the manufacturing, architectural, and entertainment indus- pression scheme. TS was later extended to handle arbitrarytries for visualizing 3D data, and they are central to Inter- manifold polygonal meshes with attached properties, andnet and broadcasting multimedia standards such as VRM- proposed as a compressed ﬁle format to encode VRML ﬁlesL 49 , and MPEG-4 26 29 6 . In these standards, a polygonal 42 . And with a more efﬁcient encoding, Topological Surgerymesh is deﬁned by the position of its vertices (geometry); is now part of the MPEG-4 standard.by the association between each face and its sustaining ver-tices (connectivity); and optional colors, normals and texture Several closely related methods were subsequently devel-coordinates (properties). oped by Touma and Gotsman 47 , Gumhold and Strasser 17 , Li and Kuo 27 and Rossignac 36 . The methods proposed by It is desirable to compress polygonal mesh data to re- Gumhold and Strasser, and by Rossignac only encode con-duce storage and transmission time requirements. In this re- nectivity. The method proposed by Touma and Gotsman,port we describe the recent efforts in this area. Deering 9 predicts geometry an properties better, and the method pro-introduced the ﬁrst geometry compression scheme to com- posed by Li and Kuo improves on the entropy encoding ofpress the bitstream sent by a CPU to a graphics adapter, prediction errors. More recently, Bajaj et. al. 2 proposed yetgeneralizing the popular triangle strips and fans. Motivat- another method to encode single-resolution triangular mesh-ed by Deering’s work, but optimized for transmission over es. It is based on a decomposition of the mesh into rings of triangles originally used by Taubin and Rossignac in theirÝ P.O.Box 704 Yorktown Heights, NY 10598, USA, compression algorithm, but with a different and more com-taubin@us.ibm.com plex encoding. All of these schemes require Ç´Òµ total bitsc The Eurographics Association and Blackwell Publishers 1999. Published by BlackwellPublishers, 108 Cowley Road, Oxford OX4 1JF, UK and 350 Main Street, Malden, MA02148, USA.
2.
Gabriel Taubin / 3D Geometry Compression and Progressive Transmissionof data to represent a single-resolution mesh in compressed sive transmission. However, the increased generality of theform. method requires an even higher number of bits to specify each reﬁnement operation. A closely related scheme, called While single resolution schemes can be used to reduce MetaStream, was more recently introduced by Abadjev et.transmission bandwidth, it is frequently desirable to send the al. 1 .mesh in progressive fashion. A progressive scheme sends acompressed version of the lowest resolution level of a level- In all the previous progressive representations, multi-of-detail (LOD) hierarchy, followed by a sequence of ad- resolution polygonal models are represented in compressedditional reﬁnement operations. In this manner, successive- form. But seen as compression schemes are not as efﬁciently ﬁner levels of detail may be displayed while even more as the single-resolution schemes described earlier. Taubin et.detailed levels are still arriving. To prevent visual artifacts, al. 41 recently introduced a method to compress any multi-sometimes referred to as popping, it is also desirable to be resolution mesh produced by a vertex clustering algorith-able to transition smoothly, or geomorph, from one level of m with compression ratios comparable to the best single-the LOD hierarchy to the next by interpolating the positions resolution schemes. In this scheme, the connectivity of theof corresponding vertices in consecutive levels of detail as a LOD hierarchy is transmitted from high resolution to lowfunction of time. resolution, followed by the geometry and properties from low resolution to high resolution. The main contribution of The Progressive Mesh (PM) scheme introduced by Hoppe19 this scheme is a method to compress the clustering mappings was the ﬁrst method to address the progressive transmis- which relate consecutive levels of detail, from high to lowsion of multi-resolution manifold triangular mesh data. PM resolution. The method achieves high compression ratios butis an adaptive reﬁnement scheme where new faces are in- is not progressive.serted in between existing faces. Every triangular mesh canbe represented as a base mesh followed by a sequence of The MPEG-4 3D Mesh Coding scheme is based on thevertex split reﬁnements. Each vertex split is speciﬁed for the Topological Surgery and Progressive Forest Split schemes.current level of detail by identifying two edges and a shared But incorporates improvements to connectivity encodingvertex. The mesh is reﬁned by cutting it through the pair for progressive transmission proposed by Bossen 5 , non-of edges, splitting the common vertex into two vertices and manifold encoding proposed by Guéziec et. al. 16 , error re-creating a quadrilateral hole, which is ﬁlled with two trian- siliency proposed by Jang et. al. 24 , parallelogram predic-gles sharing the edge connecting the two new vertices. The tion proposed by Touma and Gotsman 47 , and error encod-PM scheme is not an efﬁcient compression scheme. Since ing proposed by Li and Kuo 27 . It allows the encoding of anythe reﬁnement operations perform very small and localized polygonal mesh (including non-manifolds) with no loss ofchanges, the scheme requires Ç´Î ÐÓ ¾ ´Î µµ bits to double connectivity information and no repetition of geometry andthe size of a mesh with Î vertices. Later on Hoppe proposed property data associated to singular vertices as a progres-a more efﬁcient implementation based on changing the order sive single-resolution bitstream, and any manifold polygonalof transmission of the edge split operations 20 . mesh in hierarchical multi-resolution mode. Extensive ex- perimentation performed during the course of the MPEG-4 In the Progressive Forest Split (PFS) scheme introduced process has shown that the resulting methods are state-of-by Taubin et. al. 40 a manifold triangular mesh is also rep- the-art.resented as a low resolution polygonal model followed by asequence of reﬁnement operations. But the forest split reﬁne-ment operation, which can be seen as a grouping of several 2. Compression for Accelerated Renderingconsecutive edge split operations into a set instead of a se- Because polygonal faces can be triangulated, and graphicsquence, provides a tradeoff between compression ratios and hardware is optimized for rendering triangles, most geom-granularity. The highest compression ratios are achieved by etry compression schemes are restricted to operate on tri-reducing the high number of levels of detail produced by the angular meshes. Each triangle is speciﬁed for rendering byPM scheme, which are usually not required. Best compres- its three vertices (36 bytes), and depending on the renderingsion ratios are achieved in PFS when the size grows expo- mode, also by some properties (normals, color, and/or tex-nentially with level of detail, because it requires only Ç´Î µ ture coordinates), which in some cases are also bound perbits to double the size of a mesh with Î vertices. vertex. Because each vertex of an average triangle mesh is The topological type (genus) of the lowest resolution lev- shared by six triangles, transmitting for each triangle all the data associated with its three vertices is wasteful.el of detail stays constant during the reﬁnement process forboth the PM and PFS methods. The Progressive Simplicial The popular triangle strips and triangle fans of GL 22 andComplexes (PSC) scheme introduced by Popovic and Hoppe OpenGL 33 can be regarded as the ﬁrst geometry compres-34 allows changes in topological type to occur during the sion scheme designed to reduce the amount of geometricreﬁnement process. The PSC representation retains most of data transfered from the CPU to the graphics adapter. Bythe advantages of the PM representation, including smooth traversing the triangles in a different order, so that subse-transitions between consecutive levels of detail and progres- quent triangles share an edge, only the data associated with The Eurographics Association and Blackwell Publishers 1999. c
3.
Gabriel Taubin / 3D Geometry Compression and Progressive Transmissionthe opposite vertex needs to be transmitted for each new tri- #VRML V2.0 utf8 Shape {angle. In the GL triangle strips the connectivity is speciﬁed geometry IndexedFaceSet {by an marching bit per triangle (except for the last triangle of coord Coordinate {the strip), which determines on which of the two free edges point [of the current triangle the next triangle has to be attached. -1.63 -0.94 -0.66In the OpenGL triangle strips no connectivity information is 1.63 -0.94 -0.66transmitted, requiring the triangles to be attached alternating 0.00 0.00 2.00between left and right free edges. Triangle fans do not in- 0.00 1.88 -0.66clude connectivity information either, requiring the triangles ] }to be attached always on the left free edge. Because the av- coordIndex [erage triangle mesh has twice as many faces than vertices, 1 2 0 -1 3 2 1 -1each vertex has to be transmitted at least about twice. No 0 2 3 -1existing algorithm for decomposing a triangle mesh into tri- 0 3 1 -1angle strips or fans achieves this lower bound. For example, ] } }in the algorithm proposed by Evans et. al. 10 , which is cur-rently the best algorithm, each vertex is transmitted about Figure 1: A tetrahedron represented as an IndexedFace-2.5 times. Set node. Since each pair of consecutive triangles share an edge, to #VRML V2.0 utf8render triangle strips and fans a graphics pipeline needs to Shape {store two vertices and their associated properties. In the gen- geometry IndexedFaceSet {eralized triangle mesh representation introduced by Deering coord Coordinate {9 the graphics pipeline has an on-line buffer where sixteen point [vertices and associated properties can be stored. The data 0.00 -0.00 2.00stored in the buffer can be replaced, retrieved, and delet- -1.63 -0.94 -0.66ed by transmitting one op-code per new vertex, followed by 0.00 1.88 -0.66quantized vertex coordinates and properties, as required by 1.63 -0.94 -0.66 ] }the op-code. With this approach each vertex of the original coordIndex [polygonal mesh is transmitted less than twice, but neverthe- 0 1 3 -1less more than once. Chow 7 proposes an algorithm to de- 3 1 2 -1compose a triangle mesh into generalized triangle meshes, 3 2 0 -1missing in Deering’s original work 9 . Chow’s algorithm is 0 2 1 -1also based on the spiraling traversal of the mesh ﬁrst used ] } }by Taubin and Rossignac in the Topological Surgery com-pression algorithm 45 . Bar-Yehuda and Gotsman analyze the Figure 2: An equivalent IndexedFaceSet representationminimum buffer size required to transmit each vertex exact- for the tetrahedron of ﬁgure 1.ly once 3 , and show that it is impossible not to repeat vertexdata with a ﬁnite size buffer. tices and faces is represented in VRML by an Indexed-3. Geometry Compression FaceSet node with a coord array, and a coordIndex ar- ray as a minimum. Figure 1 shows a very simple example.Other application areas exist where minimizing the com- The position of each vertex is described in the coord arraypressed representation size to make better use of storage s- by three ﬂoating-point numbers. Each face of the polygonalpace and transmission bandwidth, preserving the connectiv- mesh with Ò ¿ corners is represented in the coordIndexity of the original polygonal mesh, or transmitting the data array by Ò different indices to the coord array, followed byprogressively, are more important or required factors. In the a the value -1 as a face separator. The polygonal mesh mayrest of the report we concentrate on these methods, with par- also have optional properties (normals, colors, and textureticular emphasis on the techniques incorporated in MPEG-4. coordinates) associated to its vertices, faces, or corners, rep-The course notes of the two courses on 3D Geometry Com- resented by corresponding arrays (normal, normalIndex,pression taught at Siggraph’98 44 and Siggraph’99 46 contain color, colorIndex, texCoord, texCoordIndex) and s-reprints of most of the original papers describing the tech- calar ﬁelds (normalPerVertex, colorPerVertex).niques surveyed here. The MPEG-4 standard uses a similar scene graph repre- sentation called Binary Encoding For Scenes (BIFS) 31 32 ,4. Polygonal Meshes as MPEG-4 BIFS Nodes which contains most VRML nodes as well as many newThe VRML standard has become a popular Internet ﬁle for- ones. But instead of the VRML ASCII encoding, BIFS usesmat to represent 3D data. A polygonal mesh with Î ver- a more compact binary encoding. Polygonal meshes can be The Eurographics Association and Blackwell Publishers 1999.c
4.
Gabriel Taubin / 3D Geometry Compression and Progressive Transmissionrepresented in BIFS not only by IndexedFaceSet nodes, compressed representations of the different connected com-but also by the new Hierarchical3DMesh nodes. The lat- ponents are usually concatenated in the bitstream , it is sufﬁ-ter extending the IndexedFaceSet functionality by allow- cient to consider connected polygonal meshes. In the Topo-ing progressive and asynchronous decoding (streaming) of logical Surgery scheme, although the choice may affect thethe polygonal mesh data into the scene graph through a sep- compression ratios, any spanning tree is acceptable. A rootarate input stream, and browser control of level of detail, face is chosen as the root of the tree, and the tree is traversedas soon as the levels of detail are made available by the de- in depth-ﬁrst order using the orientation of the polygonalcoding process. Polygonal meshes represented by Indexed- face to decide which branch to follow ﬁrst when a branchingFaceSet nodes are embedded in the stream containing the face is visited: leftmost branches are traversed ﬁrst. In thescene graph description, and so, are available for rendering modiﬁcation proposed by Jang et. al. 24 to add error resilien-only after the whole scene graph is decoded. The Hierar- cy, the order of the branches is explicitly speciﬁed in thechical3DMesh functionality was modeled on the prototype bitstream. Taubin and Rossignac report best compression ra-VRML implementation demonstrated by Guéziec et. al. 15 . tios obtained by constructing the face trees spiraling around 45 . Bossen 5 experimented with several alternative construc- tion schemes, including some which construct the trees as a5. Connectivity-Preserving Schemes function of the geometry and property prediction errors, andIn all the geometry compression schemes described in this concluded that a hybrid method performs best. All the oth-report the coordIndex arrays of the IndexedFaceSet n- er single-resolution compression schemes visit the faces in aodes given as input to the encoder and reconstructed by the similar spiraling fashion, but in breath-ﬁrst order.decoder, are usually not the same. This is so because the or-der of traversal of vertices and faces has to be changed to As in the Deering’s scheme, in all these connectivity-exploit the coherence associated with closeness within the preserving schemes some information has to added to themesh, as in the methods designed for accelerated rendering bitstream to determine which vertices correspond to whichdescribed above. previously indexed vertices, so that each vertex is trans- mitted exactly once. This stitching information is explicitly But in most cases these arrays are related by a one-to- transmitted up-front in the Topological Surgery scheme asone transformation decomposable as a sequence of the fol- a vertex graph, which optionally includes information to re-lowing three types of basic transformations: a cyclical per- cover non-manifold connectivity, or implicit and interleavedmutation of the corner values (vertex indices) of a face; a with the rest of the data in the other methods.permutation of the faces within the coordIndex array;and a permutation of the Î vertex coordinate vectors withinthe coord array, with the corresponding inverse permuta-tion applied to the face corner values. When this is the casewe say that the compression scheme preserves the connec- 7. Encoding of Planar Graphstivity of the given polygonal mesh. These transformations,which deﬁne an equivalence relation among IndexedFace- Early work on encoding of planar graphs is closely related toSet nodes, are regarded as producing new representations of the connectivity-preserving geometry compression schemesthe same polygonal mesh. When the polygonal meshes have described in this report. In particular, the method introducedproperties, the corresponding permutations of the property by Turan 48 is closely related to the Topological Surgery rep-arrays must be considered as well. Figures 1 and 2 show t- resentation. Since a planar graph can be drawn on a sphere,wo representation of the same polygonal mesh: a tetrahedron encoding a planar graph is the same as encoding the con-without properties. nectivity of a polygonal mesh with sphere connectivity. Tu- ran builds a spanning tree in the graph of Î vertices and6. Dual Graph Traversal uses it to represent the boundary of a simple polygon ofAn edge of a polygonal mesh is singular if it is shared by ¾Î ¾ vertices resulting of cutting the polygonal mesh with sphere connectivity through the vertex graph edges. Hethree or more faces, internal if it is shared by exactly two also presents an encoding scheme which requires slightlyfaces, and boundary if exactly one face is incident to it. The less than 12 bits per vertex. The Topological Surgery rep-dual graph of a polygonal mesh is the graph composed of resentation extends Turan’s construction to oriented mani-the faces of the mesh as dual graph nodes, and the internal fold polygonal meshes of arbitrary topological type, with aedges of the mesh as dual graph edges. signiﬁcantly more efﬁcient encoding. Itai and Rodeh 23 pro- All the geometry compression schemes reorder the faces pose a method to encode planar graphs, closely related toof the mesh according to an order of traversal of a maxi- Gumhold and Strasser’s scheme 17 , which requires no moremal spanning forest in the dual graph of the mesh, so that than 4 bits per vertex. Keeler and Westbrook 25 describe aeach connected component of the mesh corresponds to one new encoding for Turan’s construction which requires notree of the forest, and each face is visited exactly once. Since more than bits per vertex. The Eurographics Association and Blackwell Publishers 1999. c
5.
Gabriel Taubin / 3D Geometry Compression and Progressive Transmission A manifold polygonal mesh so deﬁned may be orientable but not oriented. Such a mesh can be oriented by choosing a consistent orientation for its faces (which may require to invert the orientation of one or more faces), but we regard this transformation as producing a different polygonal mesh. Most geometry compression schemes are restricted to, and preserve the connectivity of, oriented manifold polyg- A B onal meshes. Determining whether a manifold polygonal mesh is orientable or not, and if so choosing a consistent orientation for its faces is an additional pre-processing step that some geometry compression scheme do perform. To let the decoder recover the original orientation of the faces, an additional bit per face must be saved in the compressed bit- stream. But the methods that reorient faces to convert an ori- entable manifold into an oriented one usually discard these C D bits needed to reorient the faces back to their original ori- entation. We do not regard these methods as preserving theFigure 3: (A) Non-manifold mesh, (B) mesh with bound- connectivity.ary, (C) mesh with two connected components, and (D) ori-entable but not oriented mesh. Although Many real-world polygonal meshes are non- manifold meshes, they can be compressed by converting them to oriented manifold meshes by cutting through sin- gular vertices and edges 16 without affecting the geometry8. Oriented Manifolds Meshes of the mesh, and then encoding the additional stitching in-A vertex of a polygonal mesh is a boundary vertex if one formation in the bitstream 13 . This procedure can also be ap-or more boundary edges are incident to it, otherwise it is an plied to any orientable manifold polygonal mesh which isinternal vertex. A boundary vertex is regular if it has no in- not oriented, recovering the original connectivity (includingcident singular edge, and the set of its incident faces can be face original face orientations) after decompression. To doorganized as a list such that every pair of consecutive faces in this it is sufﬁcient to regard edges which are not consistentlythe list share exactly one regular edge. Similarly, an internal oriented by their incident faces as singular edges.vertex is regular if has no incident singular edge, and the setof faces incident to it can be organized as a cycle such that 9. Topological Surgeryevery pair of consecutive faces in the list share exactly oneregular edge. A polygonal mesh is a manifold if all its ver- The Topological Surgery scheme introduced by Taubin andtices and edges are regular, or non-singular. Figure 3 shows Rossignac 45 was the ﬁrst method proposed to compressexamples of manifold and non-manifold polygonal meshes the connectivity of manifold polygonal meshes of arbitrarywith different properties. topological type with no loss of information, as well as their geometry and associated properties with controlled loss only Each edge of a polygonal mesh has two possible orien- due to quantization. Because this method was at the core oftations corresponding to the two possible orderings of the the VRML Compressed Binary Format proposal 43 42 , a pre-two vertices. Each face of a polygonal mesh has two possi- print description of the method available since early 1996ble orientations corresponding with the two possible cyclical had wide circulation. We explain in detail how it was imple-orderings of its corner values. Each of these two orientation- mented in MPEG-4.s induces a consistent orientation on the edges incident tothe face. A manifold polygonal mesh is orientable if an ori- As in all the other single-resolution geometry compres-entation can be chosen for each of its faces such that for sion schemes, in the Topological Surgery representation theeach internal edge, the two incident faces induce opposite faces of an oriented manifold polygonal mesh are intercon-orientations on the common edge. All non-manifold polygo- nected by a face forest spanning the dual graph of the mesh,nal meshes are considered non-orientable. Polygonal meshes with each tree of the face forest spanning one connectedapproximating the boundary surface of solid objects are nor- component. The edges of the mesh that do not belong to themally orientable manifold meshes. An orientable manifold face forest deﬁne a vertex graph interconnecting all the ver-mesh is oriented if an orientation has been chosen for each tices of the polygonal mesh. Connected components of theof its faces such that for each internal edge, the two incident vertex graph are in one-to-one correspondence with connect-faces induce opposite orientations on the common edge. ed components of the mesh, and so, also with trees of the face forest. Figure 4 shows an example of this construction. When a polygonal mesh is represented as a VRML In-dexedFaceSet node, each of its faces has an orientation. Note that, since the polygonal mesh is manifold, each ver- The Eurographics Association and Blackwell Publishers 1999.c
6.
Gabriel Taubin / 3D Geometry Compression and Progressive Transmission ternal edge of the polygonal mesh belonging to the vertex graph corresponds to exactly two boundary loop edges. The encoding of this representation in the compressed da- ta stream is composed of: the encoding of the vertex graph, the encoding of the simple polygons, and the quantized, pre- dicted, and compressed geometry and property data. It is im- portant to pay special attention to how each of these elements is encoded, but also to their order in the bitstream, and how they are interleaved, because all of these issues affect not on- A B ly the compression efﬁciency, but also the decoder latency. In the MPEG-4 implementation the connectivity information is partitioned into global information, and per-triangle infor- mation. The global information is transmitted ﬁrst, followed by the per-triangle information interleaved with the geome- try and property data corresponding. 10. Topological Surgery in MPEG-4 In the original formulation 45 , the compressed bitstream was composed of, in order: the encoded vertex graph; the quan- C D tized geometry and property data bound per vertex to the mesh; the simple polygons; and the property data bound per face and per corner. As a result, the decoder had to decode and store a signiﬁcant proportion of the bitstream before it could made the ﬁrst face available for rendering. The single-resolution geometry compression scheme of MPEG-4 is also based on the Topological Surgery represen- tation, but incorporates signiﬁcant improvements in encod- ing efﬁciency, and other extensions. The improvements to the encoding of connectivity and overall bitstream organiza- tion and entropy encoding were proposed mainly by Bossen E F 5 . But elements of other competing schemes, such as the par-Figure 4: Topological surgery representation. (A) A torus allelogram prediction method used by Touma and Gotsman 47 , and a variation of the progressive quantization schemewith 9 vertices and 18 triangular faces. (B) It can be con-structed by identifying edges (stitching) along vertical and used by Li and Kuo 27 , were incorporated as well. The ex-horizontal boundaries. (C) Choose a root face, root edge, tension proposed by Guéziec et. al. 16 allows the encodingand root vertex for each connected component. (D) Traverse of any polygonal mesh (including non-manifolds) with nothe dual graph of the mesh constructing a spanning forest. loss of connectivity information and no repetition of geome-(E) Remaining edges form the vertex graph. (F) Cut through try and property data associated to singular vertices. And thevertex graph to create one simple polygon per connected changes proposed by Jang et. al. 24 add data partitioning forcomponent. error resiliency features to the encoding. Extensive experimental data collected within the MPEG-4 core experiments process validated all the accepted modiﬁ- cations. Figures 5 and 6 show plots of results of some of these experiments. A database of about 300 VRML model-tex graph edge is either a boundary edge of the mesh or has s without properties was collected from different sources inexactly two incident faces. If the polygonal mesh is now cut the Internet. About half of these models represent triangu-through the (internal) edges of the vertex graph, a cut mesh lar meshes, and the other half represent meshes with one oris obtained with the same number of connected components more polygonal faces. In all the plots the models are sort-as the original polygonal mesh, and with the face forest as ed by total number of vertices. Figure 5-A shows the totalits dual graph. Having a tree as a dual graph, each connected number of vertices and the average number of vertices percomponent of the cut mesh has simple polygon connectivity, connected component. Figure 6-B plots the absolute com-with all its vertices on its boundary and a single boundary pression efﬁciency of the MPEG-4 Topological Surgery en-loop joining all the vertices and boundary edges. Each in- coding compared to: VRML Compressed Binary Format, The Eurographics Association and Blackwell Publishers 1999. c
7.
Gabriel Taubin / 3D Geometry Compression and Progressive Transmission A BFigure 5: MPEG-4 Results: Models sorted by total numberof vertices, and average number of vertices per connectedcomponent.naive encoding, and original VRML representation (ascii).Figure 6-C is similar to Figure 6-B, but showing the relativecompression ratios. In all the cases but the original VRMLﬁles, vertex coordinates are quantized to 10 bits per coor-dinate. The naive encoding is a straightforward encoding ofthe quantized coord and coordIndex arrays. Note that theMPEG-4 Topological Surgery encoding is more than twiceas efﬁcient as the VRML Compressed Binary Format encod-ing, and about 30 times more efﬁcient than VRML for this Cfamily of models. The average size of the whole compressed Figure 6: MPEG-4 Results: Compression efﬁciency (bits perbitstream including connectivity and geometry is 10-15 bit- vertex), and relative performance.s per vertex, and decreases with the size of the mesh, withlarge models requiring as low as 4 bits per vertex. 10.2. Vertex Graph Encoding10.1. MPEG-4 Encoding When the polygonal mesh has sphere topology, the vertex graph is in fact a vertex tree. Let us consider this case ﬁrst.Figure 7 illustrates the structure of the Topological Surgery The vertex tree is run-length encoded. The tree is decom-syntax in MPEG-4. After a global header information (not posed into runs. A run connects a leaf or branching nodeshown in the ﬁgure) which includes quantization parameter- to another leaf or branching node through a path of zero ors, the compressed connected components are concatenated. more regular nodes. The order of traversal of the tree, deter-The vertex graph and triangle tree data constitute the glob- mined in the encoder process by the orientation of the mesh,al information each connected component. The triangle da- deﬁnes an order of traversals of the runs, and a ﬁrst and lastta contains not only the property data, but also a marching node for each run. Each run is encoded as a record com-bit and a polygon bit, which constitute the per triangle con- posed of three ﬁelds (vlast,vlength,vleaf). The vlast ﬁeld isnectivity information. The per triangle data includes an er- a bit that determines if the runs shares the ﬁrst node withror vector to correct the the position of the opposite vertex the next run or not. It determines the pushing of branchingpredicted by the parallelogram rule from the previous three node indices onto a traversal stack. The vlength ﬁeld is anvertices, error vectors to correct other property predictions integer with a value equal to the number of edges in the run.bound per vertex, per face, or per corner. All the different The vleaf ﬁeld is a bit which determines if the run ends in aﬁelds are arithmetic coded. leaf or branching node, and the popping of branching node The Eurographics Association and Blackwell Publishers 1999.c
8.
Gabriel Taubin / 3D Geometry Compression and Progressive Transmissionbase_layer() { ple mesh (manifold without boundary with Euler number 2, do { i.e., topologically equivalent to a sphere), the vertex graph connected_component() is a tree. When the manifold mesh is not simple (i.e., when } while ( not(last_component)) the mesh has boundary edges, or when the mesh does not} have sphere topology), the vertex graph contains loops. If the vertex tree is constructed as a spanning tree by depth ﬁrstconnected_component() { traversing the vertex graph, then for each loop, one back- vertex_graph() edge, or jump edge, connects a leaf node of the vertex tree triangle_tree() with a previously visited node, forming the loop. We repre- triangle_data() sent the vertex graph as an extended vertex tree, as illustrated} in ﬁgure 9, with each jump edge corresponding to two runs of the extended vertex tree ending in leave nodes.triangle_data() { root_triangle_data() To determine which edges of the vertex graph should be for each other triangle { classiﬁed as jump edges, the compression algorithm travers- if(marching_triangle) es the boundary edges of the simple polygon, ﬁnds the corre- marching_bit sponding edges in the graph, and constructs a spanning tree if(not(triangular_mesh)) with a standard algorithm 38 . polygon_bit The extended vertex tree is represented by a table of runs, other_triangle_data() as in the case of a mesh with sphere topology. Figure 9 also } illustrates how the decoder process builds the boundary loop} look-up table from the data contained in this data structure.Figure 7: Topological Surgery bitstream syntax in MPEG-4 Even though each jump corresponds to a single edge in(simpliﬁed). the vertex graph, we represent a jump by two runs in the extended vertex tree table, one of them having zero length. The ﬁrst, and true, run starts at the ﬁrst node the edge gets visited. The second run is generated when we reach the pre- viously visited node, which, then, needs to be considered as a branching node, and the run generated has zero length. Each run record of the extended vertex tree table is com- posed of a variable number of ﬁelds. A vertex run connects a leaf or branching node to another leaf or branching node through a path of zero or more regular nodes. The order of traversal of the tree deﬁnes a sequential order for the vertex runs, and a ﬁrst and last node for each run. Each vertex run is A B represented as a vertex run record composed of the following ﬁelds. The vlast ﬁeld is a bit that determines if the run sharesFigure 8: Encoding the vertex tree. (A) Decompose into runs the ﬁrst node with the next run or not. The vlength ﬁeld is anand run-length encode as table of vertex runs. (B) Each ver- integer with a value equal to the number of edges in the run,tex tree edge corresponds to two vertex loop edges. not counting the jump edges. The vleaf ﬁeld is a bit which determines if the run ends in a leaf or branching node. Each extended vertex run ending in a leaf node (vleaf=1) has an additional vjump ﬁeld, indicating if the last node of the ver-indices from the traversal stack. Figure 8 shows an example tex run is connected to another node through a jump edge.of this construction, and the relation between the vertex tree Note that each extended vertex run of length zero, which isand the boundary loop look-up table build by the decoder always associated with a jump edge, should be consideredprocess to stitch the boundary edges of the simple polygon as ending in a leaf. For these extended vertex runs, ﬁrst andback together to reconstruct the polygonal mesh. last node are the same. If vjump=1, the record also has a In general, the vertex graph is not a tree. For a connected jumpStart ﬁeld indicating whether this run corresponds tomanifold without boundary, each edge of the vertex graph the start or end of the run. Each jump edge connects the lastcorresponds to two polygon loop edges (i.e., boundary edges node of a run to a previously visited node. The node visit-of the simple polygon), but for manifolds with boundary, ed ﬁrst is the start of the jump (jumpStart=1), and the othersome edges of the vertex graph (those which correspond to one is the end of the jump (jumpStart=0). If jumpStart=0,boundary edges of the mesh) correspond to only one poly- the record also has a jumpDepth ﬁeld. Every time the start ofgon loop edge. As we mentioned above, in the case of a sim- a jump is encountered, the compression and decompression The Eurographics Association and Blackwell Publishers 1999. c
9.
Gabriel Taubin / 3D Geometry Compression and Progressive Transmission 8 0 7 1 4 6 2 3 5 9 3 0 3 2 2 10 1 1 1 11 2 2 0 1 VL 12 VL 1 VO 13 VO 0 VR VR [12122331001210] A B A B Figure 10: Constant-length encoding of a simple polygon. (A) Triangles labels according to their order of traversal. (B) Triangles labels according to their two bit code. The en- coding of the polygon is the sequence between the brackets. al internal edges. In this case one polygon bit per triangle is added to the bitstream to indicate which internal edges are virtual and which ones are real. Since the virtual edges C D will be removed by the decoding process, reconstructing the original faces, it is not necessary to take into account the po- tential creation of geometric artifacts. The triangulated simple polygon can be constant-length encoded with two bits per vertex (plus one polygon bit if necessary). This encoding process, illustrated in Figure 10, is performed by traversing the triangle tree. The traversal starts by entering the ﬁrst triangle through the root edge, with the root vertex assigned to the left vertex ÚÄ , and the second vertex assigned to the right vertex ÚÊ . The third vertex of the triangle is assigned to the opposite vertex ÚÇ , the edge E F Ä ´ÚÄ ÚÇ µ is the left edge, and the edge Ê ´ÚÊ ÚÇ µFigure 9: Building the boundary loop. (A) Decomposed ver- is the right edge. One bit is used to indicate whether eachtex graph into vertex tree (green) and jump edges (red). (B) edge (left and right) is a boundary edge or an internal edgeCreate extended vertex tree by cutting jump edges in half. of the polygon. If only the left edge is internal, we set ÚÊ(C) The extended vertex tree has two leaves for each jump ÚÇ and we continue with the other triangle incident to Ä .edge. (D) Build the extended vertex tree loop. (E) Connect If only the right edge is internal, we set ÚÄ ÚÇ and westart and end of each jump edge. (F) Boundary loop. continue with the other triangle incident to Ê . If both edges are internal, we push ÚÇ and ÚÊ onto a traversal stack, we set ÚÊ ÚÇ and we continue with the other triangle incident to Ä . If both edges are boundary and the traversal stackalgorithms push the reference to the jump edge onto an aux- is not empty, we pop ÚÊ and ÚÄ from the traversal stack,iliary jump stack. The value of jumpDepth is the depth of the and we continue with the other triangle incident to the edgecorresponding jump edge in the jump stack at the time the ´ÚÄ ÚÊ µ. If both edges are boundary, and the traversal stackcompression or decompression programs encounters the end is empty, we have ﬁnished visiting all the triangles of theof the jump. The reference is immediately removed from the simple polygon. For example, in Figure 10-A, the trianglesstack, moving subsequent references up, and reducing the are labeled with their order of traversal, and in Figure 10-B,total depth of the stack by one (and so reducing the number with their corresponding two-bit code, as a number in theof bits required to represent the depth of subsequent jump range ¼ ¿. Here, for each digit the ﬁrst bit equals ¼ if theedges). left edge is boundary, ½ if the left edge is interior. The second bit represents the right side and uses the same convention.10.3. Simple Polygon Encoding The encoding of this polygon is ½¾½¾¾¿¿½¼¼½¾½¼ .If the simple polygon is not composed of triangular faces, The simple polygon can also be represented as a tablethe ﬁrst step is to triangulate the faces, creating new virtu- of triangle runs in the same way as the vertex tree, except The Eurographics Association and Blackwell Publishers 1999.c
10.
Gabriel Taubin / 3D Geometry Compression and Progressive Transmissionthat each triangle run record is composed of only two ﬁeld- for a branching triangle, if we know the distance along thes (tlength, tleaf). A tlast ﬁeld is not necessary because the boundary loop from the left vertex to the right vertex for thetriangle tree is a binary tree, and each triangle run which run attached to the left edge, we set Ç Ä · , reconstructends in a branching node must be followed by exactly two the triangle Ä Ç Ê , push Ê and Ç onto the traversalruns. The structure of the triangle tree does not completely stack, set Ê Ç , and continue. As explained by Taubindescribe the triangulation of the simple polygon, though. To and Rossignac 45 , these lengths can be recursively comput-complete the description, an extra bit per triangle associat- ed for all the runs from the encoding of the polygon baseded with a regular node of the triangle tree must be included. on the formula Ð ½ · Ä · Ê , there is the distanceThis sequence of marching bits determines how to triangu- of one run, Ð is the length of the run. If the run ends in alate the triangle runs by advancing either on the left or on the branching node, Ä is the distance of the run attached to theright on the boundary of the simple polygon. left edge of the last triangle of the run, and Ê is the dis- tance of the run attached to the right edge of the last triangle Since in general many more marching triangles (codes ½ of the run. If the run ends in a leaf node, Ä Ê ½. Ifand ¾) are obtained than leaf (code ¼) or branching (code the two-bit code of the triangle has the value ¼ (leaf node of¿) triangles, we run-length encode this representation. The¿s and ¼s in the constant-length encoded sequence mark the the triangle tree), we set Ç Ä ½ or Ç Ê · ½, and reconstruct the triangle Ä Ç Ê . If the stack is emptyend of the triangle runs. In this example, the triangle-runs we have ﬁnished reconstructing the polygons. Otherwise weare deﬁned by the sub sequences ½¾½¾¾¿ , ¿ , ½¼ , ¼ , and pop Ä and Ê values from the stack, and continue. ½¾½¼ . Each run is encoded as a tlength ﬁeld, which is thenumber of two-bit codes in the corresponding sub sequence(6,1,2,1, and 4 in this case), and by a tleaf bit value deter- 10.5. Compression of Non-Manifold Connectivitymined by the last code in the sub sequence (¿ ¼, ¼ ½).The sequence of ½s and ¾s in each run becomes a sequence Since non-manifold meshes can be converted to manifold byof marching bits which determine how to triangulate the run cutting through singular vertices and edges 16 without affect-by marching either on the left or on the right boundary of ing the geometry, most geometry compression schemes arethe simple polygon. There is one marching bit for each tri- restricted to manifold polygonal meshes. Guéziec et. al. 13angle of the run, except for the last one (which is leaf or recently proposed an extension to the Topological Surgerybranching). In this example the sequence of marching bits is scheme to preserve the connectivity of any polygonal mesh. ¼½¼½½¼¼½¼ . In principle, a stack-based approach with one op-code per vertex in the order of traversal, and interleaved with the ver- tex tree data, can be used to establish the extra stitching in-10.4. Simple Polygon Decoding formation generating during the conversion to manifold. But since the vertices are interconnected forming a spanning for-The simple polygon decoding process reconstructs the trian- est, the unique paths from each vertex to the root of the treegles of each simple polygon as triplets Ø of poly- it belongs to is used here to deﬁne more compact stitches.gon boundary loop indices. These indices are subsequentlyreplaced with the vertex indices boundary loop look-up tableconstructed during the vertex graph decoding process. 10.6. Compression of Geometry and Properties Since the order in which the polygon vertices are visit- Vertex coordinates, colors, and texture coordinates are ﬁrsted during tree traversal is usually not the sequential order enclosed in a bounding box and quantized to a given numberof the boundary loop, the following recursive procedure is of bits per coordinate. Normals are quantized differently, asused to reconstruct the triangles of each simple polygon. As in the VRML Compressed Binary Format proposal 42 . Vertexdescribed above the traversal of a simple polygon starts by coordinates and properties bound per vertex are predicted us-entering the ﬁrst triangle crossing the root edge, with the left ing the parallelogram rule, and the corresponding errors areboundary loop index Ä ¼ corresponding to the root ver- encoded the ﬁrst time the vertex is visited. Properties boundtex, and the right boundary loop index Ê ½ corresponding per face and per corner are predicted as a linear combinationto the second vertex. In general, when we enter a triangle, we of ancestors along a tree. Per face properties use the trian-know the values of Ä and Ê , and only the opposite bound- gle tree. The corner tree used to predict properties boundary loop index Ç must be determined. per corner is constructed by connecting the corresponding If the two-bit code is ½ (leaf node with next triangle on the corners across the marching edges, and by connecting theleft), we set Ç opposite corner to the left corner of the triangle. Ê · ½ (addition and subtraction is modulothe length of the polygon boundary loop) and reconstruct thetriangle Ä Ç Ê , we set Ê Ç , and continue. If the 11. Multi-Resolution meshestwo-bit code is ¾ (leaf node with next triangle on the right),we set Ç Ä ½, reconstruct the triangle Ä Ç Ê , When the number of vertices and faces in a polygonal meshwe set Ä Ç , and continue. To determine the value of Ç is very large, the graphics rendering hardware may not be The Eurographics Association and Blackwell Publishers 1999. c
11.
Gabriel Taubin / 3D Geometry Compression and Progressive Transmissionable to achieve frame rates high enough for interactive ap- same time. On one end of the scale we have methods to pro-plications. Multi-resolution polygonal meshes, or levels of gressively transmit meshes with as many levels of detail asdetail (LOD) hierarchies, solve the problem by trading im- vertices 19 34 with low compression efﬁciency. On the otherage quality for speed. Since the time required to render a end we have methods to compress any multi-resolution meshframe grows with the complexity of the scene, rendering produced by a vertex clustering algorithm with compressionlower resolution levels yield higher frame rates. When there ratios comparable to the best single-resolution schemes 41 ,is relative motion of the objects with respect to the camer- but not progressively.a, the distance between an object and the camera is used toselect a sufﬁciently low level of detail and still maintain an Furthermore, most polygonal mesh simpliﬁcation algo-interactive frame rate. When the scene becomes static, lower rithms have been designed for accelerated rendering, withoutframe rates become acceptable and higher resolution levels taking into account the constraints that progressive transmis-are rendered yielding better image quality. sion and a compressed representation may impose. Several existing methods to generate multi-resolutionpolygonal meshes are based on vertex clustering algorithms.In one of these multi-resolution meshes, the set of vertices 12. Progressive Transmissionof each level of detail is partitioned into disjoint subsets ofvertices called clusters. The next (lower resolution) level of The Progressive Meshes (PM) method for progressive trans-detail is determined by collapsing all of the vertices in each mission of triangular meshes proposed by Hoppe 19 is re-cluster into a single vertex. stricted to meshes generated by edge collapses with no To prevent visual artifacts, sometimes referred to as pop- change of topological type. Since it requires Ç´Î ÐÓ ¾ ´Î µµping, this correspondence between vertices of consecutive bits to double the size of a mesh with Î vertices 40 , the P-levels of detail can be used to animate the transition, or to M scheme is not an efﬁcient geometry compression schemegeomorph, from one level of detail to the next by interpolat- . However, by reordering the sequence of edge collapsesing the positions of corresponding vertices as a function of Hoppe can improve compression efﬁciency 20 . By restrict-time. ing the edge collapses to form a forest in the graph of the mesh, the Progressive Forest Split (PFS) scheme of Taubin Some vertex clustering algorithms are based on edge col- et. al. 40 requires only Ç´Î µ bits to double the size of a meshlapses 21 35 8 , and others are based on triangle collapses 18 . with Î vertices.Because they are designed to operate on manifolds, thesemethods are efﬁcient at simplifying meshes composed of a The Progressive Simplicial Complexes (PSC) scheme ofsmall number of large parts. Other methods based on edge Popovic and Hoppe 34 is an extension of the PM schemecollapse are constrained to maintain a constant topological that transmits both the connectivity and the geometry in pro-type 12 19 40 . gressive fashion, but allowing changes in topology to occur. However, the scheme also requires Ç´Î ÐÓ ¾ ´Î µµ bits to An early vertex clustering method due to Borrel and double the size of the mesh and the compression algorithmsRossignac 37 4 uses the geometric proximity of vertex po- are very costly, requiring several hours to compress a meshsitions to construct clusters. This method can transform the of moderate size.topology (connect disconnected parts) and is particularly ef-ﬁcient at simplifying meshes composed of many small dis- A scheme closely related to PM and PSC is the MetaS-tinct components. The method produces non-manifold con- tream format of Abadjev et. al. 1 .ditions (singular vertices and edges) when pairs of verticesnot connected by edges are clustered. Some edge-collapse A method for representing any mesh generated by vertexbased methods also allow the identiﬁcation of pairs of ver- clustering in progressive (but not compressed) form was in-tices not connected by edges by creating virtual edges 11 . troduced by Guéziec et. al. 14 , together with a data structure to efﬁciently organize the LOD hierarchy in the client. The It is desirable to transmit a multi-resolution mesh progres- data structure is progressively loaded as the levels of detailsively from low to high resolution, so that the client could are received.render a level of detail as soon as it is received and decod-ed, but before ﬁnishing receiving and decoding the whole A method for representing any mesh generated by vertexhierarchy. This technique permits a user to interact with the clustering in compressed (but not progressive) form was in-mesh prior to receiving more detailed levels. Of course, it troduced by Taubin et. al. 41 . Compared to PSC, the compres-is also desirable to transmit only the differences between sion algorithm of this method requires seconds to compressconsecutive levels of detail, and to transmit this information similar meshes, requires only a third of the memory, andin compressed form. But progressive transmission of multi- achieves compression efﬁciency comparable with the mostresolution polygonal mesh data with many levels of detail efﬁcient single-resolution schemes. But the data is not trans-and high compression ratios are difﬁcult to achieve at the mitted progressively. The Eurographics Association and Blackwell Publishers 1999.c
12.
Gabriel Taubin / 3D Geometry Compression and Progressive Transmission boundary loops with one of the simple polygons, and ﬁnally displacing the new vertices. A multi-resolution mesh represented in the PFS format is composed of an initial low resolution level of detail followed by a sequence of forest split operations. The TS method is used to represent the lowest resolution level of detail because the PFS representation is a natural extension of the represen- tation used in this scheme. A B 13.1. The Forest Split Operation A forest split operation, illustrated in Figure 11, is repre- sented by: a forest in the graph of vertices and edges of a mesh; a sequence of simple polygons; and a sequence of ver- tex displacements. The mesh is reﬁned by cutting the mesh through the forest, splitting the resulting boundaries apart, ﬁlling each of the resulting tree boundary loops with one of the simple polygons, and ﬁnally, displacing the new vertices. Applying a forest split operation involves: 1) cutting the mesh through the forest edges; 2) triangulating each tree C D loop according to the corresponding simple polygon; and 3)Figure 11: The forest split operation. A: A triangular mesh displacing the new vertices to their new positions. As willwith a forest of edges marked in red. B: Resulting mesh af- be explained in the next section, some of the information re-ter cutting through the forest edges and splitting vertices in quired to perform these steps, such as the correspondencethe resulting tree boundary loops. C: Simple polygons to be between trees of the forest and simple polygons, and be-stitched to the boundary loops. The correspondence between tween tree boundary loop edges and polygon boundary looppolygon boundaries and tree boundary loops is implicit. D: edges of each corresponding tree-polygon pair, is not givenThe reﬁned mesh. Normally, to produce a smooth transition, explicitly, but is based on an implicit convention for enumer-the vertices are displaced only after the boundary loops are ating mesh elements.triangulated. In the ﬁgure they have been displaced imme-diately after the cutting to illustrate the connectivity reﬁne- 13.2. Enumeration of mesh elementsment process. Given a triangular mesh with Î vertices and Ì triangles, we assume that the vertices have consecutive vertex indices in the range ¼ Î ½, and the triangles have consecutive13. Progressive Forest Split triangle indices in the range ¼ Ì ½. The edges of theThe Progressive Forest Split (PFS) scheme 40 features an mesh, which are represented by pairs of vertex indices ´ µadaptive reﬁnement scheme for storing and transmitting tri- with , are ordered lexicographically and assigned con-angle meshes in progressive and highly compressed form. In secutive edge indices in the range ¼ ½. The trees inthis scheme a manifold triangular mesh is represented as a the forest are ordered according to the minimum vertex in-low resolution polygonal model followed by a sequence of dex of each tree. The root vertex Úrt of each tree in the forestreﬁnement operations. The scheme permits the smooth tran- is the leaf of the tree with the minimum index. Starting atsition between successive levels of reﬁnement. High com- the root, the boundary loop created by cutting along the treepression ratios are achieved by using a new reﬁnement oper- can be traversed in cyclic fashion in one of the two direction-ation which can produce more changes per bit than existing s. The root edge rt of the tree is the only edge of the treeschemes. The scheme requires only Ç´Î µ bits to double the which has the root vertex as an endpoint. Of the two trian-size of a mesh with Î vertices. gles incident to the root edge of the tree, the root triangle Ørt of the tree is the one with the minimum triangle index. The The forest split operation, the reﬁnement operation of the root triangle of the tree determines the direction of traver-PFS scheme, is illustrated in Figure 11. It is speciﬁed by sal of the tree boundary loop. Of the two edges of the treea forest in the graph of vertices and edges of the mesh, a boundary loop corresponding to the root edge of the tree, thesequence of simple polygons (triangulated with no internal root edge rt of the tree boundary loop is the one incident tovertices), and a sequence of vertex displacements. The mesh the root triangle. Figures 12-A,B illustrate these concepts.is reﬁned by cutting the mesh through the forest, splitting theresulting boundaries apart, ﬁlling each of the resulting tree Each simple polygon has a boundary edge identiﬁed as The Eurographics Association and Blackwell Publishers 1999. c
13.
Gabriel Taubin / 3D Geometry Compression and Progressive Transmission A B A B C D C D E F C DFigure 12: When a mesh is cut through a tree of edges (red Figure 13: Construction and triangulation of tree boundaryand green edges in A), a tree boundary loop (red and green loops. A,B: No tree vertices in the mesh boundary. C,D: Aedges in B) is created with each edge of the tree correspond- tree vertex isolated in the mesh boundary requires an extraing to two edges of the boundary loop. Some vertex indices tree loop edge. E,F: A tree edge on the mesh boundary edgesare assigned before cutting (C) to new tree boundary loop does not require an extra tree loop edge, but some of the newvertices, others are assigned subsequent indices (D). The vertex indices may only be used by new triangles. Note thathole created by the cutting operation is ﬁlled by triangulat- the tree may have several contacts with the mesh boundary.ing the boundary loop using a simple polygon (E) resultingin a reﬁned mesh (F) with the same topological type as theinitial mesh. 13.3. Cutting through forest edges Cutting through a forest of edges can be performed sequen- tially, cutting through one tree at time. Each cut is typically a local operation, affecting only the triangles incident to ver-the root edge rt , with one of the two endpoints labeled as tices and edges of the tree. However, as in the TS method, athe root vertex Úrt , and the other endpoint labeled as the sec- single cut could involve all the triangles of the mesh. Cuttingond vertex Ú¾ . Figure 12-E illustrates these concepts. The requires duplicating some tree vertices, assigning additionalcyclical direction of traversal of the polygon boundary loop indices to the new vertices and ﬁxing the speciﬁcation of theis determined by visiting the root vertex ﬁrst, followed by affected triangles.the second vertex. The correspondence between vertices andedges in a tree boundary loop and the polygon boundary loop As illustrated in Figure 13-A,B, if no tree vertex is ais deﬁned by their directions of cyclical traversal and by the boundary vertex of the mesh, then the tree is completely sur-matching of their root vertices. rounded by triangles. Starting at the root triangle, all the cor- The Eurographics Association and Blackwell Publishers 1999.c
14.
Gabriel Taubin / 3D Geometry Compression and Progressive Transmissionners of affected triangles can be visited in the order of traver-sal of the tree boundary loop, by jumping from triangle toneighboring triangle, while always keeping contact with thetree. This process produces a list of triangle corners, calledthe corner loop, whose values need to be updated with thenew vertex indices. While traversing this list, we encounterruns of corners corresponding to the same vertex index be-fore the cut. A new vertex index must be assigned to eachone of these runs. To prevent gaps in the list of vertex indiceswe ﬁrst need to reuse the vertex indices of the tree vertices,which otherwise would not be corner values of any triangles. A BThe ﬁrst visited run corresponding to one of these vertices is Figure 14: Effect of post-smoothing. A: Coordinates quan-assigned that vertex index. The next visited run correspond- tized to 6 bits per coordinate. B: Result of applying the s-ing to the same vertex index is assigned the ﬁrst vertex index moothing algorithm of Taubin 39 with parameters Ò ½not yet assigned above the number of vertices of the meshbefore the cut. This procedure performs the topological cut. ¼ ¼ ¼ .For example, in Figure 12-C, the vertex index values of thecorners in the corner loop list are: ½¾¿¿¿¿¿¾ ¾½½½½ 13.6. Pre and post smoothingThe list can be decomposed into 6 runs ½½½½½ , ¾ , ¿¿¿¿¿ , The differences between vertex positions before and after ¾, , and ¾ . As shown in Figure 12-D, the vertex each forest split operation can be made smaller by repre-indices assigned to these runs are ½, ¾, ¿, , , . senting these errors as the sum of a global predictor plus a correction. We use the smoothing method of Taubin 39 as a A tree with Ñ edges containing no mesh boundary ver- global predictor. The method requires only three global pa-tices creates a tree boundary loop of ¾Ñ edges. This may rameters which are included in the compressed data stream.not be the case when one or more tree vertices are also part After the connectivity reﬁnement step of a forest split oper-of the mesh boundary. As illustrated in Figures 13-C,D,E,F, ation is applied, the new vertices are positioned where theirseveral special cases, must be considered. These special cas- corresponding vertices in the previous level of detail werees treat collapsed edges incident to or on the mesh boundary positioned and the mesh has many edges of zero length (al-produced by the PFS generation algorithms. l the new triangles have zero surface area). The smoothing method of Taubin, which tends to equalize the size of neigh- boring triangles, brings the endpoints of most such edges13.4. Triangulating tree boundary loops apart, most often reducing the distance to the desired ver-By replacing each run of corners in the corner loop with tex positions. The corrections, the differences between thethe assigned vertex index, we construct a new list represent- vertex positions after the split operation and the result of s-ing the tree boundary loop, If the tree boundary loop has Ñ moothing the positions before the split operation, are thenvertices, so does the corresponding polygon boundary loop. quantized according to the global quantization grid and en-Each triangle Ø of the simple polygon deﬁnes a tropy encoded. To make sure that the resulting vertex po-new triangle of the reﬁned mesh by replacing the polygon sitions have values on the quantization grid, the smoothedboundary loop indices with their corresponding tree coordinates must be quantized before computing the correc-boundary loop indices. This is done using the list represent- tions. In our experiments, this procedure reduces the totaling the tree boundary loop as a lookup table. The triangles length of the entropy encoded corrections by up to 20-25%.of the simple polygon are visited in the order of a depth ﬁrsttraversal of its dual tree. The traversal starts with the trian-gle opposite to the root triangle and always traverses the left 14. Progressive Forest Split in MPEG-4branch of a branching triangle ﬁrst. In MPEG-4 the hierarchical mode representation is based on PFS. The base mesh is encoded according to the enhanced TS scheme, and followed by one or more reﬁnement lay-13.5. Displacing vertices ers. The encoding of each reﬁnement layer is composed ofTo satisfy the smooth transition property, vertex coordinates the entropy encoded sequence of forest edges, a sequencecorresponding to new vertices are ﬁrst assigned the same co- of simple polygons with no vertex coordinate data, but withordinates as the corresponding tree vertices before the cut. per face and per corner property data associated with the newTo prevent the appearance of holes, these vertices are dis- triangles, and ﬁnally displacements for the vertex coordinateplaced after the boundary loops are triangulated. Optionally, and properties associated with loop vertices, and faces andall affected vertices may be repositioned. corners incident to loops. Optionally, updates for the remain- The Eurographics Association and Blackwell Publishers 1999. c
Be the first to comment