Taubin sm2001


Published on

Published in: Technology, Art & Photos
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Taubin sm2001

  1. 1. Published in Proceedings of ACM Solid Modeling 2001, Ann Arbor, MI, June 2001 Is This A Quadrisected Mesh ? Gabriel Taubin California Institute of Technology and IBM T. J. Watson Research Center £ A B C DFigure 1: Algorithm overview. A: Coarse mesh (Î ½½ ½ ½ Î   · ¾). B: Quadrisected mesh (Î ¾ ¿ ¾ Î   · ¾). The covering mesh of this quadrisected mesh has two connected components. C: First component of covering mesh(Î ¾½¾ ¾ Î   ·   ½¿ ). Note the large number of holes and face overlap. D: Second component of clustering meshequivalent to coarse mesh.ABSTRACT improve the compression efficiency of existing lossless connectiv- ity compression schemes, by optimally compressing meshes withIn this paper we introduce a fast and efficient linear time and space Loop subdivision connectivity. Extensions to other popular uni-algorithm to detect and reconstruct uniform Loop subdivision struc- form subdivision schemes such as Catmull-Clark and Doo-Sabin,ture, or triangle quadrisection, in irregular triangular meshes. In- are relatively straightforward but will be studied elsewhere.stead of a naive sequential traversal algorithm, and motivated by CR Categories: I.3.5 [Computer Graphics]: Computational Ge-the concept of covering surface in Algebraic Topology, we intro- ometry and Object Modelling—surface, solid, and object represen-duce a new algorithm based on global connectivity properties of tationsthe covering mesh. We consider two main applications for this al-gorithm. The first one is to enable interactive modelling systems Keywords: Subdivision surfaces, 3D Geometry Compression, Al-that support Loop subdivision surfaces, to use popular interchange gorithms, Graphics.file formats which do not preserve the subdivision structure, such asVRML, without loss of information. The second application is to 1 INTRODUCTION £ California Institute of Technology, MS-136-93, Pasadena, CA 91125,taubin@caltech.edu. On Sabbatical from IBM T.J. Watson Research Subdivision surfaces are becoming a popular multi-resolution rep-Center, Yorktown Heights, NY 10598 taubin@us.ibm.com resentation in modelling 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 one of these file formats and further editing is required at a later time. Alternatively, a proprietary file format with support for subdivision surfaces 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 solves this problem. Most 3D geometry compression techniques for polygonal
  2. 2. To appear in Proceedings of ACM Solid Modeling 2001, Ann Arbor, MI, June 2001meshes preserve the connectivity information without loss [13].Lossless connectivity compression schemes are important for ex- Ú¿ ¾¿ Ú¾ Ú¿ Ú¾¿ Ú¾ample, when a mesh is carefully constructed by an artist using amodelling or animation package. In this framework, changing the ¿ ¾connectivity may destroy important features such as crease lines. ¼In most interactive modelling systems polygonal meshes are con- ¿½ ½¾ Ú¿½ Ú½¾structed and refined by recursively applying a sequence of opera- ½tors to a relatively simple base mesh. Some of these operators, suchas uniform subdivision, change the connectivity, while others, suchas smoothing, change the geometry. One example of this process Ú½ Ú½is a mesh constructed by recursively applying a small number ofuniform subdivision and smoothing steps to a coarse mesh [10]. A B When a 3D polygonal mesh is large and generated by oversam- Figure 2: Notation used for triangle quadrisection. A: A trianglepling a relatively smooth surface with simple topology, such as ´Ú½ Ú¾ Ú¿ µ with edges ½¾ ´Ú½ Ú¾ µ, ¾¿ ´Ú¾ Ú¿ µ,those produced by 3D scanning systems, lossy connectivity com- and ¿½ ´Ú¿ Ú½ µ. B: The quadrisected triangle with Î -pression schemes can be used. Simplification algorithms [3] can be vertices Ú½ , Ú¾ , and Ú¿ , -vertices Ú½¾ , Ú¾¿ , and Ú¿½ , and facesregarded as lossy connectivity compression techniques. Another ¼ ´Ú½¾ Ú¾¿ Ú¿½ µ, ½ ´Ú½ Ú½¾ Ú¿½ µ, ¾ ´Ú¾ Ú¾¿ Ú½¾ µ, andvery efficient scheme to compress this kind of data is based on ¿ ´Ú¿ Ú¿½ Ú¾¿ µ.remeshing, 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 thegeometry information [5]. This method does not produce good 2 ALGORITHM OVERVIEWcompression results when the topology is not simple, though, andreplacing the connectivity of the mesh is not always acceptable. A polygonal mesh is defined by the position of the vertices (geome- try), by the association between each face and its sustaining vertices Uniform subdivision schemes can be regarded as optimal pro- (connectivity); and optional colors, normals and texture coordinatesgressive connectivity compression schemes, because the cost of en- (properties). In this paper, we are primarily concerned with the con-coding each subdivision step is constant [11]. Unfortunately, cur- nectivity of triangular meshes.rent geometry compression schemes [13] do not detect subdivision Figure 2 shows the notation we use to represent a triangle and theconnectivity, and as a result, the cost of encoding a uniform subdi- result of quadrisecting it. We call tile set a group of four connectedvision step is normally function of the size of the coarse mesh. triangles with the same connectivity as the result of quadrisecting one triangle, i.e., four triangles connected as in Figure 2-B. The center triangle of a tile set is connected to three corner triangles T B B/T T B B/T through regular edges. The corners of the tile set are the vertices of 4 64 16.00 4,096 1,704 0.42 the corner triangles not shared with the center triangle. 16 96 6.00 16,384 3,744 0.23 In a naive traversal algorithm to solve our problem tile sets are 64 192 3.00 65,536 8,192 0.13 sequentially constructed while the mesh is traversed, say in depth- 256 384 1.50 262,144 18,248 0.07 first order, trying to cover it avoiding tile overlaps, i.e., every face is 1,024 784 0.77 allowed to belong to at most one tile set. If when the mesh traver- sal procedure stops, not all the faces are covered by tile sets, a newTable 1: Cost of encoding the connectivity of a tetrahedron and eight meshes con- traversal must be started from a tile set not visited during the previ-structed by recursive triangle quadrisection with the MPEG-4 3D Mesh coder. T: num- ous traversal. Since each triangle is covered by up to four tile sets,ber of mesh triangles, B: cost to encode connectivity in bits, B/T average cost to encode we may need to restart the traversal up to four times to decide if theconnectivity, in bits per triangle. fine mesh has subdivision structure or not. Non-manifold situations are difficult to handle, and may require backtracking. Instead of this sequential algorithm, we propose an alternative global approach, where all the traversal is avoided, and replaced For example, Table 1 shows the cost of encoding the connectiv- by a parallelizable algorithm to construct the covering mesh of aity of a tetrahedron and eight meshes constructed by recursive tri- triangular mesh. Our algorithm has the same complexity as the se-angle quadrisection with the MPEG-4 3D Mesh coder [8] in single- quential algorithm, but it is conceptually simpler, and all the book-resolution mode [12]. Note that, the total cost of encoding a quadri- keeping required to support backtracking is avoided. But our al-sected mesh is about twice the cost of encoding the original mesh gorithm is potentially faster than the sequential algorithm, because ´ ̵ ¾ ´Ì µ, while if optimally encoded, the incremental the sequential algorithm requires four traversals to give a negativecost should be constant ´ Ì µ ´Ì µ · Ç ´½µ, corresponding answer.to the number of bits used to represent the instruction specifyingthe subdivision operation in the compressed bitstream. Other sin- The covering mesh of a triangle mesh is composed of triangular faces called tiles supported on the same set of vertices. The tiles aregle resolution schemes [14] are more efficient at compressing thesequasi-regular meshes, but still the incremental cost of encoding a   in ½ ½ correspondence with all the tile sets that can be constructedquadrisected mesh is function of the size of the coarse mesh. in the original mesh, and when quadrisected, each one has the same connectivity as the corresponding tile set. The method introduced in this paper, to detect uniform subdivi- Our algorithm, motivated by the concept of covering surface insion connectivity and to reconstruct the subdivision structure, can Algebraic Topology [7], is based on a theorem that states that a tri-be used to minimize the cost of encoding the connectivity informa- angular mesh is a quadrisected mesh if and only if it is equivalenttion of a fine mesh with uniform subdivision connectivity by repre- to the quadrisection of one connected components of its coveringsenting the connectivity information as a coarse mesh followed by mesh. Figure 3 illustrates this construction for a simple quadri-one or more uniform subdivision steps, rather than as a fine mesh sected mesh. The connected components of the covering mesh arecompressed with a single-resolution or progressive scheme. painted in different colors, and displaced in space (vertex positions 2
  3. 3. To appear in Proceedings of ACM Solid Modeling 2001, Ann Arbor, MI, June 2001 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. an un-ordered pair of different vertices that are consecutive in one or more faces of the mesh. We will denote by the set of faces in- procedure ConnectedComponents ´Å µ cident to the edge. A boundary edge has exactly one incident face. # initialize partition to set of singletons A regular edge has exactly two incident faces. A singular edge has È ¾ three or more incident faces. Because the edges are derived from # traversal the faces, we write a mesh as Å ´Î µ. We assume the reader for each regular edge connecting ½ and ¾ is familiar with the concepts of manifold, orientable, oriented and # if ½ and ¾ are in different partitions non-manifold mesh. The algorithms introduced in this paper do not È if ( .find´ ½µ È .find´ ¾µ) make use of these concepts, though. # join corresponding partitions È .union´ ½ ¾ µ Connected Components We say that two faces ½ and Ò are # find sets of supporting vertices connected if we can find faces ¾ Ò ½ such that each face Å ´Î µ ½ cc shares and edge with its successor ·½ in the sequence (note that # return submeshes Ò ½ and Ò ¾ are valid choices). This is an equivalence relation return È Å½ Åcc on the set of faces that defines a partition into disjoint connected components ½ cc . Each one of these connected component is a maximal subset of connected faces, i.e., a subset of faces thatFigure 4: Procedure to construct the connected components of a satisfies the following property: given a face in the subset, a secondmesh. face is connected to the first one if and only if it also belongs to the subset. Together with its subset of supporting vertices Î Î , each connected component defines a submesh Å ´Î µ. Noteare irrelevant). Note that the quadrisection of the purple connected the subsets of vertices ν Îcc are not necessarily disjoint, i.e.,component is equivalent to the input mesh. different connected components may share vertices. We call a mesh There is a canonical mapping between the covering mesh and the connected if it is composed of only one connected component. It iscorresponding triangular mesh, that assigns vertices to vertices and sufficient to know how to solve our problem for connected meshes:faces to faces. Establishing whether or not the quadrisection of a if the mesh is not connected, first decompose it into connected com-given connected component of the covering mesh is equivalent to ponents, and then solve the problem for each component.the original mesh reduces to simple and linear counting algorithms An algorithm based on Tarjan’s fast union-find data structure [9]that determine if the canonical mapping restricted to the connected can be used to partition the set of faces of a mesh into its connected  component is ½ ½ and onto or not. components. It is described in pseudocode in Figure 4. It first ini- tializes the partition to one singleton per face, and then for each edge of the mesh, and each pair of different faces sharing the edge,3 POLYGONAL MESHES replaces the subsets corresponding to the two faces by their union.In this section we introduce some definition, notation, and factsabout polygonal meshes that we will need in subsequent sections to Mappings A mapping Ž ž from a first mesh Žformulate our main results more precisely. It can be skipped on a into a second mesh ž is defined by a vertex function Πνfirst reading. ξ and a face function ½ ¾ that satisfy the following additional property: for every face ´Ú½ ÚÒ µ ¾ ½ of the first mesh, the sequence of vertices of the second mesh defined byConnectivity The connectivity of a polygonal mesh Å is de- the vertex function applied to the corners of the face, is (modulofined by the incidence relationships existing among its Î vertices, cyclical permutations) equal to the face of the second mesh that the edges, and faces. We will also use the symbols Î , , and face of the first mesh is mapped to by the face function. i.e.,to denote the sets of vertices, edges, and faces. A face with Ò cor-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 if aVertices not contained in any face are called isolated. An edge is mapping Ž ž exists such that both Î and are ½ ½   3
  4. 4. To appear in Proceedings of ACM Solid Modeling 2001, Ann Arbor, MI, June 2001 Ú¾¿ Ú¾ Ú½¾ ¼ Ú¿ Ú¾¿ ¼ Ú¾ Ú½¾ 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.and onto functions. In such case the mapping is called a meshequivalence. Note that since the sets of vertices and faces are finite, the map-ping is an equivalence if and only if the vertex and face functionsare onto, and the number of vertices and faces in both meshes arethe same: ν ξ and ½ ¾. And a simple linear time and space algorithm to count the num-ber of elements of set ´ µ ¾can be used to determine if a function between two fi-nite sets is onto or not. Create a binary ´¼ ½µ array with elements incorrespondence with the elements of and initialize it to ¼. Then,for each element ¾ set the element corresponding to ´ µ to ½.Finally, add all the values of the array. The function is onto if andonly if the sum is equal to the number of elements of .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 only Figure 8: In general, four tiles (defined by the blue corners) coverconcerned with connectivity here, the position of the -vertices in each triangle (red). Note that these four tiles have neither commonspace is irrelevant, but for illustration purposes, we draw them as vertices nor common edges in the covering mesh.the 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, operators associated with these subdivision methods, meshes areand each of the other three triangles connects one Î -vertex and two required to be manifold without boundary, and special smoothing -vertices. rules can be designed for manifold meshes with boundaries (holes) In general, the quadrisection operator É transforms a triangularmesh Å ´Î µ into a new triangular mesh Å É ´Î É É µ, [1]. But since the connectivity refinement rules can be applied to non-manifold meshes, and our algorithm to detect and reconstructand defines a vertex function which assigns each vertex of Å intoa Î -vertex of Å É , and a face function that assigns each face of Å subdivision connectivity also works on non-manifold meshes, we allow our meshes to be non-manifold.into the center face of the corresponding quadrisected face. Both  functions are ½ ½ but not onto, but do not define a mapping Å Note that the quadrisection operator preserves and reflects con- nected components, i.e., the connected components of a mesh ÅÅ É , though, because they do not satisfy the additional property   are always in ½ ½ correspondence with the connected components of the quadrisected mesh Å É .required by the definition of mapping given above. With respectto the number of vertices, edges, and faces, the following relationshold: ÎÉ Î · É ¾ ·¿ (1) 4 CONSTRUCTING TILES É The tiles of a mesh Å ´Î µ are best defined by the algorithm The quadrisection operator is one of many subdivision schemes used to construct them, which we will describe with the notationthat introduces new vertices along the edges of the coarse mesh, introduced in Figure 6. Each face ´Ú½ Ú¾ Ú¿ µ ¾ , with threeand replaces the coarse faces by fine faces supported on the new regular edges ½¾ , ¾¿ , and ¿½ has three neighboring triangularset of vertices. In general, because of limitations of the smoothing faces ½¾ , ¾¿ , and ¿½ . Each one of these faces has a vertex Ú 4
  5. 5. To appear in Proceedings of ACM Solid Modeling 2001, Ann Arbor, MI, June 2001 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 ( if (Î È Ò ) return false Ú ÒÚ ) return falseFigure 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 Å É Åopposite to the corresponding edge . The tile corresponding to is defined by these three vertices ¼ is an equivalence. ´Ú½¾ Ú¾¿ Ú¿½ µ. Note thatas a mesh the quadrisected tile is equivalent to the submesh of Ådefined by the face , its three immediate neighbors ½¾ , ¾¿ , and Theorem 2 For every connected triangular mesh Å ´Î µ, ¿½ , and their supporting vertices, which we call a tile set of Å . the canonical mapping Å É É Å É is a mesh equivalence for some .5 THE COVERING MESH P ROOF 2 : Each face of Å defines one tile set in Å É and a cor-The covering mesh of a triangular mesh Å ´Î µ is a new responding tile in Å É . Let ¾ be the set of all these tiles intriangular mesh Å ´Î ½   ½ correspondence with . Since the vertices of these tiles are supported on Î -vertices of Å É , the set of vertices Î ¾ of these µ defined by the vertices and tilesof Å . Figure 7 illustrates the algorithm to construct the coveringmesh of a mesh in pseudocode.   tiles is in ½ ½ correspondence with the set of vertices Î . We have constructed a mesh equivalence between Å and the submesh Å ¾ ´Î ¾ ¾ µ of Å É , which can extended to an equivalence Note that even if the mesh is manifold without boundary, thecovering mesh may be non-manifold and with boundary. Also, asillustrated in Figure 8, each face may belong to up to four different between the corresponding quadrisected meshes. Since subdivision also preserves connected components, we only need to show that Å ¾ is a connected component of Å É . Å ¾ is clearly connected,tile sets of a triangular mesh, where the given fine triangle occupies because it is equivalent to Å , the result of subdividing Å is Å É ,either the center position, or one of the three corners in each oneof the four tile sets. The number of tile sets covering a face maybe less than four, and even zero, though, such as when a fine trian- which is connected, and the quadrisection operator does not change the number of connected components. It only remains to be shown that no other tiles are connected to Å ¾ . But the tiles in É thatgle or some of its immediate neighboring triangles are incident to are not members of ¾ are supported on -vertices, while tiles inboundary or singular edges. The covering mesh operator , that assigns a triangular mesh ¾ are all supported on Î -vertices, and so, disconnected. £Å ´Î µ to a new triangular mesh Å ´Î µ definesa canonical 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 each section connectivity and to reconstruct the subdivision structure,one of them, we obtain a partition of Å É into connected compo- described in pseudocode in Figure 9.nents Ž É ÅccÉ . The canonical mapping restricted to the To determine if the mapping ´ Å É Å µ is an equiva-connected components also define mappings Å É Å. lence or not it is not necessary to construct the quadrisected con-Note that in general, the corresponding vertex and face functions nected component Å É . It is sufficient to count all the vertices  of these mappings are neither ½ ½ nor onto. For example, not all and faces of tile sets covered by tiles in Å . Figure 10 shows suchthe faces of Å may be covered by faces of Å É , and up to four an algorithm in pseudocode.faces of Å É may be covering the same face of Å . With respectto vertices, restricted to the Î -vertices of Å É , the mapping is½   ½, but not necessarily so when restricted to the vertices; and 6 IMPLEMENTATION AND RESULTSsome vertices of Å may not correspond to any vertex of Å É . A polygonal mesh is normally specified only by its vertices and However, the following theorem, which constitutes the main re- faces, such as in the IndexedFaceSet node of the VRML stan-sult of this paper, holds: 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 quadri- explicitly represented.section connectivity, if and only if Å É Å is a mesh An explicit representation of edges is needed both to partitionequivalence for some . the set of faces into its connected components, and by our tile con- struction algorithms described in section 4.P ROOF 1 : The proof of the sufficiency is trivial. We rephrase the Efficient data structures to represent edges of oriented manifoldnecessity as a new theorem. £ meshes, such as the half-edge data structure [16] or the quad-edge 5
  6. 6. To appear in Proceedings of ACM Solid Modeling 2001, Ann Arbor, MI, June 2001 References [1] H Bierman, A. Levin, and D. Zorin. Piecewise smooth subdi- vision surfaces with normal control. In Siggraph’2000 Con- ference Proceedings, pages 113–120, July 2000. [2] L.J. Guibas and J. Stolfi. Primitives for the manipulation of general subdivisions and the computation of voronoi dia- grams. ACM Transactions on Graphics, 4(2):74–123, 1985. [3] P. Heckbert. Course 25: Multiresolution surface modeling. A B Siggraph’97 Course Notes, August 1997. [4] L. Kettner. Designing a data structure for polyhedral surfaces. In 14th. Annual ACM Symposium on Computational Geome- try, pages 146–154, 1998. [5] A. Khodakovsky, P. Schr¨ der, and W. Sweldens. Progressive o geometry compression. In Siggraph’2000 Conference Pro- ceedings, 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. C D [7] W.S. Massey. A basic course in algebraic topology. Springer-Figure 11: Example with complex topology. A: Coarse triangular Verlag, New York-Berlin, 1991. ISBN 0-387-97430-X.mesh (Î ½¼ ¾ ¾¾½¼ Î   ·   ½¼¼) is not [8] Information Technology - Generic Coding of Audio-Visuala quadrisected mesh because its covering mesh is connected. B:Quadrisection of coarse mesh (Î ½¼ ½ Î  · Objects (MPEG-4), Part 2 : Visual Objects. ISO/IEC 14496-   ½¼¼). The clustering mesh of this quadrisected mesh has 2, December 1999. http://www.cselt.it/mpeg.two connected components. Rendering of edges has been turned [9] R.E. Tarjan. Data Structures and Network Algorithms. Num-off. C: First component of clustering mesh (Î ¿¿½ ¿½¾Î   ·  ¾ ¼ ). D: Second component of clustering ber 44 in CBMS-NSF Regional Conference Series in Applied Mathematics. SIAM, 1983.mesh equivalent to coarse mesh. [10] G. Taubin. A signal processing approach to fair surface de- sign. In Siggraph’95 Conference Proceedings, pages 351–[2] data structure are well known. For non-manifolds meshes, these 358, August 1995.data structures need extensions [4]. We will assume that the datastructure used to represent the set of edges efficiently implements [11] G. Taubin, A. Gu´ ziec, W. Horn, and F. Lazarus. Progressive ethe edge access function ´Ú Ûµ ´Û Ú µ, which given two ver- forest split compression. In Siggraph’98 Conference Proceed-tices Ú and Û, returns the set of incident faces (which may be empty ings, pages 123–132, July 1998.if the two vertices do not correspond to an edge of the mesh). In our [12] G. Taubin and J. Rossignac. Geometry Compression throughimplementation, we use a hash table to implement the edge access Topological Surgery. ACM Transactions on Graphics,function. This data structure can be populated (constructed) in ex- 17(2):84–115, April 1998.pected linear time by visiting the faces in sequential order. The full algorithm described by the pseudocode methods shown [13] G. Taubin and J. Rossignac. Course 38: 3d geometry com-in figures 4, 7, 9, and 10 has been implemented in C++. Figures 1, pression. Siggraph’2000 Course Notes, July 2000.and 11 show examples where the algorithm has been run on meshesof moderate size with simple and complex topology. [14] C. Touma and C. Gotsman. Triangle mesh compression. In Graphics Interface Conference Proceedings, Vancouver, June 1998.7 CONCLUSIONS [15] The Virtual Reality Modeling Language. ISO/IEC 14772-In this paper we have introduced a conceptually very simple and ef- 1:1997, September 1997. http://www.web3d.org.ficient algorithm to detect quadrisection connectivity in triangularmeshes, and we have demonstrated it in a number of examples. As [16] K. Weiler. Edge-based data structures for solid modeling inexplained in the introduction, this algorithm has important applica- curved-surface environments. IEEE Computer Graphics andtion in modelling systems, and connectivity compression schemes. Application, 5(1):21–40, January 1985. In a subsequent paper we plan to extend this algorithm to otheruniform subdivision schemes, such as Catmull-Clark, and Doo- [17] D. Zorin and P. Schr¨ der. Course 23: Subdivision for model- oSabin; and to some adaptive subdivision schemes. ing and animation. Siggraph’2000 Course Notes, July 2000. [18] D. Zorin, P. Schr¨ der, and W. Sweldens. Interactive multireso- o lution mesh editing. In Siggraph’97 Conference Proceedings, pages 259–268, August 1997. 6