• Like
Taubin ibm21880
Upcoming SlideShare
Loading in...5
×

Taubin ibm21880

  • 133 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
133
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. RC 21880 (Log 98449) 11/09/2000Computer Science / MathematicsIBM Research ReportIs This a Quadrisected Mesh ?Gabriel TaubinIBM T.J. Watson Research CenterP.O. Box 704Yorktown Heights, NY 10598Email : taubin@us.ibm.comLimited Distribution NoticeThis report has been submitted for publication outside of IBM and will probably be copyrighted is accepted forpublication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer ofcopyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peercommunications and specific requests. After outside publication, requests should be filled only by reprints or legallyobtained copies of the article (e.g., payment of royalties). Some reports are available athttp://domino.watson.ibm.com/library/CyberDig.nsf/home. Copies may requested from IBM T.J. Watson ResearchCenter, 16-220, P.O. Box 218, Yorktown Heights, NY 10598 or send email to reports@us.ibm.com.IBM Research DivisionAlmaden - Austin - Beijing - Delhi - Haifa - T.J. Watson - Tokyo - Zurich
  • 2. Is This A Quadrisected Mesh ? Gabriel Taubin ½ IBM T. J. Watson Research CenterABSTRACTIn this paper we introduce a fast and efficient linear time and spacealgorithm to detect and reconstruct uniform Loop subdivision struc-ture, or triangle quadrisection, in irregular triangular meshes. In-stead of a naive sequential traversal algorithm, and motivated bythe concept of covering surface in Algebraic Topology, we intro-duce a new algorithm based on global connectivity properties ofthe covering mesh. We consider two main applications for this al-gorithm. The first one is to enable interactive modeling systemsthat support Loop subdivision surfaces, to use popular interchangefile formats which do not preserve the subdivision structure, such asVRML, without loss of information. The second application is toimprove the compression efficiency of existing lossless connectiv-ity compression schemes, by optimally compressing meshes withLoop subdivision connectivity. Extensions to other popular uni-form primal subdivision schemes such as Catmul-Clark, and dualschemes such as Doo-Sabin, are relatively strightforward but willbe studied elsewhere.CR Categories and Subject Descriptors:I.3.5 [Computer Graphics]: Computational Geometry and Object A BModeling - surface, solid, and object representations.General Terms: Subdivision surfaces, 3D Geometry Compres-sion, Algorithms, Graphics.1 INTRODUCTIONSubdivision surfaces are becoming a popular multi-resolution rep-resentation in modeling and animation [18, 17]. For example Fig-ure 1-AB shows the result of applying Loop’s triangle quadrisec-tion scheme [6] to a triangular mesh. Since the most popular inter-change file formats, such as VRML [15], do not preserve the sub-division structure, a problem exists if the model is saved using oneof these file formats and further editing is required at a later time.Alternatively, a proprietary file format with support for subdivisionsurfaces can be used, but limiting the distribution of the content.The method introduced in this paper to detect uniform quadrisec-tion connectivity and to reconstruct the subdivision structure solvesthis problem. Most 3D geometry compression techniques por polygonal meshespreserve the connectivity information without loss [13]. Lossless C Dconnectivity compression schemes are important for example, whena mesh is carefully constructed by an artist using a modeling or ani- Figure 1: Algorithm overview. A: Coarse mesh (Î ½½mation package. In this framework, changing the connectivity may ½ ½ Î   · ¾). B: Quadrisected mesh (Î ¾ ¿destroy important features such as crease lines. In most interactivemodeling systems polygonal meshes are constructed and refined by ¾ Î   · ¾). The clustering mesh of this quadrisected mesh has two connected components. C: First component of clus-recursively applying a sequence of operators to a relatively simplebase mesh. Some of these operators, such as uniform subdivision, tering mesh (Î ¾½¾ ¾ Π ·   ½¿ ). Notechange the connectivity, while others, such as smoothing, change the large number of holes and face overlap. D: Second component of clustering mesh equivalent to coarse mesh. ½ IBM T.J.Watson Research Center, P.O.Box 704, Yorktown Heights, NY 10598,taubin@us.ibm.com. On sabbatical, from 08/01/2000 to 07/31/2001, CalTech,Pasadena, CA 91125, taubin@caltech.edu. 1
  • 3. the geometry. One example of this process is a mesh constructedby recursively applying a small number of uniform subdivision and Ú¿ ¾¿ Ú ¾ Ú¿ Ú ¾¿ ¾ Úsmoothing steps to a coarse mesh [10]. When a 3D polygonal mesh is large and generated by over- ¿ ¾sampling a relatively smooth surface with simple topology, such as ¼those produced by 3D scanning systems, lossy connectivity com- ¿½ ½¾ Ú ¿½ Ú½¾pression schemes can be used. Simplification algorithms [3] can ½be regarded as lossy conectivity compression techniques. Anothervery efficient scheme to compress this kind of data is based onremeshing, i.e., on approximating the geometry of the given polyg- Ú ½ Ú ½onal mesh by a semi-regular subdivision surface within certain tol-erance, and using wavelet-based coding techniques to compress the A Bgeometry information [5]. This method does not produce goodcompression results when the topology is not simple, though, and Figure 2: Notation used for triangle quadrisection. A: A trian-replacing the connectivity of the mesh is not always acceptable. gle ´Ú½ Ú¾ Ú¿ µ with edges edges ½¾ ´Ú½ Ú¾ µ, ¾¿ Uniform subdivision schemes can be regarded as optimal pro- ´Ú¾ Ú¿ µ, and ¿½ ´Ú¿ Ú½ µ. B: The quadrisected triangle withgresive connectivity compression schemes, because the cost of en- Î -vertices Ú½ , Ú¾ , and Ú¿ , -vertices Ú½¾ , Ú¾¿ , and Ú¿½ , and facescoding each subdivision step is constant [11]. Unfortunately, cur- ¼ ´Ú½¾ Ú¾¿ Ú¿½ µ, ½ ´Ú½ Ú½¾ Ú¿½ µ, ¾ ´Ú¾ Ú¾¿ Ú½¾ µ, andrent geometry compression schemes [13] do not detect subdivision ¿ ´Ú¿ Ú¿½ Ú¾¿ µ.connectivity, and as a result, the cost of encoding a uniform subdi-vision step is normally function of the size of the coarse mesh. angles through regular edges. The corners of the tile set are the T B B/T T B B/T vertices of the corner triangles not shared with the center triangle. 4 64 16.00 4,096 1,704 0.42 In a naive traversal algorithm to solve our problem tile sets are 16 96 6.00 16,384 3,744 0.23 sequentially constructed while the mesh is traversed, say in depth- 64 192 3.00 65,536 8,192 0.13 first order, trying to cover it avoiding tile overlaps, i.e., every face 256 384 1.50 262,144 18,248 0.07 is allowed to belong to at most one tile set. If when the mesh traver- 1,024 784 0.77 sal procedure stops, not all the faces are covered by tile sets, a new traversal must be started from a tile set not visited during the previ-Table 1: Cost of encoding the connectivity of a tetrahedron and eight ous traversal. Since each triangle is covered by up to four tile sets,meshes constructed by recursive triangle quadrisection with the MPEG-4 we may need to restart the traversal up to four times to decide if the3D Mesh coder. T: number of mesh triangles, B: cost to encode connectiv- fine mesh has subdivision structure or not. Non-manifold situationsity in bits, B/T average cost to encode connectivity, in bits per triangle. are difficult to handle, and may require backtracking. Instead of this sequential algorithm, we propose an alternative For example, Table 1 shows the cost of encoding the connectiv- global approach, where all the traversal is avoided, and replacedity of a tetrahedron and eight meshes constructed by recursive tri- by a parallelizable algorithm to construct the covering mesh of aangle quadrisection with the MPEG-4 3D Mesh coder [8] in single- triangular mesh. The covering mesh of a triangle mesh is composedresolution mode [12]. Note that, the total cost of encoding a quadri- of triangular faces called tiles supported on the same set of vertices.sected mesh is about twice the cost of encoding the original mesh   The tiles are in ½ ½ correspondence with all the tile sets that can ´ ̵ ¾ ´Ì µ, while if optimally encoded, the incremental be constructed in the original mesh, and when quadrisected, eachcost should be constant ´ Ì µ ´Ì µ · Ç ´½µ, corresponding one has the same connectivity as the corresponding tile set.to the number of bits used to represent the instruction specifying Our algorithm, motivated by the concept of covering surface inthe subdivision operation in the compressed bitstream. Other sin- Algebraic Topology [7], is based on a theorem that states that a tri-gle resolution schemes [14] are more efficient at compressing these angular mesh is a quadrisected mesh if and only if it is equivalentquasi-regular meshes, but still the incremental cost of encoding a to the quadrisection of one connected components of its coveringquadrisected mesh is function of the size of the coarse mesh. mesh. Figure 3 illustrates this construction for a simple quadri- The method introduced in this paper, to detect uniform subdivi- sected mesh. The connected components of the covering mesh aresion connectivity and to reconstruct the subdivision structure, can painted in different colors, and displaced in space (vertex positionsbe used to minimize the cost of encoding the connectivity informa- are irrelevant). Note that the quadrisection of the purple connectedtion of a fine mesh with uniform subdivision connectivity by repre- component is equivalent to the input mesh.senting the connectivity information as a coarse mesh followed by There is a cannonical mapping between the covering mesh andone or more uniform subdivision steps, rather than as a fine mesh the corresponding triangular mesh, that assigns vertices to verticescompressed with a single-resolution or progressive scheme. and faces to faces. Establishing whether or not the quadrisection of a given connected component of the covering mesh is equivalent to the original mesh reduces to simple and linear counting algorithms2 ALGORITHM OVERVIEW that determine if the cannonical mapping restricted to the connectedA polygonal mesh is defined by the position of the vertices (ge-   component is ½ ½ and onto or not.ometry), by the association between each face and its sustainingvertices (connectivity); and optional colors, normals and texture 3 POLYGONAL MESHEScoordinates (properties). In this paper, we are primarily concernedwith the connectivity of triangular meshes. In this section we introduce some definition, notation, and facts Figure 2 shows the notation we use to represent a triangle and about polygonal meshes that we will need in subsequent sectionsthe result of quadrisecting it. We call tile set a group of four con- to formulate our main results more precisely. It can be skiped on anected triangles with the same connectivity as the result of quadri- first reading.secting one triangle, i.e., four trianges connected as in Figure 2-B.The center triangle of a tile set is connected to three corner tri- 2
  • 4. A B A BFigure 3: The covering mesh of a triangular mesh. A: quadrisected Figure 5: Example of triangle mesh quadrisection. A: coarse mesh;mesh. B: covering mesh with color-coded connected components. B: quadrisected mesh with Î -vertices (red) corresponding to ver-The connected components are artificially displaced in space. The tices of the coarse mesh, and -vertices (black).quadrisection of the purple connected component is equivalent tothe input mesh. it also belongs to the subset. Together with its subset of support- ing vertices Î Î , each connected component defines a sub- procedure ConnectedComponents ´Å µ mesh Å ´Î µ. Note the subsets of vertices ν Îcc are # initialize partition to set of singletons not necessarily disjoint, i.e., different connected components may È ¾ share vertices. We call a mesh connected if it is composed of only # traversal one connected component. It is sufficient to know how to solve for each regular edge connecting ½ and ¾ our problem for connected meshes: if the mesh is not connected, # if ½ and ¾ are in different partitions first decompose it into connected components, and then solve the È if ( .find´ ½µ È .find´ ¾µ) problem for each component. # join corresponding partitions An algorithm based on Tarjan’s fast union-find data structure È .union´ ½ ¾ µ [9] can be used to partition the set of faces of a mesh into its con- # find sets of supporting vertices nected components. It is described in pseudocode in Figure 4. It Å ´Î µ ½ cc first initializes the partition to one singleton per face, and then for # return submeshes each edge of the mesh, and each pair of different faces sharing the return È Å½ Åcc edge, replaces the subsets corresponding to the two faces by their union.Figure 4: Procedure to construct the connected components of a Mappings A mapping Ž ž from a first mesh Žmesh. into a second mesh ž is defined by a vertex function Πν ξ and a face function ½ ¾ that satisfy the following additional property: for every face ´Ú½ ÚÒ µ ¾ ½ of theConnectivity The connectivity of a polygonal mesh Å is de- first mesh, the sequence of vertices of the second mesh defined byfined by the incidence relationships existing among its Î vertices, the vertex function applied to the corners of the face, is (modulo edges, and faces. We will also use the symbols Î , , and cyclical permutations) equal to the face of the second mesh that theto denote the sets of vertices, edges, and faces. A face with Ò cor- face of the first mesh is mapped to by the face function. i.e.,ners is a sequence of Ò ¿ different vertices. If ´Ú½ ÚÒ µis a face, all the cyclical permutations of its corners are considered ´ µ ´ Î ´Ú½ µ Î ´ÚÒ µµ ¾ ¾identical, i.e., ´Ú ÚÒ Ú½ Ú  ½ µ for ½ Ò.Multiple connected faces (faces with holes) are not representable. Equivalence Two meshes Ž and ž are called equivalent ifVertices not contained in any face are called isolated. An edge is a mapping Ž ž exists such that both Î and arean un-ordered pair of different vertices that are consecutive in one ½   ½ and onto functions. In such case the mapping is called aor more faces of the mesh. We will denote by the set of faces in- mesh equivalence.cident to the edge. A boundary edge has exactly one incident face. Note that since the sets of vertices and faces are finite, the map-A regular edge has exactly two incident faces. A singular edge has ping is an equivalence if and only if the vertex and face functionsthree or more incident faces. Because the edges are derived from are onto, and the number of vertices and faces in both meshes arethe faces, we write a mesh as Å ´Î µ. We asume the reader the same: ν ξ and ½ ¾.is familiar with the concepts of manifold, orientable, oriented and And a simple linear time and space algorithm to count the num-non-manifold mesh. The algorthms introduced in this paper do not ber of elements of setmake use of these concepts, though. ´ µ ¾Connected Components We say that two faces ½ and Òare connected if we can find faces ¾ Ò ½ such that each face can be used to determine if a function between two fi- shares and edge with its successor ·½ in the sequence (note nite sets is onto or not. Create a binary ´¼ ½µ array with elements in ½ and Ò ¾ are valid choices). This is an equivalence correspondence with the elements of and initialized to ¼. Then, ¾that Òrelation on the set of faces that defines a partition into disjoint for each element set the element corresponding to ´ µ toconnected components ½ cc . Each one of these connected ½. Finally, add all the values of the array. The function is onto ifcomponent is a maximal subset of connected faces, i.e., a subset and only if the sum is equal to the number of elements of .of faces that satisfies the following property: given a face in thesubset, a second face is connected to the first one if and only if 3
  • 5. Ú ¾¿ Ú¾ Ú ½¾ Ú ¼ ¿ Ú ¾¿ Ú ¼ ¾ Ú½¾ procedure CoveringMesh ´Å µ # initialization ¾¿ ½¾ ¾¿ ½¾ ¼ # construct tiles Ú¿ ¡ Ú½ for each face ´Ú½ Ú¾ Ú¿ µ ¾ ¡ ¿½ # if incident edges are regular ¿½ ¡ if ( ½¾ ¾¿ ¿½ are regular) # construct tile and append to set of faces Ú ¿½ ¼ ½ Ú Ú ¿½ append ´Ú½¾ Ú¾¿ Ú¿½ µ to Å ´Î µ A B return ÅFigure 6: Notation used for tile construction. A: A tile set. B: Thecorresponding tile. Figure 7: Procedure to construct the covering mesh of a triangular mesh. Notation as in Figure 6.Quadrisection Figure 5 shows an example of a fine mesh (B)with 24 triangles resulting from quadrisecting a coarse mesh (A)with 6 triangles. The vertices of the coarse mesh are a subset ofthe vertices of the fine mesh. We call these vertices the Î -verticesof the fine mesh. The remaining vertices of the fine mesh are in½   ½ correspondence with the edges of the coarse mesh. We callthese vertices the -vertices of the fine mesh. Since we are onlyconcerned with connectivity here, the position of the -vertices inspace is irrelevant, but for illustration purposes, we draw them asthe mid-edge points of the coarse mesh edges in Figure 5-B. Eachtriangular face of the coarse mesh is replaced by four triangles inthe fine mesh. One triangle connects the three incident -vertices,and each of the other three triangles connects one Î -vertex and two -vertices. In general, the quadrisection operator É transforms a triangularmesh Å ´Î µ into a new triangular mesh Å É ´ Î É É µ,and defines a mapping Å Å Å É , which assigns each vertexof Å into a Î -vertex of Å É , and each face of Å into the centerface of the corresponding quadrisected face. Both functions are  ½ ½ but not onto. With respect to the number of vertices, edges,and faces, the following relations hold: ´Î É Î · É ¾ ·¿ (1) É Figure 8: In general, four tiles (defined by the blue corners) cover each triangle (red). Note that these four tiles have neither common The quadrisection operator is one of many subdivision schemes vertices nor common edges in the covering mesh.that introduces new vertices along the edges of the coarse mesh,and replaces the coarse faces by fine faces supported on the newset of vertices. In general, because of limitations of the smoothing is defined by these three vertices ¼ ´Ú½¾ Ú¾¿ Ú¿½ µ. Note thatoperators associated with these subdivision methods, meshes are as a mesh the quadrisected tile is equivalent to the submesh of Årequired to be manifold without boundary, and special smoothing defined by the face , its three immediate neighbors ½¾ , ¾¿ , andrules can be designed for manifold meshes with boundaries (holes) ¿½ , and their suporting vertices, which we call a tile set of Å .[1]. But since the connectivity refinement rules can be applied tonon-manifold meshes, and our algorithm to detect and reconstructsubdivision connectivity also works on non-manifold meshes, we 5 THE COVERING MESHallow our meshes to be non-manifold. Note that the quadrisection operator preserves and reflects con- The covering mesh of a triangular mesh Å ´Î µ is a newnected components, i.e., the connected components of a mesh Å triangular mesh Å ´Î µ defined by the vertices and tiles  are always in ½ ½ correspondence with the connected components of Å . Figure 7 illustrates the algorithm to construct the coveringof the quadrisected mesh Å É . mesh of a mesh in pseudocode. Note that even if the mesh is manifold without boundary, the covering mesh may be non-manifold and with boundary. Also, as4 CONSTRUCTING TILES illustrated in Figure 8, each face may belong to up to four different tile sets of a triangular mesh, where the given fine triangle occupiesThe tiles of a mesh Å ´Î µ are best defined by the algorithm either the center position, or one of the three corners in each oneused to construct them, which we will describe with the notation of the four tile sets. The number of tile sets covering a face mayintroduced in Figure 6. Each face ´Ú½ Ú¾ Ú¿ µ , with three ¾ be less than four, and even zero, though, such as when a fine trian-regular edges ½¾ , ¾¿ , and ¿½ has three neighboring triangular gle or some of its immediate neighboring triangles are incident tofaces ½¾ , ¾¿ , and ¿½ . Each one of these faces has a vertex Ú boundary or singular edges.opposite to the corresponding edge . The tile corresponding to 4
  • 6. procedure IsQuadrisection ´Å µ procedure IsEquivalence ´ Å É Åµ # construct covering mesh # first check the easiest necessary conditions Å CoveringMesh´Å ) if ( ) return false # partition Å into connected components if (Î Î · ) return false Ž Åcc =ConnectedComponents´Å µ # initialize binary arrays # for each connected component Ò Ú ¼ Ú ¾Î for ½ cc Ò ¼ ¾ # determine if equivalent to Å # traverse faces, subdivide, and count if (IsEquivalence´ Å É Å µ) for each tile ¾ return Å ÒÚ ½ for each vertex Ú of the tile set covered by return Ò È ½ for each face of the tile set covered by if ( È Ò ) return false ÒÚ ) return false if (Î ÚFigure 9: Pseudocode of procedure to determine if a mesh has return truequadrisection connectivity, and to recover the subdivision structure. Figure 10: Procedure to determine if the mapping Å É Å The covering mesh operator , that assigns a triangular meshÅ ´Î µ to a new triangular mesh Å ´Î µ defines is an equivalence.a cannonical mapping Å É Å , from the quadrisection ofÅ into Å . If we partition the covering mesh into connected com- Theorem 1 is the basis of our algorithm to detect uniform quadri-ponents Ž Åcc , and apply the quadrisection operator to eachone of them, we obtain a partition of Å É into connected compo- section connectivity and to reconstruct the subdivision structure,nents Ž É É described in pseudocode in Figure 9. Åcc . The cannonical mapping restricted to the To determine if the mapping ´ É Å µ is an equiv-connected components also define mappings Å É Å. Å alence or not it is not necessary to construct the quadrisected con-Note that in general, the coresponding vertex and face functions of nected component Å É . It is sufficient to count all the vertices  these mappings are neither ½ ½ nor onto. For example, not allthe faces of Å may be covered by faces of Å É , and up to four and faces of tile sets covered by tiles in Å . Figure 10 shows suchfaces of Å É may be covering the same face of Å . With respect an algorithm in pseudocode.to vertices, restricted to the Î -vertices of Å É , the mapping is½   ½, but not necesarily so when restricted to the vertices; and 6 IMPLEMENTATION AND RESULTSsome vertices of Å may not correspond to any vertex of Å É . However, the following theorem, which constitutes the main A polygonal mesh is normally specified only by its vertices andresult of this paper, holds: faces, such as in the IndexedFaceSet node of the VRML stan- dard [15]. Neither the edges, which contain the incidence relation- ships among faces, nor the connected components of the mesh areTheorem 1 A connected triangular mesh Å ´Î µ has explicitly represented.quadrisection connectivity, if and only if Å É Å is a An explicit representation of edges is needed both to partitionmesh equivalence for some . the set of faces into its connected components, and by our tile con- struction algorithms described in section 4. The proof of the sufficiency is trivial. We refrase the necessity Efficient data structures to represent edges of oriented manifoldas follows: meshes, such as the half-edge data structure [16] or the quad-edge [2] data structure are well known. For non-manifolds meshes, these data structures need extensions [4]. We will asume that the dataTheorem 2 For every connected triangular mesh Å ´Î µ,the cannonical mapping Å É É Å É is a mesh equivalence structure used to represent the set of edges efficiently implements the edge access function ´Ú Ûµ ´Û Ú µ, which given two ver-for some . tices Ú and Û, returns the set of incident faces (which may be empty if the two vertices do not correspond to an edge of the mesh). InProof 2 Each face of Å defines one tile set in Å É and a cor- our implementation, we use a hash table to implement the edge ac-responding tile in Å É . Let ¾ be the set of all these tiles in cess function. This data structure can be populated (constructed) in½   ½ correspondence with . Since the vertices of these tiles linear time by visiting the faces in sequencial order.are supported on Î -vertices of Å , the set of vertices Î ¾ of these The full algorithm described by the pseudocode methods shown  tiles is in ½ ½ correspondence with the set of vertices Î . We in figures 4, 7, 9, and 10 has been implemented in C++. Figures 1,have constructed a mesh equivalence between Å and the submesh and 11 show examples where the algorithm has been run on meshesÅ ¾ ´Î ¾ ¾ µ of Å É , which can extended to an equivalence of moderate size with simple and complex topology.between the corresponding quadrisected meshes. Since subdivisionalso preserves conected components, we only need to show that ¾Å is a connected component of Å É . Å ¾ is clearly connected, 7 CONCLUSIONSbecause it is equivalent to Å , the result of subdividing Å is Å É ,which is connected, and the quadrisection operator does not change In this paper we have introduced a conceptually very simple and ef-the number of connected components. It only remains to be shown ficient algorithm to detect quadrisection connectivity in triangularthat no other tiles are connected to Å ¾ . But the tiles in É that meshes, and we have demonstrated it in a number of examples. Asare not members of ¾ are supported on -vertices, while tiles in explained in the introduction, this algorithm has important applica- ¾ are all supported on Î -vertices, and so, disconnected. tion in modeling systems, and connectivity compression schemes. 5
  • 7. REFERENCES [1] H Bierman, A. Levin, and D. Zorin. Piecewise smooth subdivision surfaces with normal control. In Siggraph’2000 Conference Proceed- ings, pages 113–120, July 2000. [2] L.J. Guibas and J. Stolfi. Primitives for the manipulation of general subdivisions and the computation of voronoi diagrams. ACM Trans- actions on Graphics, 4(2):74–123, 1985. [3] P. Heckbert. Course 25: Multiresolution surface modeling. Sig- graph’97 Course Notes, August 1997. [4] L. Kettner. Designing a data structure for polyhedral surfaces. In A B 14th. Annual ACM Symposium on Computational Geometry, pages 146–154, 1998. [5] A. Khodakovsky, P. Schr¨ der, and W. Sweldens. Progressive geom- o etry compression. In Siggraph’2000 Conference Proceedings, pages 271–278, July 2000. [6] C. Loop. Smooth subdivision surfaces based on triangles. Master’s thesis, Dept. of Mathematics, University of Utah, August 1987. [7] W.S. Massey. A basic course in algebraic topology. Springer-Verlag, New York-Berlin, 1991. ISBN 0-387-97430-X. [8] Mpeg4-3dmc-coder. [9] R.E. Tarjan. Data Structures and Network Algorithms. Number 44 C D in CBMS-NSF Regional Conference Series in Applied Mathematics. SIAM, 1983.Figure 11: Example with complex topology. A: Coarse triangular [10] G. Taubin. A signal processing approach to fair surface design. Inmesh (Î ½¼ ¾ ¾¾½¼ Î   ·   ½¼¼) is not Siggraph’95 Conference Proceedings, pages 351–358, August 1995.a quadrisected mesh because its covering mesh is connected. B:Quadrisection of coarse mesh (Î ½¼ ½ Î   · [11] G. Taubin, A. Gu´ ziec, W. Horn, and F. Lazarus. Progressive forest e   split compression. In Siggraph’98 Conference Proceedings, pages ½¼¼). The clustering mesh of this quadrisected mesh has 123–132, July 1998.two connected components. Rendering of edges has been turned [12] G. Taubin and J. Rossignac. Geometry Compression through Topo-off. C: First component of clustering mesh (Î ¿¿½ ¿½¾Î   ·  ¾ ¼ ). D: Second component of clustering logical Surgery. ACM Transactions on Graphics, 17(2):84–115, April 1998.mesh equivalent to coarse mesh. [13] G. Taubin and J. Rossignac. Course 38: 3d geometry compression. Siggraph’2000 Course Notes, July 2000. In a subsequent paper we plan to extend this algorithm to other [14] C. Touma and C. Gotsman. Triangle mesh compression. In Graphics Interface Conference Proceedings, Vancouver, June 1998.uniform subdivision schemes, such as Catmull-Clark, and Doo-Sabin; and to some adaptive subdivision schemes. [15] The Virtual Reality Modeling Language. ISO/IEC 14772-1, Septem- ber 1997. http://www.web3d.org. [16] K. Weiler. Edge-based data structures for solid modeling in curved- surface environments. IEEE Computer Graphics and Application, 5(1):21–40, January 1985. [17] D. Zorin and P. Schr¨ der. Course 23: Subdivision for modeling and o animation. Siggraph’2000 Course Notes, July 2000. [18] D. Zorin, P. Schr¨ der, and W. Sweldens. Interactive multiresolution o mesh editing. In Siggraph’97 Conference Proceedings, pages 259– 268, August 1997. 6