No.5 An Algorithm for LOD by Merging Near Coplanar Faces 451 The approaches mentioned above mainly make passes by calculating repeatedly the geometric

Similar documents
A Real-time Rendering Method Based on Precomputed Hierarchical Levels of Detail in Huge Dataset

A Developer s Survey of Polygonal Simplification algorithms. CS 563 Advanced Topics in Computer Graphics Fan Wu Mar. 31, 2005

Mesh Decimation Using VTK

A General Simplification Algorithm

A General Algorithm for Triangular Meshes Simplification

Polygonal Simplification: An Overview

Mesh Repairing and Simplification. Gianpaolo Palma

A Comparison of Mesh Simplification Algorithms

Mesh Simplification. Mesh Simplification. Mesh Simplification Goals. Mesh Simplification Motivation. Vertex Clustering. Mesh Simplification Overview

Level Set Extraction from Gridded 2D and 3D Data

3-Dimensional Object Modeling with Mesh Simplification Based Resolution Adjustment

CGAL. Mesh Simplification. (Slides from Tom Funkhouser, Adam Finkelstein)

Geometric Modeling. Bing-Yu Chen National Taiwan University The University of Tokyo

A Short Survey of Mesh Simplification Algorithms

Surface Simplification Using Quadric Error Metrics

Surface Simplification Using Quadric Error Metrics

Preferred directions for resolving the non-uniqueness of Delaunay triangulations

Parameterization of Triangular Meshes with Virtual Boundaries

View-dependent Polygonal Simplification

coding of various parts showing different features, the possibility of rotation or of hiding covering parts of the object's surface to gain an insight

Processing 3D Surface Data

Processing 3D Surface Data

Progressive Compression for Lossless Transmission of Triangle Meshes in Network Applications

Finding Shortest Path on Land Surface

Mesh Reduction with Error Control

Near-Optimum Adaptive Tessellation of General Catmull-Clark Subdivision Surfaces

Hierarchical surface fragments *

Processing 3D Surface Data

CLUSTERING A LARGE NUMBER OF FACES FOR 2-DIMENSIONAL MESH GENERATION

Realtime view-dependent isosurface visualization for regular volume data

SHAPE SEGMENTATION FOR SHAPE DESCRIPTION

Simplification. Stolen from various places

Deformation Sensitive Decimation

An Efficient Data Structure for Representing Trilateral/Quadrilateral Subdivision Surfaces

Adaptive Tessellation for Trimmed NURBS Surface

In Proceedings of ACM Symposium on Virtual Reality Software and Technology, pp , July 1996.

Semiautomatic Simplification

Final Project, Digital Geometry Processing

Technical Report. Removing polar rendering artifacts in subdivision surfaces. Ursula H. Augsdörfer, Neil A. Dodgson, Malcolm A. Sabin.

A New Constrained Texture Mapping Method

Mesh Decimation. Mark Pauly

A method of three-dimensional subdivision of arbitrary polyhedron by. using pyramids

Multi-Resolution Modeling in Collaborative Design

Subdivision Of Triangular Terrain Mesh Breckon, Chenney, Hobbs, Hoppe, Watts

Using Semi-Regular 4 8 Meshes for Subdivision Surfaces

An Algorithm of 3D Mesh Reconstructing Based on the Rendering Pipeline

Postprocessing of Compressed 3D Graphic Data

View-dependent Refinement of Multiresolution Meshes Using Programmable Graphics Hardware <CGI special issue>

Complexity Reduction of Catmull-Clark/Loop Subdivision Surfaces

Spectral Coding of Three-Dimensional Mesh Geometry Information Using Dual Graph

1. Introduction. 2. Parametrization of General CCSSs. 3. One-Piece through Interpolation. 4. One-Piece through Boolean Operations

Multiresolution structures for interactive visualization of very large 3D datasets

Half-edge Collapse Simplification Algorithm Based on Angle Feature

Surface Curvature Estimation for Edge Spinning Algorithm *

Texture Mapping using Surface Flattening via Multi-Dimensional Scaling

Efficient Rendering of Glossy Reflection Using Graphics Hardware

A Survey of Polygonal Simplification Algorithms UNC Technical Report TR97-045

Generating Tool Paths for Free-Form Pocket Machining Using z-buffer-based Voronoi Diagrams

Multiresolution Remeshing Using Weighted Centroidal Voronoi Diagram

View-dependent fast real-time generating algorithm for large-scale terrain

Applications. Oversampled 3D scan data. ~150k triangles ~80k triangles

Chapter 5. Spatial Data Manipulation

LODESTAR: An Octree-Based Level Of Detail Generator For VRML

Collision Detection based on Spatial Partitioning

Open Access Compression Algorithm of 3D Point Cloud Data Based on Octree

Meshes: Catmull-Clark Subdivision and Simplification

Brain Surface Conformal Spherical Mapping

FACET SHIFT ALGORITHM BASED ON MINIMAL DISTANCE IN SIMPLIFICATION OF BUILDINGS WITH PARALLEL STRUCTURE

COMPUTING CONSTRAINED DELAUNAY

Simulation in Computer Graphics Space Subdivision. Matthias Teschner

Isosurface Rendering. CSC 7443: Scientific Information Visualization

Triangle Strip Multiresolution Modelling Using Sorted Edges

A Multiresolutional Approach for Facial Motion Retargetting Using Subdivision Wavelets

CS 563 Advanced Topics in Computer Graphics QSplat. by Matt Maziarz

Overview. Efficient Simplification of Point-sampled Surfaces. Introduction. Introduction. Neighborhood. Local Surface Analysis

Data Partitioning. Figure 1-31: Communication Topologies. Regular Partitions

Parameterization with Manifolds

Study on Delaunay Triangulation with the Islets Constraints

Real-time Extendible-resolution Display of On-line Dynamic Terrain

Acquisition and Visualization of Colored 3D Objects

10.1 Overview. Section 10.1: Overview. Section 10.2: Procedure for Generating Prisms. Section 10.3: Prism Meshing Options

Visualizing Parametric Surfaces at Variable Resolution

Discrete Mathematics I So Practice Sheet Solutions 1

Geometric Modeling. Mesh Decimation. Mesh Decimation. Applications. Copyright 2010 Gotsman, Pauly Page 1. Oversampled 3D scan data

Shape-preserving Mesh Simplification based on Curvature Measures from the Polyhedral Gauss Map

Multiresolution Decimation based on Global Error

Triangular Mesh Segmentation Based On Surface Normal

A Constrained Delaunay Triangle Mesh Method for Three-Dimensional Unstructured Boundary Point Cloud

A General Framework for Mesh Decimation

APPROACH FOR MESH OPTIMIZATION AND 3D WEB VISUALIZATION

Polygon decomposition. Motivation: Art gallery problem

An Efficient Visual Hull Computation Algorithm

G 2 Interpolation for Polar Surfaces

Displacement Mapping

1 A REVIEW ON LEVEL OF DETAIL

Math 366 Lecture Notes Section 11.4 Geometry in Three Dimensions

Per-pixel Rendering of Terrain Data

Normals of subdivision surfaces and their control polyhedra

2) For any triangle edge not on the boundary, there is exactly one neighboring

Progress In Electromagnetics Research M, Vol. 20, 29 42, 2011

Transcription:

Vol.16 No.5 J. Comput. Sci. & Technol. Sept. 2001 An Algorithm for LOD by Merging Near Coplanar Faces Based on Gauss Sphere CAO Weiqun ( Π), BAO Hujun ( Λ) and PENG Qunsheng (ΞΠ±) State Key Laboratory of CAD & CG, Zhejiang University, Hangzhou 310027, P.R. China E-mail: fcaowq,bao,pengg@cad.zju.edu.cn Received July 26, 1999; revised July 5, 2000. Abstract LOD (Level of Detail) models are widely used recently to accelerate the rendering of 3D scenes. An algorithm that creates multiple levels of detail for 3D scene by merging near-coplanar faces is presented in this paper. First a Gauss sphere is defined for the model of scene and it is divided into meshes near-uniformly. Then, the faces of objects are attached to the respective spherical meshes according to their normal direction. If faces attached to the same mesh are connected with each other, they are merged to form a near coplanar patch (Superface). Isolated vertices inside the patch are removed and the patch is retriangulated. To further improve the simplification, vicinity vertices on the boundary of the surface patch are merged. In the algorithm, a planar separate rule planar-enneatree is adopted to set up a hierarchical structure of the Gauss sphere, which is used to support the hierarchical model of the scene (LOD). The experimental result shows that the algorithm can achieve desired simplification effects. Keywords multiple level of detail, mesh simplification, gauss sphere, coplanar merging 1 Introduction Accelerating the rendering process of a 3D scene while keeping its high fidelity is a popular research field of computer graphics currently. Clark adopted multi-resolution model to represent 3D scene with different levels of detail [1]. With the multi-resolution model, the rendering program can choose an appropriate level of detail to represent the 3D scene, so that less time is used while preserving appearance. Multi-resolution modeling can be used in many applications, including virtual reality [2], terrain simulation [3], visualization [4], real time graphics communication [5], and flight simulation. The followings are some of the existing algorithms for generating 3D scene's multi-resolution model. Re-tiling: Turk described a surface re-tiling method. A number of new vertices are distributed over the existing surface according to the surface curvature. A medium mesh is founded, consisting of new vertices and original ones. Original vertices are then iteratively removed and a re-tiling of the surface built on the new vertices is created [6]. Vertex Clustering: [7 9] group and simplify features that are geometrically close recursively to produce a series of simplified 3D approximations of the original model. Wavelet-based approaches: Lounsbery proposed a technique for creating multi-resolution representations for a strict class of meshes with subdivision connectivity based on wavelet analysis [10]. Eck removed the restriction of surface subdivision connectivity by model approximation. Thus, completely arbitrary meshes can be converted to multi-resolution form using wavelet-based approaches [11]. Geometric component decimation: Schroeder presented an algorithm that simplifies meshes via vertex decimation [12]. The algorithm makes multiple passes over an existing triangle mesh. Vertices are removed using local geometry and topology, which meet distance or angle criterion. Then holes left by the vertex removal are patched using a local triangulation process. [13 18] present approaches that work by iterative elimination of vertices, edges or triangles. Supported by the National Natural Science Foundation of China for Distinguished Young Scholars (No.69925204) and NSF grant (No.69823003).

No.5 An Algorithm for LOD by Merging Near Coplanar Faces 451 The approaches mentioned above mainly make passes by calculating repeatedly the geometric distance (between vertices, vertices and faces, vertices and edges) to determine whether a removal of corresponding geometric components can be accepted. The real time rendering system dynamically selects the error threshold to guarantee that the simplified model represents the original model faithfully in the screen space. We notice that, although some geometric structures of an object are of small size in object space and also small in screen space, they play an important role in characterizing the scene. To preserve those geometric features smaller threshold has to be used globally. As a result, the model with sufficient simplification cannot be achieved. Since the geometric features of a scene model correspond to the surface normal changes, mesh model simplification based on near coplanar faces merging can sufficiently simplify the model while keeping its appearance. [19, 4] present the algorithm based on coplanar merging. Like the algorithm presented in this paper, they simplify the model by first merging near coplanar faces to a patch and then triangulating the boundary of it. Moreover, Kalvin's algorithm [4] also uses the concept of superface in the process of simplification. Fig.1 shows a polyhedral mesh partitioned into superfaces, which are shaded in different grey levels. Fig.1. Superface. Despite the apparent similarity between these algorithms, they differ in many ways. Hinker uses an improved method of representative tree to create the near coplanar sets [19]. Both Kalvin's and our algorithm create the superface as the near coplanar set. In [4], the creation of a superface begins with the selection of an initial seed" face that grows through a process of accretion. Faces adjacent to the current superface patch, are merged into the evolving superface if they satisfy the required merging criteria (All vertices in the original mesh lie within a bounded distance to the simplified mesh.). Here, superface growing is based on a bottom-up, face-merging procedure. The creation of the near coplanar set of our algorithm is computationally more efficient. In the algorithm presented in this paper, the superface is created based on the subdivision of the Gauss Sphere (Subsection 2.1). With Gauss Sphere, the procedure of the superface's creation is simplified and accelerated greatly. Moreover, Kalvin decomposed polygons into star polygons, and triangulated them respectively using the star point as the triangulation point. As a result, the algorithm cannot deal with superfaces that contain islands, and narrow triangles will be generated. In Hinker's triangulating approach, it is assumed that degenerate polygons are not created during the face merging, while the degenerate polygons can occur indeed. To achieve better simplification effect and broader application, a Delaunay triangulation method is used in our algorithm. Furthermore, one important advantage of our algorithm compared with kalvin's [4] and Hinker's [19] is that with the hierarchically subdivided Gauss Sphere a series of coarse models are generated based on the basic coarse model (generated by simplifying the original model), but Kalvin's and Hinker's algorithms can only generate a single simplified model. 2 The Level of Detail Modeling Algorithm by Merging Near Coplanar Faces Based on Normal Vector Our algorithm produces multi-level of detail model by quasicoplanar merging and mesh simplification. The three main steps of the algorithm are searching for the boundary of the superface, merging vicinity vertices on the border and re-triangulation. The procedure of coplanar merging is conducted based on the angle difference between two adjacent faces. For each spheremesh (Subsection 2.1) of the Gauss Sphere, a corresponding bucket is defined. We put each face of the model in an appropriate bucket according to the direction of its normal. Thus, faces within the same bucket are near coplanar. Boundary vertices of adjacent faces in the buckets are grouped, and the boundary of the resultant superface can be generated. A Delaunay triangulation method is used in the algorithm, which results in better simplification effect (Subsection 2.4). Furthermore, in order to eliminate those minor details whose sizes are too small to be noticed

452 CAO Weiqun, BAO Hujun et al. Vol.16 by observers, we merge the vicinity vertices on the boundary of the superface. We merge faces in 8-connectivity neighbourhood to produce multiple levels of detail model, resulting in ideal simplification effects. The simplified model preserves the topological and geometrical features of the original model faithfully. 2.1 Scheme for Hierarchically Subdividing the Gauss Sphere Gauss sphere is a unit sphere that is generated by mapping the unit normals of all faces of one model to a unit sphere. Since the location of the mapped points on the Gauss sphere surface reflects the orientation of model's faces directly, it can be determined that two connected faces on the model are near coplanar if the distance between their corresponding points on the Gauss sphere is smaller than a user defined threshold. In order to describe the approach clearly, we give a definition of planar-enneatree: Planar-enneatree is a hierarchical data structure. As shown in Fig.2, the largest square is the root of the tree whose width is 3 n. The square is divided uniformly into nine smaller squares, whose width is 1/3 of the original one, i.e. 3 n 1. Then the nine smaller squares are subdivided recursively, and a planar-enneatree is generated. We subdivide the Gauss sphere following the scheme of planarenneatree subdivision. Fig.2. Planar-enneatree. First, we map a cube onto the sphere. Then, subdivide each face of the cube under the scheme of planar-enneatree subdivision (Fig.2), and map the subdividing result onto the sphere surface. Thus, the hierarchically subdivided sphere surface is resulted. We call the resultant partition of the sphere surface spheremesh. The algorithm uses triple (d 1 ;d 2 ;d 3 ) to encode the spheremesh. The value of d 1 ranges from 1 to 6, which represents the corresponding side of the cube where the spheremesh is located. d 2 ;d 3 represent the location of the spheremesh on the cube face (d 2 corresponds to the x direction, and d 3 corresponds to the y direction.), whose range of value varies with subdivision level Level, i.e., their ranges are set as 0 3 Level. MeshNum denotes the total number of the spheremeshes generated by dividing the cube face in one axial direction, i.e., MeshNum = 3 Level. In order to simplify the calculation, we define the mapping from the cube to the sphere as follows: we produce first the 12 curves on the sphere surface corresponding to 12 edges of the cube by intersecting the sphere surface with six diagonal planes of the cube as shown in Fig.3(a). These curves subdivide sphere surface into six equal faces, which correspond to the six faces of the cube. Moreover, we subdivide the six parts of the sphere surface into smaller faces further with a nearly equal solid angle as shown in Fig.3(b). The largest rectangle shown in Fig.2 is one Fig.3. Grids mapping from cube surfaces to Gauss sphere surface. (a) Six planes used to subdivide the sphere surface: ABGH, CDEF, AFGD, BCHE, BFHD, AEGC. (b) Mapping from the plane to the sphere surface by subdividing the circle uniformly (R 1 = R 2 = R 3 ). face of the cube that will be mapped onto the Gauss sphere surface. The six spheremeshes, which correspond to the six faces of the cube, form the coarsest level of the hierarchical subdivision of the sphere surface S 0. In Fig.2, the spheremesh shaded in grey mode 1 is a node of level S 1, and is generated by subdividing a node of S 0 ; the spheremesh shaded in grey mode 2 is a node of level S 2, and is generated by subdividing a node of level S 1 ; the spheremesh shaded in grey mode 3 is a node of level S 3, and is generated by subdividing a node of level S 2. This can be done recursively, and a forest structure of the whole spheremeshes is generated at the end, which uses the six nodes of S 0 as roots. Finer nodes are of S 1 ;S 2 and so on in sequence. According to the definition, the edge length

No.5 An Algorithm for LOD by Merging Near Coplanar Faces 453 of the spheremesh of S 0 is 90 (degree). With the subdivision and mapping defined above, we can compute the code of the corresponding spheremesh of a face, which reflects the normal's location on the Gauss sphere and is the basis of the faces' merging. The error introduced by near coplanar merging can be estimated, which is just the maximum angle difference between normals in a spheremesh of the Gauss sphere (degree): p 2 90=3 Level where 90=3 Level is the edge length of the node in S Level. And p 2 90=3 Level is the length of the diagonal of the spheremesh, which represents the maximum angle difference of normals in it. The lower is the level, the finer is the grid on the sphere surface, the less is the coplanar error. 2.2 Tracing the Border of the Superface If the directions of normals of an arbitrary pair of faces in a bucket differ within the user specified threshold, and they are connected to each other, these two faces can be regarded as a coplanar patch, which is called a superface. 2.2.1 Creating Near Coplanar Set In order to generate the finest level of simplified mesh model of the scene M MaxLevel 1 (that corresponds to the spheremesh S MaxLevel 1 (6 MeshNum MeshNum), we firstly sort the faces of the model into buckets according to their location on the finest spheremesh, i.e., we create the near coplanar sets with the smallest error threshold. Faces in a bucket may be connected or not, and those connected ones are combined to form a superface. A bucket may correspond to one or more superfaces then. Spherecode(n)f d 0 = WhichFace(n); switch(d 0 )f Case 0: //x; y; z Case 1:// x; y; z symmetrizing to +x Angle1 = atan(n:z=n:x); Angle1 = atan(n:z=n:x); Angle2 = atan(n:y=n:x); Angle2 = atan(n:y=n:x); Case 2://+y; x; z Case 3:// y; x; z symmetrizing to +y Angle1 = atan(n:x=n:y); Angle1 = atan(n:x=n:y); Angle2 = atan(n:z=n:y); Angle2 = atan(n:z=n:y); Case 4://+z;y; x Case 5:// z;y; x symmetrizing to +z; Angle1 = atan(n:y=n:z); Angle1 = atan(n:y=n:z); Angle2 = atan(n:x=n:z); Angle2 = atan(n:x=n:z); g d 1 = MeshNum=2 + (int(angle1=deltaangle +0:5 Λ sign(angle1)); d 2 = MeshNum=2 + (int(angle2=deltaangle +0:5 Λ sign(angle2)); g WhichFace(n)f if (fabs(n:y)» fabs(n:x)&& fabs(n:z)» fabs(n:x))f if (n:x > 0) return 0; //+x else if (n:x < 0) return 1; // xg else if (fabs (n:x)» fabs(n:y)&& fabs(n:z)» fabs (n:y))f if (n:y > 0) return 2; //+y else if (n:y < 0) return 3; // yg else if (fabs (n:x)» fabs(n:z)&& fabs (n:y)» fabs (n:z))f if (n:z > 0) return 4; //+z else if (n:z < 0) return 5; // zg g Fig.4. Determine the code of the spheremesh that the face belongs to.

454 CAO Weiqun, BAO Hujun et al. Vol.16 2.2.2 Tracing Borders of Superfaces in Each Near Coplanar Set While sorting faces, the algorithm generates the set of vertices that belongs to the same spheremesh. We separate vertices in each spheremesh into two classes: the interior points, that lie inside the superface, are stored in an interior point list; the bound points, which belong to more than one superface, are stored in a boundary point list. Then we search for closed rings by traversing vertices in the boundary point list, and define those vertices that form a ring as the ring's boundary points. The ring could be the outer boundary of a superface, or the inner boundary. There are various methods for distinguishing it. We adopt a simple one. We project the ring onto a coordinate plane with maximum projection area. It is the outer boundary if the boundary vertives rank anti-clockwise, and it is the inner boundary if otherwise. Then we match the outer boundary with its inner boundaries, if any. This can be done easily according to the adjacency relationship of vertices. 2.3 Further Simplification We further simplify the superface by straightening the common boundary between a pair of neighbour superfaces and merging vicinity vertices on the boundary ring. 2.3.1 Straightening the Border of a Superface Since two planes intersect at a line, the common boundary of a pair of neighbour superfaces can be approximated by a straight-line. We can simplify the superface further based on this idea. In Fig.5, a line segment is used to replace the common boundary of a pair of neighbour superfaces. It can be proved that variation of normal caused by Fig.5. Straighten the border of superface. (a) straightening superface border will never exceed the error A pair of neighbour superfaces. (b) Straighten threshold defined by the corresponding simplification level. the common border. (c) Neighbour superface If the average normals of a pair of neighbour superfaces are with nearly the same normal direction. toward nearly the same direction (Fig.5 (c)), it is possible that the straightened boundary deviates from the original boundary significantly at some points. But the resultant error in object space has little influence on the appearance of the object in this case. The experimental result shows that border straightening can simplify the mesh model greatly. 2.3.2 Vicinity Boundary Vertices Merging Before implementing further simplifications, we classify vertices of the model into three types, flat vertices, edge vertices, and corner vertices, according to the dispersion of the normals of surrounding faces of each vertex (Fig.6). Firstly, we divide the surrounding faces of a vertex into two groups according to their normals: find out two faces, whose normal directions have the greatest difference (A 1 ); then take the two faces as the bases of the two groups, and assign other surrounding faces to the two groups respectively according to the deviation of their normals from that of the two bases (A face is assigned to the base to which it has smaller deviation.). Then, normals of faces in each group Fig.6. Classify vertices according to the dispersion of the normals of each vertex's surrounding faces. (a) Flat vertex. form a normal vector cone, and A 2 is the cone angle. (b) Edge vertex. (c) Corner vertex. If A 1 is less than the threshold, the vertex is a flat vertex (Fig.6(a)). If A 2 is greater than the threshold, the vertex is a corner vertex (Fig.6(c)). If A 1 is greater than the threshold, while A 2 is less than the threshold, the vertex is an edge vertex (Fig.6(b)). Corner vertex plays the most important role in representing the model, and its importance is the highest. The edge vertex has lower importance, and the one of the lowest importance is the flat vertex.

No.5 An Algorithm for LOD by Merging Near Coplanar Faces 455 Merging is done between the superface boundary vertices, and the vertex with low importance is merged to the vertex with high importance if they meet the proximity distance constraint. The corner point can only act as the destination, i.e., if a corner vertex is involved in the merging operation, other vertex should be merged to the corner vertex. Two corner points will never be merged with each other. Because two vertices are merged only when they are vicinal, the geometric and topological characters are preserved. 2.4 Re-Triangulating the Superface There are various approaches for triangulating a patch. In the algorithm presented in this paper, we firstly project its 3D boundary to one coordinate plane with maximum projection area and then perform 2D space Delaunay triangulation (Fig.7) of the projected 2D boundary. The experimental result shows that the triangulation generated by the approach is satisfactory. After above processes, the finest level of the simplified mesh model M MaxLevel 1 (MaxLevel is the total number of levels of LOD model) is created. Fig.7. Re-triangulating the superface. (a) Projected superface. (b) Triangulation of the superface. 2.5 Generating Model with Multiple Level of Detail Given M i (the i-th level of the LOD model), M i 1 can be created by merging superfaces in corresponding spheremesh's 8-connectivity neighborhood on the Gauss sphere surface. The cube shown in Fig.8 corresponds to the spheremesh S i (the i-th level of Gauss sphere surface grid). Its higher level spheremesh S i 1 can be obtained by combining corresponding nodes of S i. Suppose the node of S i 1 formed by combining some nodes shaded by grey mode 4 and mode 5 is kept in Mesh(S i 1 )(i; j; k). Then its children are Fig.8. Merging of nodes in 8- connectivity neighborhood. The node shaded by mode 4 is the center child of its parent; nodes shaded by mode 5 are border children of its parent. process of accretion recursively until there are no more border superfaces that can be merged. (Fig.9) If superface merging is limited to superfaces attached to the brother nodes, the results might be non-optimal coplanar sets because the derived coplanar set boundaries are fixed. For example, two faces with arbitrarily close normals may be attached to different nodes even in the coarsest simplified model. This would prevent merging two faces even though they are nearly coplanar. In order to solve this problem, we adopt superfaces in border child spheremesh as initial seeds besides the center child. Mesh (S i )(i; 3 Λ j; 3 Λ k); Mesh (S i )(i; 3 Λ j; 3 Λ k +1); Mesh (S i )(i; 3 Λ j; 3 Λ k +2); Mesh (S i )(i; 3 Λ j +1; 3 Λ k); Mesh (S i )(i; 3 Λ j +1; 3 Λ k +1); Mesh (S i )(i; 3 Λ j +1; 3 Λ k +2); Mesh (S i )(i; 3 Λ j +2; 3 Λ k); Mesh (S i )(i; 3 Λ j +2; 3 Λ k +1); Mesh (S i )(i; 3 Λ j +2; 3 Λ k +2); which are the nodes of S i. The child Mesh(S i )(i; 3 Λ j +1; 3 Λ k +1) shaded by grey mode 4 is the center child of its parent, and other children of the parent are the border children. They are brothers to each other. The superface merging is performed in four steps: (1) Take the superface in the center child as the initial seed superface, and its adjacent superfaces in its brother nodes are merged into the evolving superface. The seed superface grows through the Fig.9. Superface merging. (a) Seed superface. (b) Seed superface and the candidate neighbour superfaces for merging. (c) Merged superface.

456 CAO Weiqun, BAO Hujun et al. Vol.16 (2) Take the superface in border child spheremesh as the initial seed, and its adjacent superfaces are merged into the evolving superface if they are attached to nodes in the border child spheremesh's 8-connectivity neighbourhood. In Fig.8, the spheremeshes shaded in grey mode 6 are border children, and the spheremeshes shaded in grey mode 7 are spheremeshes in their 8-connectivity neighbourhood (except the center child). Adjacent superfaces in spheremesh shaded in grey mode 7 can be merged to the initial seed in border children spheremesh. The seed superface grows through the process of accretion recursively until there are no more adjacent superfaces that can be merged. In the above two steps, the superfaces involved in the accretion of the seed are children of the resultant superface. (3) Insert all resultant superfaces attached to children (nodes of M i ) to their parents (nodes of M i 1 ) respectively. Straighten common boundaries of each pair of neighbour superfaces, and retriangulate superfaces. M i 1 is the result. (4) Generate other levels of simplified model recursively by implementing the above three steps, until the coarsest level of simplified model M 0 is generated. 3 Experimental Results The algorithm has been implemented with Pentium 350 in C language, and has been tested on various models. Fig.10 and Fig.11 show the simplification results of the models of dinosaur and cow, in which MaxLevel is five and (a), (b), (c), (d), (e), (f) are sequentially the original model, M 4, M 3, M 2, M 1, M 0. It can be seen in these figures that the geometric characters are preserved even in the coarsest level of the LOD model. Fig.10. Multi-level of detail model of dinosaur. (a) The original model: 47,858 triangles. (b) M 4 : 47,776 triangles. (c) M 3 : 46,538 triangles. (d) M 2 : 32,100 triangles. (e) M 1 : 7,690 triangles. (f) M 0 : 3,468 triangles. Fig.11. Multi-level of detail model of cow. (a) The original model: 6,208 triangles. (b) M 4 : 6,038 triangles. (c) M 3 : 6,002 triangles. (d) M 2 : 5,706 triangles. (e) M 1 : 3,750 triangles. (f) M 0 : 2,500 triangles. 4 Conclusions and Future Work We have presented a level of detail modeling algorithm by merging near coplanar faces. The algorithm simplifies mesh model by merging faces whose normals are pointed to nearly the same direction and generates multiple levels of detail model on the basis of subdividing Gauss sphere surface. The algorithm is implemented in preprocessing. When the viewpoint moves, the simplified model with different levels of detail at different parts can be produced dynamically according to the current viewing direction. Thus an appearance-preserving model which contains different levels of detail is created. More work is needed on how to select the appropriate error threshold and level of detail according to the viewing parameter.

No.5 An Algorithm for LOD by Merging Near Coplanar Faces 457 References [1] Clark James H. Hierarchical geometric models for visible surface algorithm. Communications of the ACM, 1976, 19(10): 547 554. [2] Pan Zhigeng, Ma Xiaohu, Shi Jiaoying. The automatic generation algorithm for models at multiple levels of detail in virtual environment. Journal of Software, Sept., 1996, 7(9): 526 531. (in Chinese) [3] Liu Xuehui. Research on multiple levels of detail generating for 3D complex objects used in virtual reality [dissertation]. Institute of Software, The Chinese Academy of Sciences, Jan., 1998. [4] Kalvin A D, Taylor R H. Superfaces: Polygonal mesh simplification with bounded error. IEEE C.G. & A., 1996, 16(3): 64 77. [5] Finkelstein A, Jacobs C E, Salsin D H. Multiresolution video. In SIGGRAPH'96, 1996, pp.281 290. [6] Greg Turk. Re-tiling polygonal surfaces. Computer Graphics, July, 1992, 26(2): 55 64. [7] Rossignac J, Borrel P. Multi-Resolution 3D Approximation for Rendering Complex Scenes. In: Geometric Modeling in Computer Graphics, Falcidieno B, Kunii T (eds.), New York: Springer Verlag, 1993, pp.455 465. [8] Michael Garland, Paul S Heckbert. Surface Simplification Using Quadric Error Metrics. SIGGRAPH'97, 1997, pp.209 216. [9] Luebke D, Carl Erikson. View-dependent simplification of arbitrary polygonal environments. In Proc. ACM Computer Graphics, Annual Conference Series (SIGGRAPH'97), 1997, pp.217 224. [10] J Michael Lounsbery. Multiresolution analysis for surfaces of arbitrary topological type [dissertation]. Department of Computer Science and Engineering, University of Washington, September, 1994. [11] Matthias Eck, Tony DeRose, Tom Duchamp et al. Multiresolution Analysis of Arbitrary Meshes. In SIGGRAPH'95, 1995, pp.173 182. [12] William J Schroeder, Jonathan A Zarge, William E Lorensen. Decimation of triangle meshes. Computer Graphics, July, 1992, 26(2): 65 70. [13] Hugues Hoppe, Tony DeRose, Tom Duchamp et al. Mesh optimization. In SIGGRAPH'93, Aug., 1993, pp.19 26. [14] Ronfard R, Rossignac J. Full-range approximation of triangulated polyhedra. Computer Graphics Forum (Proc. Eurographics'96), 1996, 15(3): pp.67 76. [15] Zhou Xiaoyun, Liu Shenquan. Polyhedral model simplification method based on feature angle criterion. Chinese J. Computers, Sept., 1996, 19(Suppl.): 217 223. (in Chinese) [16] Hamann B. A data reduction scheme for triangulated surfaces. Computer Aided Geometric Design, 1994, 11(2): 197 214. [17] Li Jie, Tang Zesheng. Real-time continuous multiresolution rendering of 3D complex models. Chinese J. Computers, June, 1998, 21(6): 481 491. (in Chinese) [18] Ma Xiaohu, Pan Zhigeng, Shi Jiaoying. Polyhedral model simplification methods based on triangle removal criterion. Chinese J. Computers, June, 1998, 21(6): 492 498. (in Chinese) [19] Hinker P, Hansen C. Geometric optimization. In Proc. IEEE Visualization'93, October, 1993, pp.189 195. CAO Weiqun was born in 1972. She received her Ph.D. degree from Department of Mathematics, Zhejiang University in 1999. She is currently a post-doctoral research fellow of GMD, Germany. Her research interests include virtual reality, computer aided design etc. BAO Hujun was born in 1966. He received his Ph.D. degree from Department of Mathematics, Zhejiang University in 1993. He is currently a professor of State Key Laboratory of CAD & CG. His research interests include virtual reality, geometric compression, computer animation etc. For the biography of PENG Qunsheng, please refer to p.449 of this issue.