Hierarchical generalized triangle strips

15
The Visual Computer (1999) 15:21–35 Springer-Verlag 1999 21 Hierarchical generalized triangle strips Luiz Velho 1 , Luiz Henrique de Figueiredo 2 , Jonas Gomes 1 1 IMPA – Instituto de Matemµtica Pura e Aplicada, Estrada Dona Castorina, 110, 22460-320 Rio de Janeiro, RJ, Brazil 2 LNCC – Laboratório Nacional de Computaço Científica, Rua Lauro Müller 455, 22290-160 Rio de Janeiro, RJ, Brazil E-mail: {lvelho/jonas}@visgraf.impa.br,[email protected] This paper introduces a new refinement method for computing the triangle se- quences of a mesh. We apply the method to construct a single generalized triangle strip that completely covers a parametric or implicit surface. A remarkable feature of this application is that our method gener- ates the triangulation and the triangle strip simultaneously, using a mesh refinement scheme. As a consequence, we are able to produce a hierarchy of triangle strips de- fined at each refinement level. This data structure has many applications in geome- try compression and rendering. Key words: Geometric modeling – Mesh representation – Sequential triangulations – Hamiltionian paths – Triangle strips – Accelerated rendering – Geometry com- pression 1 Introduction Triangle meshes, or triangulations, are one of the most widely used representations for geometric models. A triangulation is a 2D simplicial com- plex, a simple structure with nice combinatorial properties. Moreover, surfaces of arbitrary topolo- gy can be tessellated into a mesh of triangular patches. Such triangles can be rendered very effi- ciently in both software and hardware. For this rea- son, they are the basic geometric primitive of the graphics pipeline. One of the main disadvantages of triangle meshes is that, in general, they do not provide a compact surface representation because a large number of triangles is required to faithfully describe the ge- ometry of a complex surface. This problem motivated the search for encoding schemes that could be used to represent triangle meshes in a more compact and efficient way. One such scheme is the triangle strip (and its generalizations). The mesh encoding using trian- gle strips exploits the spatial coherence of the si- mplicial complex structure. It enumerates mesh elements in a sequence of adjacent triangles to avoid repeating the vertex coordinates of shared edges. In the traditional setting, the triangle strip encod- ing leads to the problem of converting a given tri- angle mesh into the minimal set of triangle strips covering the mesh. This problem is (NP) complete [6] and, thus, existing algorithms must rely on heu- ristics to find suboptimal solutions. Triangle meshes are often used to approximate smooth surfaces or to interpolate data points. In such cases, the mesh is generated, respectively, from a surface description (in parametric or im- plicit form) or from sparse samples. Considering this observation, we noticed that triangle se- quences can be constructed during the process of generating the mesh. This reduces the com- plexity of the problem and leads to a better solu- tion. In this paper we describe a method for constructing a hierarchy of generalized triangle strips. The method can be integrated into the mesh creation process. In fact, with a small computational effort, we are able to build triangle sequences that have many good properties. The remainder of the paper is organized as follows. Section 2 gives definitions and some background of triangle sequences, Sect. 3 discusses previous work, Sect. 4 presents the basic method for gener- Correspondence to: L. Velho

Transcript of Hierarchical generalized triangle strips

The Visual Computer (1999) 15:21±35� Springer-Verlag 1999 21

Hierarchical generalizedtriangle strips

Luiz Velho1,Luiz Henrique de Figueiredo2,Jonas Gomes1

1 IMPA ± Instituto de Matemµtica Pura e Aplicada,Estrada Dona Castorina, 110,22460-320 Rio de Janeiro, RJ, Brazil2 LNCC ± Laboratório Nacional de Computaç�oCientífica, Rua Lauro Müller 455,22290-160 Rio de Janeiro, RJ, BrazilE-mail: {lvelho/jonas}@visgraf.impa.br,[email protected]

This paper introduces a new refinementmethod for computing the triangle se-quences of a mesh. We apply the methodto construct a single generalized trianglestrip that completely covers a parametricor implicit surface. A remarkable featureof this application is that our method gener-ates the triangulation and the triangle stripsimultaneously, using a mesh refinementscheme. As a consequence, we are able toproduce a hierarchy of triangle strips de-fined at each refinement level. This datastructure has many applications in geome-try compression and rendering.

Key words: Geometric modeling ± Meshrepresentation ± Sequential triangulations± Hamiltionian paths ± Triangle strips ±Accelerated rendering ± Geometry com-pression

1 Introduction

Triangle meshes, or triangulations, are one of themost widely used representations for geometricmodels. A triangulation is a 2D simplicial com-plex, a simple structure with nice combinatorialproperties. Moreover, surfaces of arbitrary topolo-gy can be tessellated into a mesh of triangularpatches. Such triangles can be rendered very effi-ciently in both software and hardware. For this rea-son, they are the basic geometric primitive of thegraphics pipeline.One of the main disadvantages of triangle meshesis that, in general, they do not provide a compactsurface representation because a large number oftriangles is required to faithfully describe the ge-ometry of a complex surface.This problem motivated the search for encodingschemes that could be used to represent trianglemeshes in a more compact and efficient way.One such scheme is the triangle strip (and itsgeneralizations). The mesh encoding using trian-gle strips exploits the spatial coherence of the si-mplicial complex structure. It enumerates meshelements in a sequence of adjacent triangles toavoid repeating the vertex coordinates of sharededges.In the traditional setting, the triangle strip encod-ing leads to the problem of converting a given tri-angle mesh into the minimal set of triangle stripscovering the mesh. This problem is (NP) complete[6] and, thus, existing algorithms must rely on heu-ristics to find suboptimal solutions.Triangle meshes are often used to approximatesmooth surfaces or to interpolate data points. Insuch cases, the mesh is generated, respectively,from a surface description (in parametric or im-plicit form) or from sparse samples. Consideringthis observation, we noticed that triangle se-quences can be constructed during the processof generating the mesh. This reduces the com-plexity of the problem and leads to a better solu-tion.In this paper we describe a method for constructinga hierarchy of generalized triangle strips. Themethod can be integrated into the mesh creationprocess. In fact, with a small computational effort,we are able to build triangle sequences that havemany good properties.The remainder of the paper is organized as follows.Section 2 gives definitions and some backgroundof triangle sequences, Sect. 3 discusses previouswork, Sect. 4 presents the basic method for gener-

Correspondence to: L. Velho

22

ating hierarchical triangle sequences using refine-ment, Sect. 5 analyzes uniformly refinable sequen-tial triangulations, Sect. 6 investigates the case ofadaptive refinement, Sect. 7 shows an applicationof the method to obtain triangular strips that com-pletely cover implicit and parametric surfaces, andSect. 8 concludes with final remarks and directionsfor future work.

2 Definitions and background

In order to investigate the various ways of repre-senting triangle meshes, we need to study their to-pological structures, in terms of connectivity andadjacency relations between the elements of the

meshes. For that purpose, it is convenient to lookat the dual graph of the mesh, which explicitlygives the adjacency relations between the trianglesof the mesh. In the dual graph, nodes correspond totriangles, and two nodes are connected when theirassociated triangles have a common edge. Figure 1shows a triangulation and its dual graph.A generalized sequential triangulation, or Hamil-tonian triangulation, is a triangulation for whichthere is an ordering T1; . . . ; TN of all its trianglessuch that two consecutive triangles Tj and Tj�1share an edge. Such an ordering exists if and onlyif the dual graph of the triangulation contains a Ha-miltionian path. (A path in a graph is said to beHamiltonian when it visits all nodes in the graphexactly once.)

T0T1

T3

T4

T2 T5

T0T1

T3

T4

T2 T5

j-1

j

i+1i

TT

vvj-1

j

i+1i

TT

vv Fig. 1. Triangulation and its dual graph

Fig. 2a, b. Geometric representations of atriangle sequence

Fig. 3. Two options for continuing atriangle sequence

1

2a 2b

3

23

Notice that each triangle in a Hamiltonian triangu-lation has an entry edge and an exit edge with re-spect to the Hamiltonian ordering. The knowledgeof these edges completely characterizes the se-quence. Geometrically, a generalized triangle se-quence can be represented by drawing an orientedpath on the mesh domain that visits each trianglecrossing its entry and exit edges (Fig. 2a). Thispath is called a sequential path. Another represen-tation indicates the entry and exit edges with ar-rows (Fig. 2b).

In a Hamiltonian triangulation, suppose that Tjÿ1 isa triangle with a vertex vi that is shared with thenext triangle Tj (Fig. 3). Then, triangle Tj is com-pletely determined by specifying:

l A new vertex vi�1 (i.e., a vertex distinct fromthe vertices of triangle Tjÿ1)

l The edge shared by Tjÿ1 and Tj; which can bethe edge to the left (counterclockwise order)or to the right (clockwise order) of the currentvertex vi

V2 V4 V6

V5V3V1

(V1,V2,V3,V4,V5,V6)

Fig. 4. A sequential triangulation and its triangle stripencoding

Fig. 5. Partial ordering with two triangle sequences

Fig. 6. Hamiltonian triangulation obtained byinsertion of a Steiner point

4

5

6

24

It follows that a generalized sequential triangula-tion with N triangles can be encoded by a sequenceof N+2 vertices, defining the geometric informa-tion, and a sequence of N bits, defining the connec-tivity information (i.e., left or right edge turn). Thisencoding is called a generalized triangle strip.A sequential triangulation is a particular kind ofgeneralized sequential triangulation in which theshared edges follow an alternating left/right turnorder. Because of this implied restriction, the con-nectivity does not need to be encoded explicitly,and the representation is given only by the se-quence of N+2 vertex coordinates or ids. This en-coding is called a triangle strip. Figure 4 shows anexample of a sequential triangulation and its repre-sentation as a triangle strip.The triangle strip, as well as the generalized trian-gle strip, are standard representations of trianglemeshes and are supported by most graphics sys-tems, including the OpenGL graphics library [3,8].In this paper we shall use the term triangle se-quence to designate a sequential triangulation, aswell as its generalizations.A triangle sequence defines a total order relationon the set of triangles of a mesh. It is always pos-sible to partition a triangle mesh T into a collec-tion of subtriangulations T 1; . . . T M; such that eachT k is a triangle sequence. (A trivial partitioningcan be obtained by using one triangle for each se-quence T k:) The partition defines a partial order onthe triangulation T : Triangles in the same subtrian-gulation are related according to their order in thesequence; triangles in different subtriangulationsare not related. Figure 5 shows a partial order ona mesh consisting of two triangle sequences.A natural problem is how to obtain the optimalpartition of a mesh into triangle sequencesT 1; . . . T M; that is, a partition that minimizes M.Clearly, minimizing M is related to maximizingthe length of each triangle sequence T k: Depend-ing on the application, it may also be desirable tooptimize the sequences of left/right edge turnswithin a sequence.An optimal partition is the most compact represen-tation of a triangle mesh among all possible sets oftriangle sequence encodings. Ideally, we shouldhave a total order among all of the triangles in amesh; that is, a single triangle strip covering themesh completely. However, this is not possiblein general because the dual graph is not always

Hamiltonian. For example, the triangle mesh ofFig. 5 is not Hamiltonian.However, the problem of finding the best collec-tion of triangle sequences of a mesh is NP com-plete [6]. Nonetheless, by adding new vertices(called Steiner points), it is always possible to re-fine a triangle mesh into a Hamiltonian triangula-tion [2]. Figure 6 shows an example of the inser-tion of a Steiner point to produce a Hamiltoniantriangulation.Thus, it seems reasonable that triangulation meth-ods based on the insertion of vertices, such as meshrefinement schemes, could be used to generateHamiltonian triangulations. This paper focus onthis problem. In the next section, we review someof the strategies that have been used to computegood triangle sequences. In Sect. 4 we present anew method that uses refinement to constructHamiltonian triangulations.

3 Previous work and applications

Previous work related to triangle strips falls intothree major categories: algorithms to generate tri-angle strips for accelerated rendering, algorithmsto compute sequential triangulations for geometrycompression, and theoretical investigation of pathson triangle meshes.Triangle strips are important for accelerated ren-dering because they can significantly increase thethroughput of the visualization pipeline. First, thedata rate is increased, since only N� 2 vertex co-ordinates have to be sent to the graphics enginefor a sequence of N triangles. Second, viewing op-erations, such as matrix transforms and clipping,need to be applied only once to the elements ofthe data stream, further increasing the renderingperformance.Akeley et al. [1] develop a program to convert tri-angle meshes into strips using a greedy algorithm.They build a sequence by always choosing the nexttriangle as the one adjacent to the least number ofneighbors. Speckmann and Snoeyink [10] build tri-angle strips based on the dual graph of a triangula-tion. Their algorithm computes a minimum span-ning tree of the adjacency graph and segments itwith heuristics that tend to produce long strips.Evans et al. [7] use a technique called patchficat-ion that identifies rectangular regions of a meshconsisting of quadrilaterals. Such regions can triv-

25

ially be encoded as triangle strips. This last strate-gy is similar to the one employed in our method, inthe sense that it builds the triangle strip while cre-ating a triangulation.The properties of sequential triangulations can beexploited in various ways for the compression ofgeometric models. On the one hand, the sequentialstructure reduces the connectivity information toone bit, or even eliminates its explicit encoding.On the other hand, the locality of reference inher-ent in a triangle sequence makes it possible to en-code geometry with fewer bits using predictionschemes.Deering [4] introduces the concept of geometrycompression based on generalized triangle se-quences. His algorithm employs lossy compressionfor the quantization of coordinate values, as well asa vertex cache to take further advantage of spatialcoherence. Taubin and Rossignac [11] construct amesh representation using two interlocked trees: aspanning tree of triangles for connectivity and aspanning tree of vertices. The geometry informa-tion is compressed by variable-length lossy encod-ing.The generation of paths on triangulations has beenstudied in computational geometry. Dillencourt [5]investigates the complexity of finding Hamiltonianpaths on the edges of Delaunay triangulations. Ar-kin et al. [2] consider several issues related topaths on the dual graph of general triangle meshes.In particular, they show that the problem of findingoptimal triangle sequences is NP hard.

4 Triangle sequences from meshrefinement

In this section we give an overview of our methodfor constructing generalized triangle strips withmesh refinement.A refinable triangle sequence is a triangle se-quence whose total order can be preserved whenits elements are subdivided. Note that this propertydepends exclusively on the subdivision schemeadopted.A triangle subdivision scheme is called a sequen-tial refinement if it is based on a subdivision tem-plate that:

l Decomposes each triangle into a generalized se-quential triangulation

l Leads to a refined subsequence within each tri-angle that is compatible with the ordering of theinitial triangulation.

More precisely, if

T1; . . . ; Tjÿ1; Tj; Tj�1; . . . ; TM

is the initial triangle sequence, then each triangleTj has a refinement Tj1; . . . ; TjNj that is itself a tri-angle sequence, and is such that the triangle mesh

T1; . . . ; Tjÿ1; Tj1; . . . ; TjNj|�������{z�������}Tj

; Tj�1; . . . ; TM;

obtained by replacing triangle Tj by its refinement,is still a triangle sequence.The sequential refinement we describe in this pa-per has two main parts:

1. Initialization. Generate a base mesh and an ini-tial triangle sequence for it.

2. Refinement. Refine the base mesh, recursivelypropagating the triangle sequence from coarseto finer levels.

The construction of the initial triangle sequencecan (and should) take advantage of properties ofthe base mesh. If the mesh has a regular structure,then there is a natural order of its elements. Fig-ure 7 shows a simple regular base mesh with a tri-angle sequence following a serpentine path.Even when no structural properties of the basemesh can be exploited, just the fact that the basemesh is coarse by construction makes it feasibleto compute the initial triangle sequence with con-ventional algorithms, such as the ones describedin Sect. 3.The second stage of the method takes an orderedbase mesh and refines the mesh, maintaining theorder as it moves from coarse to finer levels.We now give a description of the refinement andprove its correctness. We start from an initial trian-gle sequence T k; with triangles ordered as:Tk

1 ; . . . ; Tkjÿ1; Tk

j ; Tkj�1; . . . ; Tk

Mk: We need to subdi-

vide each triangle Tkj into a triangle sequence

T k�1j � Tk�1

j1 ; . . . ; Tk�1jNk

; such that the refined trian-gle mesh

T k�11 ; T k�1

2 ; . . . ; T k�1Mk

is, in this order, a triangle sequence.

26

Suppose, by induction, that we have accomplishedthe task up to the jth triangle. We have thus con-structed the refined triangle sequence

T k�11 ; T k�1

2 ; . . . ; T k�1j :

To complete the induction, we must devise a meth-od to refine the triangle Tk

j�1 into a triangle se-quence T k�1

j�1 ; such that

T k�11 ; T k�1

2 ; . . . ; T k�1j ; T k�1

j�1

is also a triangle sequence.Note that the triangle Tk

j�1 has an entry edge and anexit edge already determined by the original trian-gle sequence T k: Furthermore the entry edge ofTk

j�1 is the exit edge of Tkj (edge CB in Fig. 8).

Therefore, by the induction hypothesis, this edgehas possibly been subdivided in the refinement

process of the triangle Tkj ; and one of the subedges

of the refinement is the exit edge of the last trian-gle of the sequence T k�1

j (subedge MC in Fig. 8).The refinement of triangle Tk

j�1 subdivides its exitedge, and one of the subedges must be chosen forthe exit edge of the last triangle in the refinementsequence T k�1

j�1 of the triangle Tkj�1 (subedge ND in

Fig. 8).The induction step given shows that the accom-plishment of our goal is completely localized:we must devise a template for triangle refinementthat makes the induction step possible. The tem-plate must be able to provide a sequence pathfrom the entry subedge to one of the exit subedg-es. We have two strategies for the template con-struction.

Uniform template. We construct a single templatethat its used to subdivide every triangle, creatinga uniform sequential refinement of the mesh.

Fig. 7. Base mesh and serpentine triangle strip

Fig. 8. Propagating the triangle sequence duringrefinement

7

8

27

Adaptive templates. We use different templates inorder to construct an adaptive sequential refine-ment.

The core of the algorithm is the construction of thetriangle refinement template. In the next two sec-tions, we discuss how to determine suitable subdi-vision templates for both uniform and adaptivemesh refinement.

5 Uniform sequential refinement

Uniform mesh refinement schemes recursivelysubdivide all triangles of a mesh, using the sametemplate, until some resolution is obtained.

In the case of triangle meshes, the most commonrefinement scheme splits all edges (usually at theedge midpoint) into two parts and applies a subdi-vision template to decompose each triangle intosubtriangles. In this case, there are two possiblesubdivision templates for the uniform decomposi-tion of a triangle. Both subdivide a triangle intofour subtriangles. These templates are shown inFig. 9.Template 9a induces an isotropic decomposition. Itconnects each new vertex mi; at the midpoint of anedge, to vertex m i�1� �mod3; at the midpoint of thesubsequent edge.Template 9b induces an anisotropic decomposi-tion. It selects the midpoint mi of one edge, andconnects it to the opposite vertex of the triangle

m 1

m m2

3

v1

v2 3v

m 1

m m2

3

v1

v2 3v

S

oS

i S

oS

i

left exit right exit

9a 9b

10

Fig. 9a, b. Uniform decomposition of a triangle: a isotropic template; b anisotropic template

Fig. 10. Realization of the template of Fig. 9b compatible with the bottom left and bottom right orders

28

vi; as well as to the midpoints of the two adjacentedges m iÿ1� �mod3j j and m i�1� �mod3j j: This decompo-sition scheme can have three realizations, eachcorresponding to the selection of one of three edgemidpoints. Note that the use of one of these partic-ular configurations implies choosing a preferreddirection to split the triangle. We have exploitedthis extra degree of freedom to conform the meshgeometry to a surface (see Sect. 7).Simple inspection reveals that template 9a doesnot produce a generalized sequential triangulation,whereas template 9b does. Therefore, only tem-plate 9b is suitable for defining a sequential refine-ment scheme. This result is summarized in the fol-lowing.

Proposition 1. A triangle sequence is uniformlyrefinable if all its elements are subdivided usingtemplate 9b in a orientation compatible with thesequence order.

Proof. From the discussions in the previous sec-tion, we need to determine an exit subedge andconstruct a sequence path from the entry subedgeto the exit subedge. There are two possible choicesfor the exit subedge corresponding to the bottomleft and the bottom right. Figure 10 shows a tem-plate subdivision and the sequence path for eachcase. hWe remark that the solution shown is not unique.In fact, template 9b gives two possible orientationsfor the case where the exit edge is not adjacent tothe entry subedge. One alternative is shown in theright side of Fig. 10; the other alternative would bea configuration connecting the midpoint of the en-try edge to the opposite vertex.

In the next section, we construct the templates foradaptive sequential refinement.

6 Adaptive sequential refinement

Adaptive refinement schemes decompose the meshin a nonuniform manner.In nonuniform subdivision, triangle edges are alsosplit into two parts (usually at the midpoint), butunlike uniform schemes, not all three edges of atriangle are subdivided. Mesh elements are subdi-vided to different levels based on some local adap-tation criteria. The recursive subdivision of a trian-gle stops when all three edges satisfy the adapta-tion criteria.A consequence of the adaptive nature of nonuni-form refinement is that the subdivision templatesare more complex. They must take into accountthe cases of one, two, and three edges splitting.Therefore, the templates consist of all simplicialdecompositions generated by internal edges con-necting edge midpoints and/or triangle vertices.Figure 11 shows the subdivision templates corre-sponding to (a) a one-edge split, (b) a two-edgesplit, and (c) a three-edge split. Note that the tem-plate of Fig. 11c is the same one used for uniformsubdivision. Obviously, the realization of thesetemplates includes all permutations of differentedges splitting, as well as all configurations forconnecting them.As for uniform refinement, in order to prove thatwe can construct a refinable triangle sequence, itis sufficient to show that the templates Fig-s. 11a±c produce triangle sequences that are com-patible with the parent triangle sequence order.

a b c

Fig. 11a±c. Templates for nonuniform subdivision

29

m n

qp

m

n q

m

n p

(b)

c c

Fig. 12a, b. Subdivision when entry edge does not split

Fig. 13a, b. Subdivision when adjacent edge splits

Fig. 14a, b. Subdivision when adjacent edge does not split and exit edge is not the adjacent edge

Fig. 15a, b. New templates for subdivision when adjacent edge does not split and exit edge is the adjacent edge

12a 12b

13a 13b

14a 14b

15a 15b

30

Since the cases involving the template of Fig. 11chave already been analyzed in Sect. 5, there arethree cases remaining to be considered.

1. Entry edge does not split. This is the simplestcase. The triangle is subdivided by a main internaledge, transversal to the sequence path. The exitedge could be either to the left or to the right. Thisconfiguration is illustrated in Fig. 12. Note thatthere are two possible realizations for the configu-ration shown in Fig. 12b, i.e., a subdivision of thequadrilateral pmnq into the triangles pmn and pnqor pmq and mng.2. Entry edge splits, and the adjacent edge to theentry subedge also splits. As shown in Fig. 13, inthis case, the internal edges mn and mp producea refinable triangle sequence that begins at the en-try subedge and can exit at either one of the twoother edges.3. Entry edge splits, and the adjacent edge of theentry subedge does not split. This is the most dif-ficult case, and we break it down in two subcasesdepending on the exit edge:3a. When the exit edge is not adjacent to the entrysubedge, the refined triangle sequence can be con-structed easily, as shown in Fig. 14.3b. When the exit edge is adjacent to the entrysubedge, it is impossible to produce a triangle se-quence with the templates of Fig. 11 b, c. Toovercome this situation, we create two new tem-plates, by inserting an extra vertex c in the inte-rior of the triangle and connecting it to the othervertices. These new templates are illustrated inFig. 15.

In summary, this case analysis demonstrated thatthese five templates are sufficient to produce refin-able nonuniform triangle sequences. They can beused with any adaptive mesh refinement methodthat is based on edge subdivision.In the next section, we apply the adaptive sequen-tial refinement to compute triangle strips for im-plicit and parametric surfaces.

7 Examples

We have implemented an algorithm that employsthe sequential mesh refinement method describedin this paper to compute simultaneously both a hi-erarchical triangulation and a hierarchy of trianglesequences. The algorithm produces results superior

to methods that compute the triangle strip separate-ly starting from a precomputed triangulation.The first stage of the algorithm, as outlined inSect. 4, creates a base mesh that will be used inthe refinement stage. The second stage of the thealgorithm recursively refines the base mesh, usingthe either the uniform or the nonuniform subdivi-sion templates that we introduce in Sect. 5 and 6.The algorithm performs adaptive refinement basedboth on the error measure of the polygonal approx-imation and on the aspect ratio of the triangles inthe mesh. Details of the implementation of this al-gorithm can be found in [12].We now present some examples of triangulationsand triangle sequences computed by the algorithm.

Unit square. Figure 16 shows the first three levelsof a hierarchy of triangle sequences generated byuniform mesh refinement of the square[0, 1]�[0, 1] of the plane.The left part of the figure displays the trianglemeshes and the right part displays the correspond-ing triangle sequences, shown as a polygonal pathconnecting the midpoints of entry and exit edges.The base mesh was a decomposition of the squareinto two triangles along one diagonal. Note that therefinement process produces a triangle sequencethat follows the path of a space-filling curve (aSierpinski-like curve).

Height field. Figure 17 shows a height field surfacegiven by the regular sampling of a terrain elevationmodel. The base mesh was a 2�2 rectangular grid,with the initial triangle sequence following a ser-pentine path. The mesh was refined down to fourlevels by uniform subdivision.

Sphere. Figure 18 shows the adaptive tessellationof a sphere without the polar caps, which is de-scribed parametrically by:

x� cosucosv; y� sinucosv; z� sinv;

u2 0; 2p� �; v2 p=2� 0:2; 3p=2ÿ 0:2� �:Figure 18a, b displays the decomposition of theparametric domain and the triangulation of the sur-face in 3-space. Figure 18c, d displays the pathscorresponding to the triangle sequence in parame-ter space and on the surface. Notice that the trian-gulation forms a restricted structure, while the tri-angle sequence follows the path of a space-fillingcurve that is adapted to the surface.

31

level 1

level 2 level 3

(a) (b)

(a) (b)

16

17a 17b

17c 17d

Fig. 16. Hierarchical mesh and trianglesequences

Fig. 17a±d. Uniform tessellation ofterrain model

32

18a 18b

18c 18d

19a 19b

19c 19d

Fig. 18a±d. Sphere

Fig. 19a±d. Torus

33

Parametric torus. Figure 19 shows the adaptivetessellation of a torus, which is described paramet-rically by:

x� cosu r� cosv� �; y� sinu r� cosv� �;z� sinv;

u2 0; 2p� �; v2 0; 2p� �; r� 1:6:

As in the previous example, the triangle sequencealso follows a space-filling path.

Trimmed BØzier patch. Figure 20 shows the poly-gonization of a trimmed BØzier surface patch withcontrol points

ÿ1; 0; 0� � 0; 3; 0� � 3; 3; 0� � 4; 0; 0� �1; 0; 1� � 1; ÿ3; 1� � 3; 3; 1� � 2; 0; 1� �0; 0; 2� � 0; 3; 2� � 3; 3; 2� � 3; 0; 2� �ÿ1; 0; 4� � 0; 3; 3� � 3; ÿ3; 3� � 4; 2; 3� �

26643775:

Despite of the complex topology of the parametricdomain, we were able to generate a well-adaptedmesh, as well as a triangle sequence that coversthe entire patch.

(a) (b)

Fig. 20a±d. BØzier surface

a b

c d

34

8 Conclusions and future work

We have presented a new method for constructinggeneralized triangle strips from an initial, coarsesequence. The method uses both uniform andadaptive refinement schemes. We have also ap-plied the method to obtain refinable generalizedtriangle sequences that approximate parametric orimplicit surfaces.The recursive nature of the process actually pro-duces a hierarchy of triangle sequences, one foreach level of refinement. This structure can be em-ployed to advantage in the compression of multi-resolution models and in accelerated progressiverendering.As future work, we plan to investigate several is-sues, including the properties of space-fillingcurves on manifolds, the potential of locality ofreference to increase geometric compression, andapplications of triangle sequences to artistic ren-dering of surfaces.

Acknowledgements. The figures in Sect. 7 were generated withGeomview [9]. The authors are partially supported by researchgrants from the Brazilian Council for Scientific and Technolog-ical Development (CNPq) and Rio de Janeiro Research Founda-tion (FAPERJ).

References

1. Akeley K, Haeberly P, Burns D (1990) tomesh.c: C programon SGI developer's toolbox CD

2. Arkin E, Held M, Mitchel J, Skiena S (1994) Hamiltoniantriangulations for fast rendering. The 2nd Annual EuropeanSymposium on Algorithms, (Lecture Notes in ComputerScience, vol 855). Springer, Berlin Heidelberg New York,pp 36±47

3. Open GL Architecture Review Board (1993) OpenGL Ref-erence Manual. Addison Wesley

4. Deering MF (1995) Geometry compression. In: Cook R (ed)SIGGRAPH'95 Conference Proceedings, Annual Confer-ence Series, pp 13±20

5. Dillencourt M (1992) Finding Hamiltonian cycles in Del-aunay triangulations is NP-complete. Proceedings of the4th Canadian Conference on Computational Geometry,pp 223±228

6. Evans F, Skiena S, Varshney A (1996) Completing sequen-tial triangulations is hard. Technical Report Department ofComputer Science, State University of New York, StonyBrook, NY

7. Evans F, Skiena S, Vashney A (1996) Optimizing trianglestrips for fast rendering. IEEE Visualization'96

8. Kilgard MS (1997) Realizing OpenGL: two implementa-tions of one architecture. In: Molnar S, Schneider B-O(ed) 1997 SIGGRAPH/Eurographics Workshop on GraphicsHardware, New York City, NY

9. Levy S, Munzner T, Phillips M Geomview. Software writtenat the Geometry Center, University of Minnesota. Availableat http://www.geom.umn.edu/software/

10. Speckmann B, Snoeyink J (1997) Easy triangle strips forTIN terrain models. Canadian Conference on ComputationalGeometry, 239±244

11. Taubin G, Rossignac J (1998) Geometric compressionthrough topological surgery. ACM Transactions on Gra-phics, Vol 17, No 2, pp. 84±115, April 1998

12. Velho L, Figueiredo LH de, Gomes J (1998) Hierarchicaladaptive polygonization of parametric and implicit surfaces:Instituto de Matemµtica Pura e Aplicada, Rio de Janeiro,preprint

35

LUIZ VELHO is an AssociateResearcher at the Instituto deMatematica Pura e Aplicada(IMPA) of CNPq, and a memberof the Visgraf project. He re-ceived a BE in Industrial Designfrom ESDI/UERJ in 1979, an MSin Computer Graphics from theMIT/Media Lab in 1985, and aPhD in Computer Science in1994 from the University of To-ronto under the Graphics and Vi-sion groups. His experience incomputer graphics spans thefields of modeling, rendering,imaging and animation. From

1987 to 1991 he was a Principal Engineer at Globo TV Networkin Brazil, where he created special effects and visual simulationsystems. In 1994 he was a visiting professor at the Courant In-stitute of Mathematical Sciences of New York University.

LUIZ HENRIQUE de FIGUEI-REDO has a BSc and an MScin Mathematics from PUC-Rio,the Catholic University of Riode Janeiro, and he received aPhD in Mathematics in 1992from IMPA. His current researchinterests include computationalgeometry, geometric modeling,and interval methods in computergraphics. He is currently an As-sociate Researcher at the Labo-ratório Nacional de Computac�oCientifica (LNCC) and a collabo-rator of the Visgraf project at IM-PA.

JONAS GOMES is a full Profes-sor at the Institute of Pure andApplied Mathematics (IMPA) inRio de Janeiro, and he is a mem-ber of the Brazilian Academy ofSciences. He received a PhD inMathematics in 1984 from IM-PA. From 1984 to 1988 he wasthe R&D manager of the comput-er graphics group at Globo TVnetwork. In 1990 he started theVision and Graphics Lab at IM-PA (Visgraf Lab). The Lab is in-volved with research and devel-opment, and also supports a grad-uate program in computer graph-

ics. He has published several books and research articles in com-puter graphics. His current research interest include modeling,imaging, animation, and mathematical methods of computergraphics.