TVC manuscript No. (will be inserted by the editor) A Weighted Mean Approach to Smooth Parametric Representation of Polygon Meshes A. Ardeshir Goshtasby Computer Science and Engineering Department, Wright State University, Dayton, OH 45435. e-mail: agoshtas@cs.wright.edu Abstract A method for representing genus-zero polygon meshes by smooth parametric surfaces is described. A surface is defined by a weighted sum of linear functions, each describing a polygon face in parametric form. Rational Gaussian blending functions that adapt to the size and shape of mesh faces are used as the weights. The proposed representation has a very high degree of continuity everywhere and provides a smoothness parameter that can be varied to produce surfaces at varying resolutions. It is shown that the representation facilitates geometry processing of meshes. The use of locally supported weight functions as an alternative to rational Gaussian weights is also discussed. Key words Irregular mesh – weighted mean – multiresolution representation – free-form parametric surface – rational Gaussian surface 1 Introduction Suppose a polygon mesh with Nv vertices, {Vi = (xi , yi , zi ) : i = 1, . . . , Nv } , (1) where (xi , yi , zi ) are the coordinates of vertex Vi is given, and the mesh has Nf faces, {Fi = (i1 , i2 , . . . , ik ) : i = 1, . . . , Nf } , (2) where (i1 , i2 , . . . , ik ) denotes the indices of vertices forming face Fi . For a triangular face, k = 3; for a quadrilateral face, k = 4; and in general for a Send offprint requests to: A. Ardeshir Goshtasby 2 A. A. Goshtasby polygon face with n vertices, k = n. We assume that the mesh is genus zero and is parametrized. Therefore, parameter coordinates at mesh vertices, {Ui = (ui , vi ) : i = 1, . . . , Nv } , (3) are known. We would like to find a smooth parametric surface P(u, v) that closely approximates the mesh. Mesh parametrization has been the subject of many recent studies. We are interested in those methods that can map a mesh to a plane or a sphere. Parametrization methods typically find this mapping by starting from an initial parametrization and iteratively revising the parametrization in such a way that deformation in mapping from the mesh to the plane or sphere is minimized. A method described by Kobbelt et al. [34] first grows the mesh toward its convex hull. It then projects the convex hull to its bounding sphere. Next, it assigns parameter coordinates of points in the sphere to corresponding points in the mesh. Finally, an energy minimizing model is used to minimize local distortions in the mapping. This resembles a shrinkwrapping process in which a sphere is shrunk to a mesh. In a similar analogy, Wood et al. [58] first find a coarse parametrization by creating a set of isodistance ribbons maintaining the topology of the object and connecting the ribbons. Then they gradually refine the coarse mesh using an energy model to minimize distortion in iso-surface fit while increasing sampling accuracy through reparametrization. A parametrization method developed by Floater [21] maps the mesh vertices to a planar domain by solving a system of linear equations obtained by requiring the parameter coordinates at a vertex be a convex combination of parameter coordinates at vertices in its neighborhood. This is known as shape-preserving parametrization. Floater later [22] developed a much faster algorithm, known as mean value parametrization, that achieves the same quality parametrization but in a much shorter time. Lévy et al. [38] describe a quasi-conformal parametrization, which minimizes angle deformation. The method can efficiently parametrize large meshes with complex boundaries. In a method developed by Sheffer and de Sturler [50], the angle deformation from the mesh to the parameter space is minimized by solving a system of nonlinear equations. These are a sampling of methods that may be used to parametrize a polygon mesh before the approximation method outlined in this paper is used. For the most recent results as well as excellent reviews of parametrization methods, see the papers by Khodakovsky et al. [31] and Praun and Hoppe [48]. Given a genus-zero mesh with vertices (1), faces (2), and parameter coordinates (3), we would like to find a parametric surface P(u, v) that smoothly approximates the mesh. Subdivision and piecewise surfaces can be used to achieve this. However, when the number of mesh elements becomes very large, these methods become very resource demanding. Alternatively, implicit surfaces may be used to obtain a smooth approximation to the mesh. Although implicit surfaces can, in general, be generated faster than subdivision and piecewise methods, they are not parametric and may produce holes Smooth Representation of Polygon Meshes 3 where the density of points is rather low. The representation introduced in this paper can fit a smooth parametric surface to an irregular polygon mesh. The surface can adjust itself to meshes with polygon faces of varying shapes and sizes. Moreover, a smoothness parameter is provided that can be varied to create surfaces at different resolutions. In the remainder of this paper, first, existing methods for smooth representation of polygon meshes are reviewed. Then, details of the proposed method are given and properties of obtained surfaces are investigated. Finally, example surfaces obtained by the proposed formulation are presented and concluding remarks are made. 2 Related Work Methods for the smooth representation of polygon meshes can be grouped into local and global. Local methods use information about mesh vertices in a small neighborhood to find a surface point, while global methods use information about an entire mesh to compute a surface point. Local methods can be grouped into piecewise and subdivision methods, while global methods can be grouped into implicit and weighted mean methods. The approximation of polygon meshes by piecewise triangular patches has been achieved as far back as the 1960s [11]. A large number of methods for the piecewise approximation of meshes by triangular patches has been developed throughout th years [8,9,13,14,20,51,53]. The methods differ in the amount of local information they use and the degree of continuity they provide. Although non-triangular polygons can be subdivided into triangules and triangular patches can be fitted to them, methods have been developed that directly work on non-triangular polygon [25,44,43,46,53]. Piecewise methods are very effective in the precision design of geometric models, especially when the number of mesh elements is not very high. Determination of a surface point requires the determination of the patch the point belongs to and the determination of the point’s location within the patch. When the polygons are very small compared to the size of the generated image, many patches map to the same pixel, making computation of individual patches quite wasteful. Fast subdivision techniques have been developed to speed up the rendering of some of the piecewise surfaces. Subdivision methods can create smooth surfaces over arbitrary topology meshes [16]. They use a set of corner-cutting rules to produce a limit surface by recursively cutting off mesh corners [6,17,18,39,47,55]. Subdivision methods typically use rules that either split faces or vertices of a mesh although a method has been developed by Zorin and Schröder [61] that subdivides the faces and the vertices of a mesh alternatively. Subdivision surfaces that have B-spline, piecewise Bézier, and non-uniform B-spline (NURBS) as special cases have been developed [54]. A variational subdivision method to iteratively reduce local curvature and produce fairer surfaces has also been proposed [35]. 4 A. A. Goshtasby The approximating subdivision surfaces gradually shrink as the number of iterations increases, producing a surface that is smaller than the given mesh at the limit. The interpolating subdivision methods, on the other hand, produce a surface that bulges out of the given mesh and is larger than the given mesh. To produce a surface that is close to a mesh, Maillot and Stam [39] adjust the vertices of a refined mesh after each subdivision step. In subdivision methods, the number of vertices grows exponentially with steps in subdivision. Therefore, to achieve a desired accuracy in approximation, a very large number of vertices of the limit surface must be saved, which may not be possible beyond a certain depth in recursion. Both the piecewise and subdivision methods are local in the sense that a surface point is determined from information about a small number of mesh vertices. Although local methods have advantages in shape editing, they make it very difficult to globally control the level of detail/smoothness of a surface. Some limited control can be achieved by using higher degree basis functions. The creation of a continuum of resolutions or degrees of detail is also difficult to achieve because the surfaces are of discrete degrees, and jumps in the level of detail are observed when going from one degree to another (say, from degree 2 to degree 3). A point on a piecewise surface can be accurately determined if the parameter coordinates of the point are known. Although, theoretically, the same can be achieved by a subdivision surface, in practice, a large number of subdivisions may be needed to reach the same accuracy. Implicit surfaces can be used to smoothly approximate polygon meshes also. An implicit surface approximating a set of points is obtained by centering a radial basis function, such as a Gaussian [3], a logarithmic [56], or a multiquadric [4] at each point and finding the local maxima/minima of the sum. If monotonically increasing basis functions are used, local minima of the sum are determined, and if monotonically decreasing basis functions are used, local maxima of the sum are searched for to determine the approximating surface. An alternative approach is to find the derivative of the sum and locate the zero-crossings or use sign functions that have a positive value on one side and a negative value on the other [15,30] and locate the zerocrossings of the sum. It is important to note that since the zero-crossings of the first derivative of a function correspond to locally minimum as well as locally maximum functional values, local minima when monotonically decreasing basis functions are used and local maxima when monotonically increasing basis functions are used correspond to false surface points. Clark [10] has shown that if Gaussian basis functions are used, false zero-crossings have positive second derivatives, which can be identified and eliminated. Implicit surfaces are not parametric so surface points have to be searched for one at a time, which can be computationally very expensive. Attempts to speed up the computation of implicit surfaces have been made. Rather than using globally defined radial basis functions, compactly supported radial basis functions have been used [41]. This enables the computation of a surface point from local points. An algorithm to efficiently Smooth Representation of Polygon Meshes 5 find implicit surface points via a fast sweeping and tagging scheme has also been described by Zhao et al. [60]. Implicit surfaces have some weaknesses. First, holes may appear in the surface if the density of points varies across the approximation domain. To avoid creation of holes, in addition to the mesh vertices, the faces describing the mesh may be quantized and points within the faces may be used in the computations. Second, because radial basis functions are symmetric, if given data are non-symmetric, the recovered surface may not accurately represent the underlying shape. For instance, if the points provided are from a sphere and the density of points varies on the sphere, the obtained surface will not resemble a sphere. To overcome this, Ohtake et al. [45] (see also [23] and [40]) normalize the basis functions to obtain a sum that evaluates to 1 everywhere in the approximation domain. This will adjust the basis functions to the local density and organization of the points. The weight functions used in this paper also adjust their shapes and widths to the density and organization of points. Third, if data are noisy, small branches may appear in the surface since it can assume any topology. Fourth, the accurate determination of a surface point requires considerable computation since each point requires a search for the local maximum, minimum, or zerocrossing in a volumetric domain. Implicit surfaces, however, have the power to represent very complex geometries. In this paper, a formulation is introduced that can create a surface at a continuum of resolutions. The surface is defined globally so one does not have to be concerned with individual patches forming the surface. The method is theoretically global, but because the weight functions approach zero exponentially, for a required accuracy in computation, only mesh elements in a small neighborhood are sufficient to compute a surface point. The proposed surface is not interpolating, but it can be made to pass very close to the mesh by appropriately reducing the smoothness parameter of the surface. The proposed method, however, is limited to genus-zero topology meshes. 3 Proposed Representation The surface approximating a mesh is defined by a weighted sum of the faces of the mesh: Nf Pi (u, v)Wi (u, v), (4) P(u, v) = i=1 where Nf is the number of polygon faces, Pi (u, v) is the parametric equation of face Fi and Wi (u, v) is a weight function centered at (uci , vic ), the parametric center of face Fi . Wi (u, v) shows the contribution of face Fi on surface point at (u, v). The weight functions are chosen such that their sum is equal to 1 everywhere in the parameter space. (uci , vic ) is obtained by averaging the parameter coordinates of the vertices of the face. 6 A. A. Goshtasby Rational Gaussian blending functions [24] will be used as the weights. These functions have a sum of 1 everywhere in the parameter space, satisfying the requirement in equation (4). Face Fi in parametric form is written by Pi (u, v) = ai u + bi v + ci , (5) and coefficients ai , bi , and ci are determined by making the plane pass through three of the vertices of the polygon. If face Fi contains more than three vertices and the vertices are known to be noisy, coefficients ai , bi , and ci are determined by fitting plane (5) to all vertices of the face by the least-squares method. Rational Gaussian blending functions are defined by [24] Gi (u, v) Wi (u, v) = Nf , j=1 Gj (u, v) (6) where Gi (u, v) is a Gaussian of height 1 centered at (uci , vic ) in the parameter space: (u − uci )2 + (v − vic )2 Gi (u, v) = exp − (7) 2σi2 σi is the standard deviation of the Gaussian used in the weight function associated with face Fi . σi is set proportional to di , the radius of the smallest circle enclosing face Fi in the parameter space if Fi is triangular, or the average distance of the face vertices to the center of the face in the parameter space if Fi is not triangular. Therefore, σi = sdi , (8) where s is the proportionality term. This automatically adjusts the width of a weight function to the size of the corresponding face. Since di shows a distance in the parameter space and s is a scaling factor, σi has the same unit as di . Therefore, if the radius of the smallest circle enclosing triangle Fi is di , the standard deviation of the Gaussian centered at (uci , vic ) in the parameter space is σi . By making the heights of all Gaussians equal to 1 independent of their standard deviations, a smaller polygon is made to have a smaller influence on the approximating surface than a larger polygon. The smaller the proportionality term s, the smaller the widths of the weight functions, and consequently, the more local the influence of local faces on a surface point, making the surface pass closer to the mesh. Also note that unlike Gaussians that are symmetric, the shapes of rational Gaussians adapt to the shapes of the polygons they belong to (see Figure 1 for examples). If a minimum distortion parametrization is used where the distances between vertices in the parameter space are as much as possible proportional to the distances in 3-D [48], the weight functions automatically adjust their widths to the sizes of the polygons. A non-optimal parametrization will not cause the process to collapse. As long as the adjacency relation between Smooth Representation of Polygon Meshes (a) (b) 7 (c) (d) Fig. 1 (a), (b) Two triangle meshes in the parameter space. (c), (d) Weight functions corresponding to shaded triangles in (a) and (b). Note that the weight functions adapt to the shapes and sizes of the triangles. points in the parameter space and in 3-D are the same, the obtained surface will approximate the mesh, and as the proportionality term is reduced the surface will get closer to the mesh. Non-optimal parameters, however, may cause undesirable inflations/shrinkages in areas where deformation in parametrization is high. Gaussians are infinitely differentiable, therefore, the surface defined by (4) is infinitely differentiable. Since the proposed surface has a very high degree of continuity, it not only provides tangent continuity, it provides curvature continuity and continuity of higher degrees everywhere. By letting the parameter coordinates within a polygon be the average of parameter coordinates at the vertices of the polygon, a continuous parametrization is obtained within the parameter space. As long as mapping between the parameter space and the polygon mesh is one-to-one and continuous, all derivatives of the surface will be continuous. A surface that is obtained from Nf polygon faces requires the solution of Nf systems of nine equations, each to find coefficients ai , bi , ci for i = 1, . . . , Nf . Note that in the proposed method, the systems of equations to be solved are small (nine equations per face, or three equations for each of the X, Y , and Z components of the parametric plane representing a face). Therefore, a stable and efficient implementation can be achieved. Since the surface is defined by a weighted sum of polygon faces, any remeshing process that produces different polygons will affect the approximated surface even when mesh vertices before and after a refinement are the same. The proportionality term s in equation (8), which will be called the smoothness parameter, is a global parameter that may be varied to control the smoothness/detailedness of the entire surface. By letting the widths of weight functions be proportional to the sizes of the polygons, a larger polygon is made to have a greater influence on the surface than a smaller polygon. Not only the widths of weight functions adapt to the sizes of the polygons, the shapes of the weight functions adapt to the shapes of the polygons. This automatically adapts a surface to the irregularity of a mesh and creates more detail where the polygons are small, and it produces less detail where the polygons are large. 8 A. A. Goshtasby Formula (4) has been used in different contexts in the past. By letting Pi (u, v) be polynomials and Wi (u, v) be B-spline or Bézier basis functions, Catmull and Rom [7] were able to produce surfaces that interpolated uniform grids of points. By letting Pi (u, v) be constants, that is Pi (u, v) = Pi , and Wi (u, v) be radial basis functions, interpolation surfaces were obtained [49] by solving a system of equations. By letting Pi (u, v) = Vi and Wi (u, v) be inversely proportional to the distance of (ui , vi ) to (u, v), and by normalizing the weights such that their sum everywhere in the parameter space is 1, an approximating surface known as a weighted mean [52] was obtained. By letting Pi (u, v) be a polynomial that approximates points at and in the neighborhood of Vi , and by using weight functions with local support, a local weighted mean surface [23,40] was obtained by solving small systems of equations. The proposed formulation describes a surface from a weighted mean of planes. The difference between this and the traditional methods that use a weighted mean of points is that instead of using a weighted mean of constants that represent the mesh vertices, a weighted mean of linear functions that represent the mesh faces is used. The difference between the two is significant. Since the vertices represent horizontal planes in the parameter space and each component of a surface is obtained from a weighted mean of the horizontal planes, creation of desired slopes in each component of a surface and consequently creation of desired local shapes in a surface becomes very difficult. In the proposed method, since the planes can have any slope, each component of a surface can have any slope anywhere and as a result desired local shapes can be more easily created. Instead of Gaussians, other monotonically decreasing radial basis functions, such as inverse distances, may be used to define the weight functions. However, Gaussians are the only radially symmetric functions that produce a smoother surface as their widths are increased [1,59]. Moreover, Gaussians approach zero exponentially and for a given accuracy in computation the effect of faces beyond a certain parametric distance to the surface point under consideration will be negligible and can be ignored in the computation. If the triangles forming a mesh are about the same size and shape, compactly supported radial basis functions [57] may be used to define the weight functions. If compactly supported weight functions are used, meshes that contain varying size and shape faces may produce holes in larger faces. Globally defined rational Gaussian weights can fit a surface to any parametrized genus-zero polygon mesh. The method outlined in this paper produces a parametric surface. By changing parameters u and v from 0 to 1 with equal increments, a regular grid of points is generated for rendering. By changing the increments in u and v, different sized grids can be generated. In the following section, properties of the proposed representation are explored and examples of surfaces obtained by this representation are given. Smooth Representation of Polygon Meshes 9 (a) (b) (c) (d) (e) (f) (g) (h) Fig. 2 (a) A triangle mesh representing a terrain scene. (b)–(d) Surfaces obtained with s = 2, 4, and 8, respectively. (e) A texture-mapped image of the area. (f)–(h) Curvature plots of surfaces (b)–(d). Darker points show larger curvatures. This data set is courtesy of the U.S. Geological Survey. 4 Properties 4.1 The Smoothness Parameter The smoothness parameter s in equation (8) determines the widths of the Gaussians and thus the widths of the weight functions. Consequently, it controls the smoothness/detailedness of a created surface. By decreasing it, more details are reproduced, and by increasing it, more details are smoothed out. This can be attributed to the nature of Gaussians, which act like lowpass filters, attenuating high-spatial frequencies (the local details) while maintaining the low frequencies that correspond to global shape features. An example showing the effect of parameter s on created surfaces is shown in Fig. 2. Fig. 2a is a triangular mesh representing a terrain. This data set is courtesy of the U.S. Geological Survey. The texture-mapped image of the area is shown in Fig. 2e. Figs. 2b–d show approximations of the area by the proposed formulation using s = 2, 4, and 8, respectively. Curvature plots [42] of these surfaces are shown in Figs. 2f–h. Darker points show larger curvatures. As s is increased, the obtained surface produces smaller curvatures, creating a smoother surface. As s is decreased, larger curvatures are produced, creating a more detailed surface. As opposed to parametric surfaces, such as B-splines, that are defined by a convex combination of the mesh vertices, in the proposed formulation the approximating surface is defined by a convex combination of the mesh faces. Surfaces defined by mesh vertices try to stay within the convex hull of the mesh vertices. To achieve this they may pass quite far away from 10 A. A. Goshtasby (a) (b) (c) (d) Fig. 3 (a) A triangle mesh. (b)–(d) Surfaces approximating the mesh at different smoothness levels. The mesh is overlaid with the surfaces to evaluate the quality of the approximation. the mesh vertices. In the proposed formulation, since the approximating surface does not have to stay within the convex hull of the mesh vertices, it can pass close to them. This property will keep a surface close to the mesh even when the smoothness parameter is high. An example demonstrating this property is given in Fig. 3. Surfaces approximating the mesh at three different smoothness levels are shown in Figs. 3b–d. As can be observed, surfaces at different smoothnesses pass near the boundaries of the mesh and approximate the mesh closely. 4.2 Geometry Processing Analogous to image processing operations that process 2-D images, geometry processing operations process 3-D geometries. Although operations such as smoothing and edge sharpening have the same effect in 2-D and in 3-D, often completely different approaches are taken to solve them. The need for processing geometries was recognized early by Besl [2] and more recently by Zorin et al. [62], Guskov et al. [28], and Gu et al. [26]. In this paper, it will be shown that if a mesh is approximated by a parametric surface, an appropriate resampling of the surface can be used to represent the surface by a regular grid, and the regular grid can be represented by a vector-valued 2-D image, and consequently image processing operations can be used to process 3-D geometries. Geometry processing by image processing techniques requires mapping a mesh to a regular grid. In the proposed approach, this is achieved by approximating a parametric surface to the mesh and resampling the surface at a uniform parameter spacing. This will create a regular grid, which then can be represented by a 2-D vector-valued image, each pixel representing the X, Y , and Z coordinates of a grid point. If the given mesh is spherically parametrized, Fourier transform may be used to carry out some of the computations. Fourier transform assumes that an image represents a 2-D signal that cyclically repeats itself (the top of the image is a continuation of the bottom of the image, and the left boundary of the image is a continuation of the right boundary of the image). If a shape is mapped to a plane, use Smooth Representation of Polygon Meshes 11 of the Fourier transform will result in large errors near image borders. If computations are performed directly without the Fourier transform, image values will be more accurate, but at image borders computations may not be possible for certain operations such as smoothing. Since the proposed representation is parametric, the approximating surface can be mapped to a regular grid by resampling the surface at equal increments in u and v. An example is given in Fig. 4. Using the triangulated Stanford University bunny data set with parametrization computed according to the method outlined in [26]. Fig. 4b shows approximation of the bunny by the proposed formulation with s = 2. Resampling this surface into a regular grid with increments in u and v equal to 1/255, we obtain the geometry image shown in Fig. 4g. The resampled X, Y , and Z grid coordinates are shown in red, green, and blue, respectively. Each pixel in image 4g corresponds to a grid point in Fig. 4f. Given image 4g, we can construct the geometry in Fig. 4f immediately. The difference between 4b and 4f is in the way the surface normals are computed. In 4b, surface normals are analytically computed from the equation of the surface, and in 4f, the surface normals are computed directly from the mesh vertices. Geometry processing in this manner results in some inaccuracy in computation of surface normals. Later in Section 4.5, we will see how certain geometry operations can be performed directly on the parametric surface to maintain a high accuracy in computation of surface normals. Given a geometry image like Fig. 4g, we can perform image processing operations on the image and from the one-to-one correspondence between the image and the geometry, create a regular quadrilateral mesh for rendering of the geometry. For instance, smoothing image 4g with a mean filter [5], we obtain the image shown in Fig. 4h, which corresponds to the geometry shown in Fig. 4c. An inverse filtering operation [5] on image 4g sharpens the edges, producing image 4i, which represents the geometry shown in Fig. 4d. Partial smoothing can be achieved by specifying the region of interest and performing smoothing within the region. For instance, smoothing the region in the geometry image corresponding to the face and chest of the bunny, we obtain image 4j, which corresponds to the geometry shown in Fig. 4e. Once a geometry is represented by a geometry image, existing image processing techniques can be used to process it. The processed image can then be transformed back to a regular gid for rendering. In addition to the image smoothing and the edge sharpening demonstrated above, operations such as morphing, interpolation, compositing, and cut-and-paste can be easily performed using image processing operations. An example of morphing by image blending is shown in Fig. 5. Suppose surfaces in Figs. 5a and 5e represent start and finish geometries in a morphing animation. To produce the in-between surfaces, geometry images corresponding to these surfaces are produced as shown in Figs. 5f and 5j. Then, a proper blending of the images is computed to produce an in-between image, and from the in-between image create the corresponding in-between surface. Three images obtained by blending images 5f and 5j with ratios 3:1, 12 A. A. Goshtasby (a) (b) (c) (d) (e) (f) (g) (h) (i) (j) Fig. 4 (a) The triangulated Stanford bunny. (b) Approximation of the bunny by the proposed parametric surface with s = 2. (c) Smoothed bunny obtained from (h). (d) Sharpened bunny obtained from (i). (e) Partially smoothed bunny obtained from (j). (f) Same as (b) except that surface normals are computed directly from the mesh. (g) Geometry image of (f). (h) Image obtained after smoothing (g) by the mean filter. (i) Sharpening edges in (g) by inverse filtering. (j) Partial smoothing of image (g) corresponding to the face and chest of the bunny. The parametrized bunny is courtesy of Hughes Hoppe. (a) (b) (c) (d) (e) (f) (g) (h) (i) (j) Fig. 5 (a) A surface representing an area over the Grand Canyon. (b)–(d) Surfaces corresponding to images (g)–(i). (e) Another surface representing a different area over the Grand Canyon. (f) Geometry image of (a). (g)–(i) Images obtained by blending images (f) and (j) with ratios 3:1, 1:1, 1:3, respectively. (j) Geometry image of (e). The triangulated terrain data sets from which surfaces (a) and (e) were obtained are courtesy of the U.S. Geological Survey. 1:1, and 1:3 are shown in Figs. 5g–i, respectively. Surfaces corresponding to these images are shown in Figs. 5b–d, respectively. These surfaces represent the in-between surfaces obtained in morphing surface 5a to surface 5e. Smooth Representation of Polygon Meshes (a) (b) 13 (c) (d) Fig. 6 (a) A mesh containing four triangles. (b)–(d) Surfaces approximating the mesh with increasing smoothnesses. Along with the surfaces, the original mesh is shown for comparison. 4.3 Representing Meshes with Nonuniform Elements A surface approximation example using a mesh with four triangle faces is shown in Fig. 6. Fig. 6a is the original mesh and Figs. 6b–d are surfaces obtained at increasing values of the smoothness parameter. In these figures, along with the surfaces, the original mesh is shown for comparison. At very low values of the smoothness parameter, the surface approaches the mesh, reproducing sharp edges and corners. As the smoothness parameter is increased, the edges and corners become smoother. A variety of surfaces can be generated from a single mesh. If it is known that the mesh has noisy vertices, a larger smoothness parameter should be used to smooth the noise, and if data are known to be accurate, a smaller smoothness parameter should be used to retain sharp edges and corners in the surface. The mesh in Figure 6 is made up of uniform triangular elements. A mesh containing triangular as well as quadrilateral elements is shown in Fig. 7. The original mesh is shown in Fig. 7a and surfaces obtained at increasing smoothnesses are shown in Figs. 7b–d. A mesh may contain triangles, quadrilaterals, and in general n-sided faces and the obtained surface will approximate the mesh. (a) (b) (c) (d) Fig. 7 (a) A mesh containing triangular and quadrilateral faces. (b)–(d) Surfaces approximating the mesh with increasing smoothnesses. Along with the surfaces, the original mesh is shown for comparison. 14 A. A. Goshtasby (a) (b) (c) (d) Fig. 8 (a) An irregular mesh. (b)–(d) Surfaces obtained at increasing smoothness levels approximating the mesh. The original mesh is overlaid with obtained surfaces for comparison. This data set is courtesy of Michael Floater. The proposed parametric surface formulation does not require a regular control mesh to create a surface; rather, an irregular mesh is sufficient. Fig. 8 shows an example where the organization and size of the mesh elements vary greatly across the mesh. The proposed formulation uses weight functions whose shapes and sizes adjust to the organization and size of mesh elements to ensure that the sum of the weights is equal to 1 everywhere in the approximation domain. Figs. 8b–d show surfaces obtained at increasing smoothnesses approximating mesh 8a. At a very small smoothness parameter, the surface passes very close to the mesh, but as the smoothness parameter is increased, the surface smoothes local details and captures more of the global shape features. 4.4 Multiresolution Representation Often there is a need to render a shape in multiresolution. Considerable work has been done in this area. Eck and Hoppe [19] used a remeshing process to transform an arbitrary mesh to a mesh with subdivision connectivity in multiresolution. Lee et al. [37] introduced a multiresolution remeshing method with the objective of smoothly parametrizing the mesh points. Hoppe [29], Khodakovsky et al. [32], and Cohen-Or et al. [12] developed multiresolution approaches that could produce highly compressed meshes. An approach that can produce considerable details by using only a coarse mesh is based on the displaced subdivision idea [36]. From a coarse control mesh, a smooth surface is obtained using a subdivision surface scheme [6]. Then, a scalar field representing the displacement between the subdivision surface and the given points in the direction normal to the surface is determined. The scalar field is then used to displace the surface or create a bump map for the surface to imitate local details in the underlying shape. By selecting an appropriate resolution for the mesh, a desired level of detail could be produced in the reconstructed shape. This idea is extended to meshes as opposed to smooth surfaces [27] by letting the displacement fields measure distances of points to the mesh faces rather than to the smooth surface approximating it. Smooth Representation of Polygon Meshes 15 In the proposed representation, by varying the smoothness parameter and the sampling rate, a shape is produced at a desired resolution. At a lower resolution, a larger smoothness parameter and a smaller sampling rate are used to render a shape, while at a higher resolution, a smaller smoothness parameter and a larger sampling rate are used to reproduce details in the shape. Resolution relates to the distance at which an object is viewed. As an object gets closer, its size increases and more details become visible, and as the object moves farther away, it gets smaller and loses some of its finer details although maintaining some of its global shape features. To imitate this process, when creating an object at a lower resolution, first a larger smoothness parameter is used to smooth local details. Then, the obtained surface is resampled at a lower rate (larger increments in u and v) to produce a smaller grid for rendering. In this paper, parameter s is used to control both the smoothness and the sampling rate. Assuming average parametric distances of vertices of face Fi to its parametric center is σi and letting Nf 1 σi , σ= Nf i=1 (9) we use σ to represent the interval between samples (increment in u and v). If mesh elements are about the same size, the highest resolution shape (s = 1) will be obtained by resampling the surface at intervals equal to σ. To reduce the resolution, parameter s is increased, producing less details in the surface. At the same time, a smaller resampling rate is used to render the surface. The data set in Fig. 9a shows the range image of a person’s knee after triangulation. This data set contains 18,816 triangles and is courtesy of SGI. Fig. 9b shows a multiresolution representation of the mesh by the proposed method, smoothing more details as resolution is reduced. These surfaces were rendered using 12 × 12, 24 × 24, 48 × 48, 96 × 96, and 192 × 192 regular grids. There are (n − 1)2 quadrilateral elements in an n × n grid. Therefore, there are 121, 529, 2209, 9025, and 36,481 quadrilateral elements in these surfaces. Resampling the surfaces at higher rates than shown here will not change the appearance of rendered surfaces. Note that in the proposed representation, a low resolution surface is obtained by resampling a rather smooth surface at a low rate. Therefore, a low resolution image does not contain high spatial frequencies that may be present in a high resolution image. This is different from methods that are based on mesh simplification where vertices of a low-resolution mesh are a subset of the vertices of the original mesh. Lower resolution images obtained by the proposed method are smoother than higher resolution images. As the resolution of the representation is increased, more details in data are reproduced by smoothing the data less and resampling the surface at a higher rate. 16 A. A. Goshtasby (a) (b) Fig. 9 (a) A triangle mesh representing the knee of a person. (b) Multiresolution representing of the knee. The original data set is courtesy of SGI. The smoothness parameter s determines the resolution of a generated shape and the size of the grid rendering the shape. As s is increased, a smaller grid is generated for rendering. Increasing s by a factor of m will decrease the number of grid elements by a factor of m2 . 4.5 Smoothing and Partial Smoothing Smoothing can be achieved either through image processing means, as outlined in Section 4.2, or directly by changing the smoothness parameter of the surface. If smoothing is achieved by increasing parameter s, surface normals can be accurately determined. If the geometry image of the surface is processed to smooth the surface, surface normals will be only estimations to their true values. Although both smoothing methods have similar effects on a shape, the effects are not exactly the same. It is sometimes necessary to see an overall smooth shape except for select areas where details should be shown. It is sometimes necessary to see most parts of a shape in detail except for select areas where details should be smoothed. Creation of a shape with desired local smoothnesses is rather easy with the proposed representation. The smoothness parameter in local areas can be selected to reproduce the level of detail required in the areas. Examples of partial smoothing by the proposed method are shown in Fig. 10. Fig. 10b shows the smoothing of a small circular area near the center of the surface in Fig. 10a, while Fig. 10c shows smoothing of the entire surface except for a small circular area near the center of the surface. The user can interactively choose the position and size of the area of interest to smooth or retain details. 5 Locally Supported Weights If sizes of polygon faces in a mesh do not vary greatly, local weights instead of global weights may be used to define the approximating surface. Smooth Representation of Polygon Meshes (a) 17 (b) (c) Fig. 10 (a) A surface. (b) Smoothing a circular area near the center of the surface. (c) Smoothing the surface except for a circular area near its center. Using Maude’s locally supported weights [40] in (4), we will obtain a surface where each point is computed from faces in a small neighborhood. Assuming (uci , vic ) represents the parametric center of face Fi and the smallest circular region centered at (uci , vic ) in the parameter space containing n parametric centers has radius Ri , we define a locally supported weight by 1 − 3R2 + 2R3 , 0 ≤ R ≤ 1, (10) Wi (R) = 0, R > 1, where 1 R = [(u − uci )2 + (v − vic )2 ] 2 /Ri , (11) and (u, v) are the parameter coordinates of the surface point under consideration. The weight function given in (10) guarantees that a face whose parametric center is farther than Ri from (u, v) in the parameter space will have no affect on the surface point at (u, v). Also note that since dWi (R) = 0, (12) dR R=1 weight (10) not only vanishes at R = 1, it vanishes smoothly. Therefore, the weighted sum of mesh faces will be smooth everywhere. The surface approximating a polygon mesh by the local weighted mean is defined by Nf P(u, v) = Wi (R)Pi (u, v) , Nf i=1 Wi (R) i=1 (13) where Pi (u, v) is again the parametric equation of face Fi . In summary, to find a local weighted mean approximation to a mesh, first, determine the area of influence of each polygon face (Ri ). Then, for each surface point (u, v), identify those polygon faces that influence it. This is determined by finding all mesh faces that satisfy (u − uci )2 + (v − vic )2 < Ri2 . (14) 18 A. A. Goshtasby Knowing the polygon faces that influence a surface point, use equation (13) to compute the surface point. Although equation (13) has computational complexity Nf , since only n of the weights are non-zero, its computational complexity is actually n. This requires that the parametric centers of the mesh faces be binned so that for a given (u, v) the nearest n centers could be quickly determined without examining the parametric centers of all mesh faces. Local weights, therefore, have computational advantages over global weights. However, they do not have some of the nice properties of global weights. For instance, the surface and all derivatives obtained by rational Gaussians are continuous over the entire approximation domain, while a surface defined by locally supported weights of (10) is continuous only up to its first derivative. The smoothness of surfaces defined by rational Gaussian weights can be continuously varied, while the smoothness of surfaces obtained by locally supported weights can be varied only discretely by increasing n. A larger n will find a surface point from a weighted sum of a larger number of mesh faces, creating a less detailed surface. By sufficiently decreasing the smoothness parameter of rational Gaussian weights, the obtained surface can be made to pass very close to the mesh. By reducing n too much, the circular regions defined by the weight functions become too small and may not cover the entire parameter space, creating holes in the surface. This is especially a problem when the mesh elements are of different shapes and sizes. If a large n is used to avoid creation of holes, details in areas where small mesh elements exist will be lost. On the other hand, if a rather small n is used to reproduce details in the mesh, holes may appear in areas where large mesh elements exist. Examples of surfaces obtained by the above local weighted mean method are shown in Fig. 11. Surfaces approximating the Stanford bunny (shown in Fig. 4a) with the parametrization outlined in [26] and rational Gaussian weights with s = 1, 2, 3 are shown in Figs. 11a–c, while surfaces obtained using locally supported weights with n = 5, 10, 15 are shown Figs. 11d–f. The generated surfaces appear similar. However, by a closer examination we see that surfaces obtained by rational Gaussian weights are smoother and contain less shrinkage near the tail, ears, and front legs of the bunny compared to the surfaces obtained by locally supported weights. 6 Computational Complexity The global weighted mean method according to equation (4) requires in the order of Nf multiplications to compute a surface point. The global weighted mean finds a parametric approximation that has an infinite degree of continuity, but it is practical only when a rather small mesh (thousands of polygons) is given. If a rather large mesh (millions of polygons) is given, the exact computation of the surface becomes computationally prohibitive. In situations where given mesh vertices contain measurement and quantization Smooth Representation of Polygon Meshes 19 (a) (b) (c) (d) (e) (f) Fig. 11 (a)–(c) Surfaces approximating the Stanford bunny by the global weighted mean with s = 1, 2, 3. (d)–(f) Surfaces approximating the bunny by the local weighted mean with n = 5, 10, 15. noise, accuracy in computation beyond a few decimal places is unnecessary and formula (4) can be approximated without degrading the final result. Since Gaussians vanish exponentially, in many situations it is sufficient to use only a subset of the polygon faces where the weights are measurably high and ignore polygon faces whose weights are so small that they cannot be measured with the required error tolerance. To choose the polygon faces that measurably influence a surface point, the face centers are binned in a 2-D array according to their parameter coordinates. Knowing that Gaussians approach zero exponentially, a simple calculation shows that if up to 10-digit accuracy is needed and the mesh faces are about the same size, it is only necessary to use those faces whose center coordinates are within 7σ of the surface point under consideration in the parameter space. Using faces with centers farther away will not affect the computed surface. Therefore, although the weight functions are global, by requiring a desired accuracy in calculations, only faces whose parametric centers are in a small neighborhood of the surface point under consideration need to be used in the calculations. The effect of distant faces on the derivatives of a surface will be even smaller as derivatives of Gaussians are much smaller in magnitude than the Gaussians themselves. Note that as the smoothness parameter s is increased, parameter σ increases proportionately. Therefore, computation of a smoother surface requires use of a larger number of mesh faces in the computations. However, 20 A. A. Goshtasby as the smoothness parameter is increased, smaller details are generated in the surfaces and a lower resolution grid is sufficient to render the surface. Therefore, although a larger number of mesh faces are used to compute a point in a smoother surface, fewer grid points are needed to render the surface. When the smoothness parameter is s, the number of mesh faces used in the calculations increases by s2 , compared to when s = 1 and the number of grid points generated to render the smoother surface decreases by a factor of s2 (see the discussion in Section 4.4). Therefore, the computational complexity of the global weighted mean is independent of the smoothness or resolution of the surface. Computation of each surface point by the local weighted mean requires in the order of n multiplications; therefore, the computational complexity of the local weighted mean is n. This computational complexity is comparable to that for variational subdivision surfaces [33]. The local neighborhoods used in rational Gaussians with truncated weights are in general larger than local neighborhoods used by locally supported weights to produce surfaces with similar details. Surfaces generated in Figs. 11a–c all required 55 seconds by the rational Gaussian weights, while surfaces generated in Figs. 11d–f required 15, 25, and 45 seconds by the locally supported weights on a 2.4GHz PC. 7 Concluding Remarks A weighted mean approach to the approximation of polygon meshes by smooth parametric surfaces was described. The proposed surface formulation has a smoothness parameter that can be varied to create surfaces at varying resolutions. As the smoothness parameter is increased, a surface with less details is obtained. Since Gaussians approach zero exponentially, they may be cut off beyond a certain point given an error tolerance in computations. To make the process totally local, instead of rational Gaussian weights, locally supported weights may be used. The local weighted mean approach has computational advantages over the global weighted mean, but it produces surfaces that are continuous only up to derivatives of degree one. The proposed formulation for smooth approximation of polygon meshes has the following properties: 1. It can approximate an irregular mesh with varying size and shape faces. 2. It approximates the mesh faces. This is in contrast to previous parametric formulations, such as B-spline and NURBS, that approximate the mesh vertices. As a result, surfaces obtained by the proposed formulation stay very close to the meshes. 3. It produces surfaces that are smooth and curvature continuous everywhere. The local weighted mean counterpart is smooth but is not curvature continuous. Smooth Representation of Polygon Meshes 21 4. It enables geometry processing of 3-D shapes via image processing techniques and without direct manipulation of the mesh vertices. This facilitates computation of key geometry operations such as smoothing, edge sharpening, morphing, and compositing. References 1. Babaud J, Witkin A, Baudin M, Duda R (1986) Uniqueness of the Gaussian kernel for scale-space filtering. IEEE Trans. Pattern Analysis and Machine Intelligence 8(1):26–33 2. Besl P (1990) Geometric signal processing. Analysis and Interpretation of Range Images, R. C. Jain and A. K. Jain (eds.), pp 141–205 3. Blinn J (1982) A generalization of algebraic surface drawing. ACM Transactions on Graphics 1(3):235–256 4. Carr J, Beatson R, Cherrie J, Mitchell T, Fright W, McCallum B (2001) Reconstruction and representation of 3D objects with radial basis functions. Proc. SIGGRAPH, pp 67–76 5. Castleman K (1996) Digital Image Processing, Prentice Hall, p. 173 6. Catmull E, Clark J (1978) Recursively generated B-spline surfaces on arbitrary topological meshes. Computer Aided Geometric Design 10(6):350–355 7. Catmull E, Rom R (1974) A class of interpolating splines. Computer Aided Geometric Design, R. E. Barnhill and R. F. Riesenfeld (eds.), Academic Press, pp 317–326 8. Chang L, and Said H (1997) A C 2 triangular patch for the interpolation of functional scattered data. Computer-Aided Design 29(6):407–412 9. Chui C, Lai MJ (2000) Filling polygonal holes using C 1 cubic triangular spline patches. Computer Aided Geometric Design 17:297–307 10. Clark J (1989) Authenticating edges produced by zero-crossing algorithms. IEEE Trans. Pattern Analysis and Machine Intelligence 11(1):43–57 11. Clough R, and Tocher J (1965) Finite element stiffness matrices for analysis of plate bending. Conference on Matrix Methods in Structural Mechanics, pp 515–545 12. Cohen-Or D, Levin D, and Remez O (1999) Progressive compression of arbitrary triangular meshes. Proc. IEEE Conf. Visualization, pp 67–72 13. Constantini P, Manni C (1996) On a class of polynomial triangular macroelements. Computational and Applied Mathematics 73:45–64 14. Constantini P, Manni C (1999) A local shape-preserving interpolation scheme for scattered data. Computer Aided Geometric Design 16:385–405 15. Curless B, Levoy M (1996) A volumetric method for building momplex models from range images. Proc. SIGGRAPH, pp 303–312 16. DeRose T, Kass M, Truong T (1998) Subdivision surfaces in character animation. Proc. SIGGRAPH, pp 85–94 17. Doo D (1978) A subdivision algorithm for smoothing down irregularly shaped polyhedrons. Proceedings Interactive Techniques in Computer Aided Design, Bologna, Italy 1:157–165 18. Dyn N, Levin D, Gregory J (1990) A butterfly subdivision scheme for surface interpolation with tension control. ACM Transactions on Graphics 9(2):160– 169 19. Eck M, Hoppe H (1996) Automatic reconstruction of B-spline surfaces of arbitrary topological type. Proc. SIGGRAPH 1996, pp 325–334 22 A. A. Goshtasby 20. Farin G (1986) Triangular Bernstein-Bézier patches. Computer Aided Geometric Design 3(2):47–61 21. Floater M (1997) Parametrization and smooth approximation of surface triangulations. Computer Aided Geometric Design 14:231–250 22. Floater M (2003) Mean value coordinates. Computer Aided Geometric Design 20(1):19–27 23. Franke R, Nielson G (1980) Smooth interpolation of large sets of scattered data. International Journal for Numerical Methods in Engineering 15:1691– 1704 24. Goshtasby A (1995) Geometric modeling using rational Gaussian curves and surfaces. Computer Aided Design 27(5):363–375 25. Grimm C, Hughes J (1995) Modeling surfaces of arbitrary topology using manifolds. Proceedings of SIGGRAPH, pp 359–368 26. Gu X, Gortler S, Hoppe H (2002) Geometry images. Proc. SIGGRAPH, pp 95–102 27. Guskov I, Vidimce K, Sweldens W, Schröder P (2000) Normal meshes. Proceedings of SIGGRAPH, pp 95–102 28. Guskov I, Sweldens W, Schröder P (1999) Multiresolution signal processing of meshes. Proceedings of SIGGRAPH, pp 325–334 29. Hoppe H (1998) Efficient implementation of progressive meshes. Comput. & Graphics 22(1):27–36 30. Hoppe H, DeRose T, Duchamp T, McDonald J, Stuetzle W (1992) Surface reconstruction from unorganized points. Computer Graphics 26(2):71–78 31. Khodakovsky A, Litke N, Schröder P (2003) Globally smooth parametrization with low distortion. Proc. SIGGRAPH 32. Khodakovsky A, Shröder P, Sweldens W (2000) Progressive geometry compression. Proc. SIGGRAPH, pp 271–278 33. Kobbelt, L (1996) A variational approach to subdivision. Computer Aided Geometric Design 13:743–761 34. Kobbelt L, Vorsatz J, Labsik U, Seidel HP (1999) A shrink wrapping approach to remeshing polygonal surfaces. EUROGRAPHICS 18(3) 35. Kobbelt, L (2000) Discrete fairing and variational subdivision for freeform surface design. The Visual Computer 16:142–158 36. Lee A, Moreton H, Hoppe H (2000) Displaced subdivision surfaces. Proceedings of the SIGGRAPH, pp 85–94 37. Lee A, Sweldens W, Schröder P, Cowsar L, Dobkin D (1998) MAPS: Multiresolution adaptive parametrization of surfaces. Proc. SIGGRAPH, pp 95–104 38. Lévy B, Petitjean, Ray N, Maillot J (2002) Least squares conformal maps for automatic texture atlas generation. Proc. SIGGRAPH, pp 362–371 39. Maillot J, Stam J (2001) A unified subdivision scheme for polygonal modeling. EUROGRAPHICS, A. Chalmers and T.-M. Rhyne (eds.) 20(3) 40. Maude A (1973) Interpolation – Mainly for graph plotters. The Computer Journal 16(1):64–65 41. Morse B, Yoo T, Rheingans P, Chen D, Subramanian K (2001) Interpolating implicit surfaces from scattered data using compactly supported radial basis functions. Shape Modeling International, pp 89–98 42. Mortenson M (1997) Geometric Modeling, second edition, Wiley Computer Publishing 43. Nasri A (2000) Surface interpolation on irregular networks with normal conditions. Computer Aided Geometric Design 17:643–671 Smooth Representation of Polygon Meshes 23 44. Navau J, Garcia N (1991) Modeling surfaces from meshes of arbitrary topology. Computer Aided Geometric Design 8:89–96 45. Ohtake Y, Belyaev A, Alexa M, Turk G, Seidel HP (2003) Multi-level partition of unity implicits. Proc. SIGGRAPH 46. Peters J (1993) Smooth free-form surfaces over irregular meshes generalizing quadratic splines. Computer Aided Geometric Design 10(5):347–361 47. Peters J, Reif U (1997) The simplest subdivision scheme for smoothing polyhedra. ACM Trans. Graphics 16(4): pp. 420–431 48. Praun E, Hoppe H (2003) Spherical parametrization and remeshing. Proc. SIGGRAPH 49. Powell, M (1987) Radial basis functions for multivariable interpolation: A review. Algorithms for Approximation, J. C. Mason and M. G. Cox (eds.), Clarendon Press, pp 143–167 50. Sheffer A, deSturler E (2001) Parametrization of faceted surfaces for meshing using angle-based flattening. Engineering with Computers 17(3):326–337 51. Schmidt J (2000) Scattered data interpolation applying regional C 1 splines on refined triangulations. Math. Mech. 80(1):27–33 52. Shepard D (1968) A two-dimensional interpolation function for irregularlyspaced data. Proceedings - 1968 ACM National Conference, pp 517–524 53. Shirman L, Sequin C (1990) Local surface interpolation with shape parameters between adjoining Gregory patches. Computer Aided Geometric Design 7:375– 388 54. Shröder P, Zorin D (1998) Subdivision for Modeling and Animation, SIGGRAPH Course 36 55. Stam J (2001) On subdivision schemes generalizing uniform B-spline surfaces of arbitrary degree. Computer Aided Geometric Design 18:383–396 56. Turk G, O’Brien J (2002) Modeling with implicit surfaces that interpolate. ACM Trans. Graphics 21(4):855–873 57. Wendland H (1995) Piecewise polynomial, positive definite and compactly supported radial functions of minimal degree. Advances in Computational Mathematics 4:389–396 58. Wood Z, Desbrun M, Schröder P, Breen D (2000) Semi-regular mesh extraction from volumes. Proc. IEEE Visualization, pp 275–282 59. Yuille A, Poggio T (1986) Scaling theorems for zero-crossings. IEEE Trans. Pattern Analysis and Machine Intelligence 8(1):15–25 60. Zhao H, Osher S, Fedkiw R (2001) Fast surface reconstruction using the level set method. First IEEE Workshop Variational and Level Set Methods, 8th ICCV, Vancouver, CA, pp 194–202 61. Zorin D, Schröder P (2001) A unified framework for primal/dual quadrilateral subdivision schemes. Computer Aided Geometric Design 18:429–454 62. Zorin D, Schröder P, Sweldens W (1997) Interactive multiresolution mesh editing. Proc. SIGGRAPH, pp 259–268 24 A. A. Goshtasby A. ARDESHIR GOSHTASBY received a Bachelor of Engineering in Electronics Engineering from the University of Tokyo in 1974, a Master of Science in Computer Science from the University of Kentucky in 1975, and a Doctor of Philosophy also in Computer Science from Michigan State University in 1983. For about 20 years, he has been working in the areas of computer vision, geometric modeling, and computer graphics. His main interests have been in image registration, and curves and surfaces. He formulated image registration as an approximation problem and developed a parametric surface formulation, known as rational Gaussian (RaG) surfaces, where irregular grids of control points can be used to define free-form shapes. He has also formulated parametric curves and parametric surfaces in terms of control lines and control planes as opposed to control points to provide more effective means of interacting with 2-D and 3-D shapes. Dr. Goshtasby is currently a professor in the Department of Computer Science and Engineering, Wright State University.