A Topological Abstraction for Implementing Recursive Subdivision Surface Computations

495

A Topological Abstraction for Implementing

Recursive Subdivision Surface Computations

Walid Keirouz1, Nassim Jibai2, George Turkiyyah3, Ahmad Nasri4 and Elie Choueiri5

1American University of Beirut, walid@https://www.360docs.net/doc/105905245.html,.lb

2American University of Beirut, nmj03@https://www.360docs.net/doc/105905245.html,.lb

3University of Washington, george@https://www.360docs.net/doc/105905245.html,

4 American University of Beirut, anasri@https://www.360docs.net/doc/105905245.html,.lb

5American University of Beirut, esc00@https://www.360docs.net/doc/105905245.html,.lb

ABSTRACT

We present a new abstraction, association space, in the context of recursive subdivision surfaces.

An association space relates elements in a recursive subdivision surface at a given refinement level

to the elements of the surface at the previous refinement level. These associations allow a

programmer to easily implement recursive subdivision algorithms and augment them with

computations, such as multigrid techniques, that require inter-level traversals of the hierarchy of

refined meshes. These associations also extend to distributed recursive subdivision surfaces. They

underlie the mechanism for stitching the refined partitions of a mesh into a single refined mesh.

Keywords:association spaces; recursive subdivision surfaces; multigrid techniques; distributed

surfaces.

1. INTRODUCTION

Recursive subdivision surfaces are now one of the surface representations of choice in Computer Graphics and Geometric Modeling. They provide a compact and flexible representation for modeling three-dimensional geometry in a robust and computationally effective manner. They can represent smooth surfaces, as well as surfaces with creases and sharp edges, and have shown their effectiveness in a number of general modeling, interrogation, reconstruction, shape editing, animation, and related tasks. Recursive subdivision surfaces represent the geometry as the limit surface of a subdivision process. An initial coarse mesh—the control mesh—is refined repeatedly, both geometrically and topologically, using rules specified by a particular subdivision scheme. Repeated refinements lead to a hierarchy of increasingly refined models which approach the limit surface.

The interest in recursive subdivision surfaces has motivated a number of efforts to provide support for implementing various schemes in a generic fashion. Velho [1] proposed a notation based on L-systems [2] for describing recursive subdivision algorithms. Ivrissimtzis [3] studied factorizations of subdivision rules in terms of polyhedra operators to simplify their analysis and implementation. Sovakar and Kobbelt [3] designed a generic API where subdivision operators are built as compositions of rules that perform the basic splits, edge flips, etc. needed for the generation of a refined mesh from a coarser one. Shiue and Peters [5] developed a template-based generic refinement library for applying subdivision rules on meshes supporting iterators and Euler operators, such as the half-edge data structure. These libraries greatly facilitate the development of models and allow users to readily implement, in principle, new subdivision schemes. Their main advantage, namely their genericity, comes from their decoupling of the specifics of a given subdivision scheme from the traversal, interrogation, and topological cutting/splicing mesh operations. While not as run-time efficient as hand-crafted array-based representations customized for a given scheme, their flexibility and generality offset the small cost.

More recently, subdivision surfaces have been used in numerical simulations and computational science problems. Simulations involving the discretization of Navier-Stokes and other differential operators defined on subdivision surfaces have been demonstrated. Subdivision surfaces have also enabled reliable thin-shell simulations since they provide, by construction, the necessary continuity (and square integrability) conditions necessary for representing the deformed geometry. Thin-shell finite element simulations have been developed [6], [7], [8] in which subdivision is used to represent the curvilinear geometry as well as the finite element basis functions used in the discretization.

Computer-Aided Design & Applications, Vol. 3, Nos. 1-4, 2006, pp 495-504

496

Numerical simulations arising from the discretization of differential operators generally result in very large sets of algebraic equations that must be solved repeatedly, and whose solutions represent major bottlenecks in the computations. The hierarchical nature of recursive subdivision representations provides a natural setting in which multilevel schemes can be used to significantly speed up these solutions. In multigrid methods, for example, coarser meshes are used to resolve the low frequency components of the solutions while finer meshes resolve the high frequency components. By maintaining a hierarchy of refined meshes and propagating the solution and residuals up and down this refinement hierarchy, computation times that scale linearly with problem size can be obtained. Unfortunately, generic libraries that support these computations on subdivision surfaces do not yet exist. Developers still have to custom-build structures to perform the necessary operations for aggregating values from local neighborhoods of a given mesh level and spreading them appropriately, in a fashion dictated by the specific subdivision scheme used, to coarser and finer levels. This makes it far more time consuming to build and experiment with multilevel solvers and related computational strategies. Because the inter- and intra-level aggregation and spreading operations are scheme-specific, it should be possible to abstract them and greatly facilitate the implementation of hierarchical multilevel computations.

As the interest in more complex and realistic models grows, there is a need for supporting the implementation, rendering, and computations with recursive subdivision surfaces on distributed-memory machines. Distributed memory machines allow high-resolution meshes to be processed in parallel, potentially real-time high-quality rendering, and fast high-resolution computational science simulations. There is currently no infrastructure for building systems with distributed representations of recursive subdivision schemes. Such an infrastructure must provide the functionality to partition a coarse mesh, perform distributed refinement, transfer information between distributed partitions, and stitch refined partitions up and down the hierarchy into a coherent and consistently refined surface. Ideally, these operations should be independent of the particular subdivision scheme being used.

This paper presents a library for computing with distributed recursive subdivision surfaces. This library provides an association space which allows a developer to establish associations between a vertex at a given refinement level and one or more geometric elements (vertices, edges, and faces) at the previous refinement level. The developer can then retrieve vertices at a particular refinement level by querying the association space using elements from the previous refinement level. These associations simplify the implementation of recursive subdivision surfaces and the code that traverses the hierarchy of meshes. Furthermore, these associations automate the stitching of a refined surface out of its refined partitions. The main contributions of this paper are the association spaces abstraction and the demonstration of its applicability. Specifically, we show how it provides (1) an intuitive mechanism for implementing subdivision schemes, (2) elegant support for multilevel computations with general subdivision schemes, and (3) higher-level functionality for implementing distributed recursive subdivision.

The rest of this paper is organized as follows. Section 2 defines Association Spaces. Section 3 illustrates the implementations of several subdivision schemes (Catmull-Clark [9], Doo-Sabin [10], Sqrt-3 [11], and a new ternary scheme). Section 4 shows how multilevel computations can be performed generically on subdivision surfaces. Section 5 demonstrates the use of association spaces to implement parallel subdivision surfaces efficiently.

2. ASSOCIATION SPACES

2.1 Definitions

An inter-level topological association relates a vertex at a particular refinement level to one or more elements (vertices, edges, or faces) at the previous refinement level. An association space is the set of topological associations between two consecutive refinement levels. The association space maps one or more elements of the control polygon at a given refinement level onto the vertices of the control polygon at the next refinement level. Formally, Πi is an m:1 mapping from tuples of P i elements onto V i+1 elements where P i is the level i control polygon which consists of V i, E i, and F i, the sets of level i vertices, edges, and faces respectively, along with their connectivity information; V i+1 is the set of vertices of P i+1, the level i+1 control polygon. This relationship can be generalized to include edges and faces at the refined level too. However, we have not found a need for it.

Primal subdivision schemes exhibit mostly 1:1 associations. For example, Catmull-Clark splits a face and its edges; it associates a level i vertex, edge, or face with its corresponding v-Point, e-Point, or f-Point at level i+1. Fig. 1 shows one of each of these three 1:1 association types. Dual subdivision schemes exhibit 2:1 associations. For example, the Doo-Sabin subdivision algorithm splits a vertex and associates a level i vertex-face pair (a vertex and one of the faces that it belongs to) with an f-Point at level i+1. Fig. 2 shows two such associations. They associate a level i vertex and each of two of its incident faces with two level i+1 vertices.

Computer-Aided Design & Applications, Vol. 3, Nos. 1-4, 2006, pp 495-504

Computer-Aided Design & Applications, Vol. 3, Nos. 1-4, 2006, pp 495-504

497

Association spaces allow a system to store references to elements at the next refinement level by establishing associations between these elements and others at the previous refinement level used to derive them. It then allows the system to retrieve these references by querying the association space for the associations of the coarse level elements. Associations encode computational dependencies. However, they differ from dependencies by recording only the essential dependencies rather than all. We will show below how we can use these essential dependencies to decouple the generation of vertices at the refined level from establishing the topological connectivity of these vertices. This decoupling simplifies the implementation of recursive subdivision algorithms and the use of subdivision surfaces for multilevel numerical techniques such as multigrid techniques.

2.2 Association Space Operations

The association space defines the assoc function which takes one or more level i elements as its parameters. The function can be used as both an l -value and an r -value. On the right-hand side of an assignment, the function behaves as an r -value and returns the level i +1 vertex that is associated with

its parameters. On the left-hand side of an assignment, the function behaves as an l -value and associates the right-hand side level i +1 vertex to the level i elements that appear as the parameters of the function. Establishing an association also implicitly adds a vertex to the level i +1 control polygon.

To simplify the notation, the assoc function is overloaded and acts in a manner similar to the Lisp map function. It accepts vectors of level i as its parameters. All vector parameters must have the same size. In this case, the assoc function implicitly loops over the elements of these vectors in lockstep mode and pairs the corresponding elements of these vectors. When the parameters are mixed vectors and scalars, the function pairs the scalar parameters with each element of the vector(s). The function returns a vector of level i +1 vertices when it is used as an r -value; it associates the level i +1 vertices in a vector with the level i elements of its vector parameters when it is used as an l -value.

Reusing the Catmull-Clark example, the expression assoc (edge i ) ← e-Point i +1 associates the level i +1 vertex, e -Point i +1, to the level i edge, edge i , which is used to derive the e-Point vertex. By contrast, the expression assoc (edge i ) retrieves the level i +1 e -Point vertex associated with the level i edge, edge i . Note here that the level i +1 e -Point vertex depends on the level i edge as well as the two faces adjacent to it. However, this association only records the dependency of the e -Point vertex on an edge.

For the Doo-Sabin example, the expression assoc (v i , f i ) ← vf -Point i +1 associates the level i +1 vertex, vf -Point i +1, to the level i vertex-face pair . Within the same example, the expression assoc (v i , v i .faces()) returns a vector of level i +1 vertices associated with the level i vertex v i and each of its faces; this is the list of vertices that form the level i +1 v -Face that correspond to v i .

3. ASSOCIATION-BASED IMPLEMENTATIONS OF SUBDIVISION SURFACES

A subdivision scheme that uses associations consists of the following three steps: (1) instantiate level i +1 vertices out of existing levels i and i +1 vertices; (2) associate the newly created vertices with geometric elements used to create them;

(3) select level i +1 vertices using their associations in a specific order and assemble them into the faces of the level i +1 surface. We assume here that an implementation of geometric surfaces is available and that this implementation provides data structures such as the half-edge or the quad-edge which handle the topological interconnectivity between vertices, edges, and faces. Such implementations provide functions that return the vertices of a face, the 1-ring vertices of a vertex, the origin and destination vertices of an edge, its left and right faces, etc .

Fig. 1. Associations for a Face & Edge Split. Fig. 2. Associations for a Vertex Split.

Computer-Aided Design & Applications, Vol. 3, Nos. 1-4, 2006, pp 495-504

498

The rest of this section illustrates the flexibility of the association-based approach by sketching implementations of the following four subdivision schemes: Catmull-Clark—a primal scheme, Doo-Sabin—a dual scheme, Sqrt-3 subdivision, and a new ternary scheme developed by Nasri and Hasbini [12], [13].

3.2 Illustrative Schemes

The Catmull-Clark subdivision algorithm uses primal refinement operators and acts on quad meshes. It refines a level i quad into four level i +1 quads. The topological refinement operator inserts an f -Point (face point) vertex into a level i quad and an e -Point (edge point) vertex into a level i edge. It also replaces an existing level i vertex by its corresponding v -Point (vertex point). The relations face i :f -Point i +1, edge i :e -Point i +1, and vertex i :v -Point i +1 directly map onto 1:1 associations (face:vertex, edge:vertex, and vertex:vertex respectively) as shown in Fig. 3. These associations can be readily used to implement the Catmull-Clark subdivision algorithm; Alg. 1 below sketches such an implementation.

The Doo-Sabin algorithm is a dual scheme that acts on quad meshes. It splits a level i vertex of valence n into n level i +1 vertices with each new vertex corresponding to one of the faces that the level i vertex belongs to. It then forms v -Faces, e -Faces, and f -Faces out of the newly created vertices. The correspondence between a level i +1 vertex and the level i pair used to create it directly maps onto 2:1 associations. Fig. 4 shows the associations used in Doo-Sabin; Alg. 2 below shows the implementation of the Doo-Sabin algorithm using associations.

The Sqrt-3 subdivision algorithm acts on triangular meshes. Its refinement operator splits a triangular face by inserting a new vertex at the centroid of the triangle and adjusts the positions of

existing vertices thereby forming three new triangles. It then flips the existing edges so the new triangular faces ride over existing edges. For the Sqrt-3 subdivision, the correspondence between level i +1 vertex and the level i faces and vertices that derives them can be readily modeled as vertex-face and vertex-vertex 1:1 associations. Alg. 4 sketches the implementation of the Sqrt-3 subdivision using associations.

The Nasri-Hasbini ternary subdivision scheme has a refinement operator that acts on quad and triangle meshes. It has v -Point vertices that correspond to the existing vertices of a quad. It also inserts 2 e -Point vertices per edge and 4 f -Point vertices per quad. This results in 9 new quads replacing an existing quad. Fig. 5 shows one refinement step of this scheme. The topology of the refined mesh bears a striking resemblance to a composition of Catmull-Clark and Fig. 5. Nasri-Hasbini Ternary Subdivision Scheme.

Fig. 4. Doo-Sabin Associations (:v i +1). Fig. 3. Catmull-Clark Associations: face:vertex (f i :v i +1), edge:vertex (e i :v i +1), vertex:vertex (v i :v i +1).

499 Doo-Sabin into one step. It uses 1:1 vertex-vertex associations to map the level i vertices onto level i+1 v-Points. It also uses 2:1 associations to map level i pairs (a face and one of its vertices) onto level i+1 f-Points and level ipairs (an edge and one of its end vertices) onto level i+1 e-Points. Alg. 4 sketches the implementation of this ternary scheme using the three sets of associations.

Associations can handle extraordinary vertices. Fig. 7 shows the associations used in Catmull-Clark to form the quad that is the result of splitting a face with a valence 5 extraordinary vertex. These associations are identical to the ones used for splitting a regular face: 1 face i:f-Point i+1, 2 edge i:e-Point i+1, and 1 vertex i:v-Point i+1. Similarly, Fig. 7 shows the five 2:1 associations used in Doo-Sabin to split a valence 5extraordinary vertex into a pentagon face.

3.3 Storage & Runtime Costs

The storage cost for using associations to refine a level i control mesh into a level i+1 mesh is O(n i+1) pointers where n i+1 is the number of vertices at level i+1—one pointer per level i+1 vertex. The storage cost for refining a mesh up to level l adds up the costs over all levels. As such, the cost of refining a mesh up to level l using Catmull-Clark, which only uses 1:1 associations, is 4/3 n l pointers. This additional storage cost is acceptable when compared to the storage needed for representing a mesh (vertex coordinates & normals, connectivity information, face normals, etc.) or storing physical quantities needed in numerical simulations on the mesh (e.g., 3 or 6 doubles per vertex).

Computer-Aided Design & Applications, Vol. 3, Nos. 1-4, 2006, pp 495-504

Computer-Aided Design & Applications, Vol. 3, Nos. 1-4, 2006, pp 495-504

500

The runtime cost of using associations to refine a level i mesh is O (n i +1): a subdivision algorithm must establish one association per vertex; it will access this association a very small number of times depending on the particular subdivision scheme. This cost assumes that the cost of establishing and accessing an association is O (1). As such, the total cost incurred for using associations to refine a mesh up to level l by Catmull-Clark is O (4/3 n l ). This additional cost is acceptable considering the flexibility of the approach. The real cost of using associations is the loss of data locality from the point of view of cache access. However, this is a cost that we have not studied.

Our current implementation uses the quad-edge data structure for storing and manipulating topological relations between geometric elements at a given refinement level. The inter-level associations use C++ arrays and STL vectors. Tab. 1 gives run times up to level 6 for refining the rook model shown in Fig. 8. At the coarsest level, the rook consists of 130 vertices and 256 faces. A level 5 Catmull-Clark refinement produces a mesh with 49,152 vertices & 49,154 faces and takes 0.51 sec on a 3.2 GHz Intel CPU with GCC 4.0. These numbers are nearly 20% faster than the numbers reported in [5]. However, these latter numbers are for a slower CPU (2.4 GHz) and an older version of the compiler (GCC 3.3.2). Nevertheless, associations do not seem to incur a significant penalty.

Fig. 6. Associations at an Extraordinary Vertex for

Catmull-Clark. i i +1) v -Point

e -Point

f -Point

Fig. 7. Associations at an Extraordinary Vertex for Doo-Sabin. i

i +1)

501

Tab. 1. Run Times for Rook Refinement Level Time (s)

Faces

1 256

2 0.01 768

3 0.03 3072

4 0.13 12,288

5 0.51 49,152

6 2.11 196,608

Fig. 8. Rook—Initial Mesh. Fig. 9. Rook—Level 5 Mesh.

4.HIERARCHICAL COMPUTATIONS

In this section, we show how association spaces can be used to express hierarchical computations generically. Our illustration is a multigrid iteration. Multigrid methods are a family of multiresolution methods that are used as solvers or preconditioners of other iterative methods, and for solving algebraic equations defined on a mesh (often derived by discretizing a differential operator on the mesh). Their performance as solvers or accelerators for other iterative solvers is nearly optimal, allowing in practice an almost-linear scaling of solution time with mesh size. The implementation of multigrid solutions is more involved than that of other solvers, as they require inter-level transfer of information between finer and coarser mesh levels with all the associated bookkeeping. Recursive subdivision surfaces are a natural fit to multigrid computations. However, the bookkeeping needed to take advantage of subdivision surfaces for these computations is quite involved. For simple and globally regular cases, the inter-level bookkeeping is based on manipulating array indices. Unfortunately, this technique does not work for meshes with general connectivity.

The core of a multigrid implementation recursively transfers information from a fine level to its coarse parent and eventually back down to the fine level after operating at the coarse level. As such, an implementation must carry out this information transfer throughout the levels of the hierarchy of meshes. The multigrid interpolation operator transfers information from a coarse level to a finer one. When using subdivision surfaces, interpolation is most logically done using the subdivision operator of the particular subdivision scheme representing the surface. The multigrid restriction operator transfers information from a fine mesh to its coarse parent. It is most logically done using the transpose of the subdivision operator. A reusable implementation that couples subdivision surfaces and multigrid techniques must express these transfer operators in separate modular units. Association spaces allow us to directly implement these operators in this manner.

Multigrid interpolation mirrors the geometric refinement operation of subdivision algorithms and uses the same pattern for accessing elements at the fine level. We can readily use associations to implement this operator in exactly the same way as was done in Algorithms 1–4 for the four schemes illustrated earlier.

The restriction operation retraces the interpolation step in reverse for all level i+1 vertices. Alg. 5 sketches the implementation of this operator for Catmull-Clark. The algorithm first spreads the vertex values (residuals) of v-Points to the level i vertices, and the level i+1 e-Points and f-Points used to generate those v-Points. It then spreads the values of e-Points to the level i+1 f-Points and the vertices of the level i edges used to generate these e-Points. Finally, it spreads the values of f-Points to the vertices of the faces they are associated with. We use associations to access the level i+1 elements throughout the algorithm. Notice how this code is essentially the reverse of that of Alg. 1.

Alg. 6 sketches the restriction operator for Doo-Sabin. As in the case of Catmull-Clark, this is a retracing of Alg. 2 in reverse. The operator spreads the values of a level i+1 vertex to (1) the corresponding level i vertex, (2) the two connected neighbors within the face of this level i vertex, and (3) the vertices of the face that it is associated with. Once again, the operator uses 2:1 associations (:vertex) for this dual scheme.

In our sample implementation, the inter-level transfer operators for the same rook example took 0.29 sec for a restriction and interpolation cycle between levels 5 and 6; the numbers of vertices at these two levels are 49,154 and 196,610 respectively. This number indicates to us that the runtime performance of systems that use associations is quite acceptable in spite of its high-level of expressiveness.

5.DISTRIBUTED RECURSIVE SUBDIVISION MESHES

Recursive subdivision surfaces are memory bound when only used to represent a surface. The number of face grows by a factor of 3 or 4 with each refinement level in many subdivision schemes. This growth can easily overwhelm the memory resources of any machine. Distributed recursive subdivision surfaces can delay hitting this limitation. Padrón et al. have presented parallel implementations of the Butterfly subdivision scheme [14].

Computer-Aided Design & Applications, Vol. 3, Nos. 1-4, 2006, pp 495-504

502

(1) Partition (2) Distribute & Local id s

Fig. 10. Generating a Distributed Recursive Subdivision Surface.

We used shadows and associations as a foundation to parallelize recursive subdivision algorithms. The process of parallelizing the generation of a recursive subdivision surface is as follows: (1) partition a control polygon into several submeshes and extend each submesh with a layer of shadow or ghost cells; the depth of the shadow layer depends on the algorithm being parallelized; (2) distribute the partitions to the various processors and renumber a partition’s elements to use local id s; (3) subdivide each partition on its own processor; (4) renumber each refined partition’s elements to use consistent global id s. This global numbering scheme effectively stitches the refined partitions into a global distributed refined mesh and obviates the need for assembling the refined mesh on a single processor. Fig. 10 gives a graphical depiction of this process.

The subdivision algorithm can be transformed into a trivially parallelizable algorithm: refining a partition can proceed without any information from adjacent partitions when the partition is augmented with a layer of shadow faces from these adjacent partitions. The depth of the shadow layer depends on the diameter of the stencil used in the refinement operation. For most primal and dual schemes such as Catmull-Clark and Doo-Sabin, this depth is 1. It is also 1 for the Nasri-Hasbini ternary scheme. However, it is 2 for the Sqrt-3 subdivision scheme.

Computer-Aided Design & Applications, Vol. 3, Nos. 1-4, 2006, pp 495-504

503

(a) Partitioned mannequin

(b) Partitions after 4 subdivisions (c) Assembled level 5 image

Fig. 11. Distributed Catmull-Clark of Mannequin Head (partitions appear in different colors).

(a) Partitioned torus

(b) After 1 subdivision (c) After 4 subdivisions

Fig. 12. Torus Mesh after 1 level of Doo-Sabin Subdivision (partitions & shared faces appear in different colors).

The depth of the shadow layer remains constant during refinement. The refinement process only retains half of the refined shadow faces that are generated from the coarse shadow faces; these are the elements that are adjacent to the inter-partition boundary or that straddle this boundary. Nevertheless, the feature size of the retained shadow elements shrinks with the refinement process.

The refined partitions use a separate numbering scheme each. A distributed implementation of subdivision surfaces must renumber the elements of all refined partitions in a consistent manner to reestablish the identity of the globally distributed and refined mesh. This renumbering requires a substantial amount of bookkeeping as it must handle the presence of elements in multiple partitions; adjacent refined partitions share at least shadow elements. Each partition has its own association space that maps onto vertices of its corresponding refinement. Furthermore, each coarse partition has its global id s. We reestablish global id s at the fine level by propagating these coarse global id s along the distributed associations.

For primal schemes such as Catmull-Clark, the v-Points and e-Points associated with vertices and edges on the inter-partition boundary at the coarse level form the inter-partition boundary at the refined level. Therefore, the stitching algorithm for primal schemes simply traces the associations of vertices and edges on the coarse inter-partition boundary to identify the refined inter-partition boundary.

For dual schemes such as Doo-Sabin, vertices and edges on the coarse inter-partition boundary result in v-Faces and e-Faces on the refined inter-partition boundary. These elements are generated in each refined partition. The stitching algorithm identifies these common elements by tracing the coarse inter-partition boundary and using the associations of vertex-face pairs where vertices are on the inter-partition boundary and faces lie on either side of this boundary. Schemes such as Sqrt-3 present an additional problem. At odd subdivision levels, the coarse inter-partition boundary maps onto a set of edges and vertices. However, it maps onto a set of faces at even subdivision levels. The stitching algorithm needs to handle both cases and, as such, combines aspects of primal and dual schemes.

We have implemented distributed versions of several subdivision algorithms: Catmull-Clark, Doo-Sabin, Loop, and the Nasri-Hasbini ternary scheme. This distributed system uses MPI as the underlying communication layer and METIS [15] for graph and mesh partitioning. It can refine the mannequin head example show in Fig. 11(a) to level 7 on a 4-CPU cluster—1 master and 3 slaves with only the slave CPUs carrying out the subdivision process. By contrast, the serial implementation ran out of memory before reaching this refinement level. This initial control mesh consists of 712 vertices and 1,377 faces that are a mixture of triangles, quads, and pentagons. The level 6 mannequin has more

Computer-Aided Design & Applications, Vol. 3, Nos. 1-4, 2006, pp 495-504

504

than 4 million faces, a comparable number of vertices, and nearly 8.5 million edges. Fig. 11(a) shows the mesh as a wireframe and its initial partitioning into three submeshes. Each partition is rendered in a different color. Fig. 11(b) shows each partition after 4 subdivisions using Catmull-Clark as rendered by its processor. Fig. 11(c) shows the assembled image at level 5.

Fig. 12 shows an example of Doo-Sabin applied to a torus that is split into 3 partitions. After 1 level of refinement, the common faces straddling the inter-partition boundaries are depicted in green—the three green rings. These elements become barely visible after 4 subdivisions.

5. CONCLUSIONS

Association spaces are a high-level abstraction that simplifies the implementation of recursive subdivision surfaces, the specification of multilevel computations on these surfaces, and the parallelization of these algorithms. Association spaces are n:1 mappings from tuples at a coarse level onto vertices at a fine level. In this paper, we illustrated their use to implement a number of schemes and showed that despite their high-level expressiveness, these implementations do not incur a performance penalty. In the future, we want to extend our sample implementations to handle creases and boundaries. We also want to use associations to implement multilevel distributed computations on subdivision surfaces.

6. REFERENCES

[1]Velho, L., Stellar Subdivision Grammars, SGP ’03: Proceedings of the 2003 Eurographics/ACM SIGGRAPH

Symposium on Geometry Processing, 2003, pp 188–199.

[2]Prusinkiewicz, P., Samavati, F., Smith, R. and Karwowski, R., L-System Description of Subdivision Curves,

International Journal of Shape Modeling, Vol. 9, 2003, pp 41–59.

[3]Ivrissimtzis, I. and Seidel, H.-P., Polyhedra Operators for Mesh Refinement. Proceedings, Geometric Modeling

and Processing, Theory and Applications, IEEE, 2002.

[4]Sovakar, A. and Kobbelt L., API Design for Adaptive Subdivision Schemes. Computers and Graphics, Vol. 28,

No. 1, 2004, pp 67-72.

[5]Shiue, L. and Peters, J. A., Mesh Refinement Library based on Generic Design. Proceedings of the 43rd ACM

Southeast Conference, 2004.

[6]Cirak, F., Ortiz, M. and Schr?der, P., Subdivision Surfaces: a New Paradigm for Thin-Shell Finite-Element

Analysis, International Journal for Numerical Methods in Engineering, Vol. 47, No. 12, 2000, pp 2039--72. [7]Green, S., Turkiyyah, G. and Storti, D., Subdivision-Based Multilevel Methods for the Large Scale Simulation of

Thin Shells. Seventh ACM Proceedings on Solid Modeling and Applications. ACM, 2002.

[8]Green, S. and Turkiyyah, G., Second Order Accurate Constraints for Subdivision Finite Elements, International

Journal for Numerical Methods in Engineering, Vol. 60, No. 13, 2004.

[9]Catmull, E. and Clark, J., Recursively Generated B-spline Surfaces on Arbitrary Topological Meshes, Seminal

Graphics, Rosalee Wolfe (ed.), 1998, pp 183–188, ACM Press.

[10]Doo, D. and Sabin, M., Behaviour of Recursive Division Surfaces near Extraordinary Points, Seminal Graphics,

[11] Subdivision, SIGGRAPH’00, 2000, pp 103–112.

[12]Hasbini, I., A Ternary Subdivision Scheme for B-spline Surfaces over Arbitrary Meshes, Masters’ Thesis,

Computer Science, American University of Beirut, Beirut, Lebanon, 2005.

[13]Nasri, A., Hasbini, I., Zheng, J. and Sederberg, T., A Ternary Subdivision Scheme for B-spline Surfaces over

Arbitrary Meshes, Technical Report 02/2005, American University of Beirut. Also presented at the Geometric Dagstuhl seminar on Geometric Modeling, May 29–June 03, 2005, http://www.dagstuhl.de/05221/Materials. [14]Padrón, E. J., Amor, M., Bóo, M. and Doallo, R., Efficient Parallel Implementations for Surface Subdivision,

Fourth Eurographics Workshop on Parallel Graphics and Visualization, 2002, pp 113–121.

[15]Karypis, G. and Kumar, V., METIS: Unstructured Graph Partitioning and Sparse Matrix Ordering System,

Version 4.0, 1998, https://www.360docs.net/doc/105905245.html,/~karypis/metis.

Computer-Aided Design & Applications, Vol. 3, Nos. 1-4, 2006, pp 495-504

英语选修六课文翻译Unit5 The power of nature An exciting job的课文原文和翻译

AN EXCITING JOB I have the greatest job in the world. I travel to unusual places and work alongside people from all over the world. Sometimes working outdoors, sometimes in an office, sometimes using scientific equipment and sometimes meeting local people and tourists, I am never bored. Although my job is occasionally dangerous, I don't mind because danger excites me and makes me feel alive. However, the most important thing about my job is that I help protect ordinary people from one of the most powerful forces on earth - the volcano. I was appointed as a volcanologist working for the Hawaiian V olcano Observatory (HVO) twenty years ago. My job is collecting information for a database about Mount Kilauea, which is one of the most active volcanoes in Hawaii. Having collected and evaluated the information, I help other scientists to predict where lava from the volcano will flow next and how fast. Our work has saved many lives because people in the path of the lava can be warned to leave their houses. Unfortunately, we cannot move their homes out of the way, and many houses have been covered with lava or burned to the ground. When boiling rock erupts from a volcano and crashes back to earth, it causes less damage than you might imagine. This is because no one lives near the top of Mount Kilauea, where the rocks fall. The lava that flows slowly like a wave down the mountain causes far more damage because it

八年级下册3a课文

八年级下学期全部长篇课文 Unit 1 3a P6 In ten years , I think I'll be a reporter . I'll live in Shanghai, because I went to Shanfhai last year and fell in love with it. I think it's really a beautiful city . As a reporter, I think I will meet lots of interesting people. I think I'll live in an apartment with my best friends, because I don' like living alone. I'll have pets. I can't have an pets now because my mother hates them, and our apartment is too small . So in ten yers I'll have mny different pets. I might even keep a pet parrot!I'll probably go skating and swimming every day. During the week I'll look smart, and probably will wear a suit. On the weekend , I'll be able to dress more casully. I think I'll go to Hong Kong vacation , and one day I might even visit Australia. P8 Do you think you will have your own robot In some science fiction movies, people in the future have their own robots. These robots are just like humans. They help with the housework and do most unpleasant jobs. Some scientists believe that there will be such robots in the future. However, they agree it may take hundreds of years. Scientist ae now trying to make robots look like people and do the same things as us. Janpanese companies have already made robts walk and dance. This kond of roots will also be fun to watch. But robot scientist James White disagrees. He thinks that it will be difficult fo a robot to do the same rhings as a person. For example, it's easy for a child to wake up and know where he or she is. Mr White thinks that robots won't be able to do this. But other scientists disagree. They think thast robots will be able t walk to people in 25 to 50tars. Robots scientists are not just trying to make robots look like people . For example, there are already robots working in factories . These robots look more like huge arms. They do simple jobs over and over again. People would not like to do such as jobs and would get bored. But robots will never bored. In the futhre, there will be more robots everwhere, and humans will have less work to do. New robots will have different shapes. Some will look like humans, and others might look like snakes. After an earthquake, a snake robot could help look for people under buildings. That may not seem possibe now, but computers, space rockets and even electric toothbrushes seemed

选修6英语课本原文文档

高中英语选修 6 Unit 1 A SHORT HISTORY OF WESTERN PAINTING Art is influenced by the customs and faith of a people. Styles in Western art have changed many times. As there are so many different styles of Western art, it would be impossible to describe all of them in such a short text. Consequently, this text will describe only the most important ones. Starting from the sixth century AD. The Middle Ages(5th to the 15th century AD) During the Middle Ages, the main aim of painters was to represent religious themes. A conventional artistof this period was not interested in showing nature and people as they really were. A typical picture at this time was full of religious symbols, which created a feeling of respect and love for God. But it was evident that ideas were changing in the 13th century when painters like Giotto di Bondone began to paint religious scenes in a more realistic way. The Renaissance(15th to 16th century) During the Renaissance, new ideas and values gradually replaced those held in the Middle Ages. People began to concentrate less on

英语选修六课文翻译第五单元word版本

英语选修六课文翻译 第五单元

英语选修六课文翻译第五单元 reading An exciting job I have the greatest job in the world. travel to unusual places and work alongside people from all over the world sometimes working outdoors sometimes in an office sometimes using scientific equipment and sometimes meeting local people and tourists I am never bored although my job is occasionally dangerous I don't mind because danger excites me and makes me feel alive However the most important thing about my job is that I heIp protect ordinary people from one of the most powerful forces on earth-the volcano. I was appointed as a volcanologist working for the Hawaiian Volcano Observatory (HVO) twenty years ago My job is collecting information for a database about Mount KiLauea which is one of the most active volcanoes in Hawaii Having collected and evaluated the information I help oyher scientists to predict where lava from the path of the lava can be warned to leave their houses Unfortunately we cannot move their homes out of the way and many houses have been covered with lava or burned to the ground. When boiling rock erupts from a volcano and crashes back to earth, it causes less damage than you might imagine. This is because no one lives near the top of Mount Kilauea, where the rocks fall. The lava that flows slowly like a wave down the mountain causes far more damage because it buries everything in its path under the molten rock. However, the eruption itself is really exciting to watch and I shall never forget my first sight of one. It was in the second week after I arrived in Hawaii. Having worked hard all day, I went to bed early. I was fast asleep when suddenly my bed began shaking and I heard a strange sound, like a railway train passing my window. Having experienced quite a few earthquakes in Hawaii already, I didn't take much notice. I was about to go back to sleep when suddenly my bedroom became as bright as day. I ran out of the house into the back garden where I could see Mount Kilauea in the distance. There had been an eruption from the side of the mountain and red hot lava was fountaining hundreds of metres into the air. It was an absolutely fantastic sight. The day after this eruption I was lucky enough to have a much closer look at it. Two other scientists and I were driven up the mountain and dropped as close as possible to the crater that had been formed duing the eruption. Having earlier collected special clothes from the observatory, we put them on before we went any closer. All three of us looked like spacemen. We had white protective suits that covered our whole body, helmets,big boots and special gloves. It was not easy to walk in these suits, but we slowly made our way to the edge of the crater and looked down into the red, boiling centre. The other two climbed down into the crater to collect some lava for later study, but this being my first experience, I stayed at the top and watched them.

人教版英语选修六Unit5 the power of nature(An exciting Job)

高二英语教学设计 Book6 Unit 5 Reading An Exciting Job 1.教学目标(Teaching Goals): a. To know how to read some words and phrases. b. To grasp and remember the detailed information of the reading material . c. To understand the general idea of the passage. d. To develop some basic reading skills. 2.教学重难点: a.. To understand the general idea of the passage. b. To develop some basic reading skills. Step I Lead-in and Pre-reading Let’s share a movie T: What’s happened in the movie? S: A volcano was erupting. All of them felt frightened/surprised/astonished/scared…… T: What do you think of volcano eruption and what can we do about it? S: A volcano eruption can do great damage to human beings. It seems that we human beings are powerless in front of these natural forces. But it can be predicted and damage can be reduced. T: Who will do this kind of job and what do you think of the job? S: volcanologist. It’s dangerous. T: I think it’s exciting. Ok, this class, let’s learn An Exciting Job. At first, I want to show you the goals of this class Step ⅡPre-reading Let the students take out their papers and check them in groups, and then write their answers on the blackboard (Self-learning) some words and phrases:volcano, erupt, alongside, appoint, equipment, volcanologist, database, evaluate, excite, fantastic, fountain, absolutely, unfortunately, potential, be compared with..., protect...from..., be appointed as, burn to the ground, be about to do sth., make one’s way. Check their answers and then let them lead the reading. Step III Fast-reading 这是一篇记叙文,一位火山学家的自述。作者首先介绍了他的工作性质,说明他热爱该项工作的主要原因是能帮助人们免遭火山袭击。然后,作者介绍了和另外二位科学家一道来到火山口的经历。最后,作者表达了他对自己工作的热情。许多年后,火山对他的吸引力依然不减。 Skimming Ⅰ.Read the passage and answer: (Group4) 1. Does the writer like his job?( Yes.) 2. Where is Mount Kilauea? (It is in Hawaii) 3. What is the volcanologist wearing when getting close to the crater? (He is wearing white protective suits that covered his whole body, helmets, big boots and

Unit5 Reading An Exciting Job(说课稿)

Unit5 Reading An Exciting Job 说课稿 Liu Baowei Part 1 My understanding of this lesson The analysis of the teaching material:This lesson is a reading passage. It plays a very important part in the English teaching of this unit. It tells us the writer’s exciting job as a volcanologist. From studying the passage, students can know the basic knowledge of volcano, and enjoy the occupation as a volcanologist. So here are my teaching goals: volcanologist 1. Ability goal: Enable the students to learn about the powerful natural force-volcano and the work as a volcanologist. 2. Learning ability goal: Help the students learn how to analyze the way the writer describes his exciting job. 3. Emotional goal: Make the Students love the nature and love their jobs. Learn how to express fear and anxiety Teaching important points: sentence structures 1. I was about to go back to sleep when suddenly my bedroom became as bright as day. 2. Having studied volcanoes now for more than twenty years, I am still amazed at their beauty as well as their potential to cause great damage. Teaching difficult points: 1. Use your own words to retell the text. 2. Discuss the natural disasters and their love to future jobs. Something about the S tudents: 1. The Students have known something about volcano but they don’t know the detailed information. 2. They are lack of vocabulary. 3. They don’t often use English to express themselves and communicate with others.

an exciting job 翻译

我的工作是世界上最伟大的工作。我跑的地方是稀罕奇特的地方,我见到的是世界各地有趣味的人们,有时在室外工作,有时在办公室里,有时工作中要用科学仪器,有时要会见当地百姓和旅游人士。但是我从不感到厌烦。虽然我的工作偶尔也有危险,但是我并不在乎,因为危险能激励我,使我感到有活力。然而,最重要的是,通过我的工作能保护人们免遭世界最大的自然威力之一,也就是火山的威胁。 我是一名火山学家,在夏威夷火山观测站(HVO)工作。我的主要任务是收集有关基拉韦厄火山的信息,这是夏威夷最活跃的火山之一。收集和评估了这些信息之后,我就帮助其他科学家一起预测下次火山熔岩将往何处流,流速是多少。我们的工作拯救了许多人的生命,因为熔岩要流经之地,老百姓都可以得到离开家园的通知。遗憾的是,我们不可能把他们的家搬离岩浆流过的地方,因此,许多房屋被熔岩淹没,或者焚烧殆尽。当滚烫沸腾的岩石从火山喷发出来并撞回地面时,它所造成的损失比想象的要小些,这是因为在岩石下落的基拉韦厄火山顶附近无人居住。而顺着山坡下流的火山熔岩造成的损失却大得多,这是因为火山岩浆所流经的地方,一切东西都被掩埋在熔岩下面了。然而火山喷发本身的确是很壮观的,我永远也忘不了我第一次看见火山喷发时的情景。那是在我到达夏威夷后的第二个星期。那天辛辛苦苦地干了一整天,我很早就上床睡觉。我在熟睡中突然感到床铺在摇晃,接着我听到一阵奇怪的声音,就好像一列火车从我的窗外行驶一样。因为我在夏威夷曾经经历过多次地震,所以对这种声音我并不在意。我刚要再睡,突然我的卧室亮如白昼。我赶紧跑出房间,来到后花园,在那儿我能远远地看见基拉韦厄火山。在山坡上,火山爆发了,红色发烫的岩浆像喷泉一样,朝天上喷射达几百米高。真是绝妙的奇景! 就在这次火山喷发的第二天,我有幸做了一次近距离的观察。我和另外两位科学被送到山顶,在离火山爆发期间形成的火山口最靠近的地方才下车。早先从观测站出发时,就带了一些特制的安全服,于是我们穿上安全服再走近火山口。我们三个人看上去就像宇航员一样,我们都穿着白色的防护服遮住全身,戴上了头盔和特别的手套,还穿了一双大靴子。穿着这些衣服走起路来实在不容易,但我们还是缓缓往火山口的边缘走去,并且向下看到了红红的沸腾的中心。另外,两人攀下火山口,去收集供日后研究用的岩浆,我是第一次经历这样的事,所以留在山顶上观察他们

英语选修六课文翻译第五单元

英语选修六课文翻译第五单元 reading An exciting job I have the greatest job in the world. travel to unusual places and work alongside people from all over the world sometimes working outdoors sometimes in an office sometimes using scientific equipment and sometimes meeting local people and tourists I am never bored although my job is occasionally dangerous I don't mind because danger excites me and makes me feel alive However the most important thing about my job is that I heIp protect ordinary people from one of the most powerful forces on earth-the volcano. I was appointed as a volcanologist working for the Hawaiian Volcano Observatory (HVO) twenty years ago My job is collecting information for a database about Mount KiLauea which is one of the most active volcanoes in Hawaii Having collected and evaluated the information I help oyher scientists to predict where lava from the path of the lava can be warned to leave their houses

新目标英语七年级下册课文Unit04

新目标英语七年级下册课文Unit04 Coverstion1 A: What does your father do? B: He's a reporter. A:Really?That sounds interesting. Coverstion2 A:What does your mother do,Ken? B:She's a doctor. A:Really?I want to be a doctor. Coverstion3 A:What does your cousin do? B:You mean my cousin,Mike? A:Yeah,Mike.What does he do? B:He is as shop assistant. 2a,2b Coverstion1 A: Anna,doesyour mother work? B:Yes,she does .She has a new job. A:what does she do? B: Well ,she is as bank clerk,but she wants to be a policewoman. Coverstion2 A:Is that your father here ,Tony?

B:No,he isn't .He's working. B:But it's Saturday night.What does he do? B:He's a waiter Saturday is busy for him. A:Does he like it? B:Yes ,but he really wants to be an actor. Coverstion3 A:Susan,Is that your brother? B:Yes.it is A:What does he do? B:He's a student.He wants to be a doctor. section B , 2a,2b Jenny:So,Betty.what does yor father do? Betty: He's a policeman. Jenny:Do you want to be a policewoman? Betty:Oh,yes.Sometimes it's a little dangerous ,but it's also an exciting job.Jenny, your father is a bank clerk ,right? Jenny:Yes ,he is . Sam:Do you want to be a bank clerk,too? Jenny:No,not really.I want to be a reporter. Sam: Oh,yeah?Why? Jenny:It's very busy,but it's also fun.You meet so many interesting people.What about your father ,Sam. Sam: He's a reporter at the TV station.It's an exciting job,but it's also very difficult.He always has a lot of new things to learn.Iwant to be a reporter ,too

高中英语_An exciting job教学设计学情分析教材分析课后反思

人教版选修Unit 5 The power of nature阅读课教学设计 Learning aims Knowledge aims: Master the useful words and expressions related to the text. Ability aims: Learn about some disasters that are caused by natural forces, how people feel in dangerous situations. Emotion aims: Learn the ways in which humans protect themselves from natural disasters. Step1 Leading-in 1.Where would you like to spend your holiday? 2.What about a volcano? 3.What about doing such dangerous work as part of your job ? https://www.360docs.net/doc/105905245.html, every part of a volcano. Ash cloud/volcanic ash/ Crater/ Lava /Magma chamber 【设计意图】通过图片激发学生兴趣,引出本单元的话题,要求学生通过讨论, 了解火山基本信息,引出火山文化背景,为后面的阅读做铺垫。利用头脑风暴法收集学生对课文内容的预测并板书下来。文内容进行预测,培养学生预测阅读内容的能力。同时通过预测激起进一步探究 Step2. Skimming What’s the main topic of the article?

新目标英语七年级下课文原文unit1-6

Unit1 SectionA 1a Canada, France ,Japan ,the United States ,Australia, Singapore ,the United Kingdom,China 1b Boy1:Where is you pen pal from,Mike? Boy2:He's from Canada. Boy1:Really?My pen pal's from Australia.How about you,Lily?Where's your pen pal from? Girl1:She's from Japan.Where is Tony's pen pal from? Gril2:I think she's from Singapore. 2b 2c Conversation1 A: Where's you pen pal from, John? B: He's from Japan, A:Oh,really?Where does he live? B: Tokyo. Conversation2 A: Where's your pen pal from, Jodie? B: She's from France. A: Oh, she lives in Pairs. Conversation3 A: Andrew, where's your pen pal from? B: She's from France. A: Uh-huh. Where does she live? B: Oh, She lives in Paris.

相关主题
相关文档
最新文档