Abstract
This paper proposes a new scheme of interpolation subdivision curve and surface using Bezier curve to achieve more realistic surface design. Different from the previous interpolation subdivision schemes, the normal vectors are used to generate a circle from a triangle which results in only three vertices and three edges. This improvement not only makes a curve smooth, but also produces sharp angles during subdivision. Examples of subdivision surface by this scheme are illustrated and compared to show the advantages of this scheme.
1. Introduction
In the field of 3D computer graphics, subdivision surface is used to represent a smooth surface via the specification of a coarser piecewise linear polygon mesh [1,2]. It can be broadly classified into two categories: approximating and interpolating [3,4]. Approximating schemes adjust the original position of vertices as needed. In general, approximating schemes have greater smoothness. The first interpolating scheme was presented by Dyn, Levin and Gregory (1990), which was also called butterfly scheme [5,6]. They extended the four-point interpolation subdivision scheme for curves to a subdivision scheme for surface. In general, interpolating subdivision schemes are sensitive to the presence of sharp features and may produce low quality surfaces for some input meshes [7]. In recently years, some new interpolating schemes have been proposed, such as the variational subdivision scheme [8] and normal-based subdivision scheme [9]. Based on the CatmullCClark subdivision scheme, Zheng and Cai proposed a two-phase subdivision scheme to interpolate arbitrary topology meshes [10]. A similar method was also applied to the DooCSabin subdivision scheme [11]. More recently, surface interpolation based on similarity [12] and an efficient constructive algorithm [13] are presented for interpolating meshes by Catmull-Clark surfaces. Chen and Luo [14] have used normal vector and a linear system equations to subdivide surface scheme.
Though NURBS can provide a smooth surface with some control points, it can’t be used for an arbitrary mesh, such as a triangle mesh. We utilize the ideas from the NURBS that using the Bezier curve to generate point. Since the 4-point subdivision curve and deducing interpolating subdivision scheme in [15] are both difficult to generate a circle from a square or a triangle, we refresh the mind to propose a scheme to make a curve smooth and circinal, then extend this scheme to the subdivision surface scheme. Meanwhile, it is difficult for the proposed interpolation schemes in [5,10,15] to generate a sphere from a tetrahedron, which has only 4 vertices and 4 faces. In the existing schemes, many have much computational cost of solving a large system of linear equations [15], or change the topology of the mesh [4] or modify the data of the vertices [1,2,3]. They need extra space to store data or spend much time during computation.
In order to improve these disadvantages, this paper proposes a parallel normal-based subdivision scheme in the simple way for interpolation subdivision curve, and further expands it for surface design. Firstly, we propose an interpolation subdivision scheme, in which the input parameters are very simple with only the position and the normal vector of the two endpoints of the edge. Then, we use the normal vector to construct the Bezier controls, and subdivide the sub-edges recursively to get the limit subdivision curve. The examples of subdivision results of the well-know schemes and our scheme are presented to show the advantages of our method.
2. Circle Generation from Cubic Bezier Curve
Bezier curves are widely used in computer graphics to model smooth curves. As the curve is completely contained in the convex hull of its control vertices, the vertices can be graphically displayed and used to manipulate the curve intuitively. Any series of any 4 distinct vertices can be converted to a cubic Bezier curve that goes through all 4 vertices in order. Let Pi = (xi, yi, zi), (0 ≤ i ≤ 3) are the four control vertices, then the explicit matrix form is
When t = 0, P = P0, and T = 3(P1−P0), which is the beginning point P0, and going toward P1; When t = 1, P = P3, and T = 3(P3−P2), which is the destination point P3, and coming from the direction of P2; When , and , which is the middle point of this curve, and it is important to generate the new interpolate point and this point can split a edge into 2 sub-edges. Assume we are going to make the Bezier curve to be an arc of a unit circle and its parametric form is , then the direction of its tangent is . The endpoint Pi can be calculated with the form of θ.
Since this curve is symmetric to y-axis, thus L′ = L, and the curve will be in the form of:
If is smaller, P(θ, L, t) is closer to the unit circle. Thus, it is able to get the most approximate sphere when minimizing the value of .
3. Plane Curve Subdivision
This section is going to propose an interpolation subdivision curve scheme. It will be easy to find that this scheme is simple and can be realize in parallel program. Before subdivision, it should check whether initial normal vectors are given. If not, the normal vectors can be generated automatically for each vertex. It is possible to define any arbitrary vectors as the normal vectors, and different normal vectors will lead to different shape.
With the normal vectors, it is possible to calculate and draw each part of the curve (shown in Fig. 1). Algorithm 1 is going to calculate the middle points of the edges, the partition of the 2 sub-edges.
Figure 1.
The steps of calculating the middle point.
Table 1.
Algorithm 1 for division of the line V0V1 with their normal vectors.
4. Surface Subdivision
With the curve subdivision scheme, it can be generalized for surface interpolation of mesh directly. The meshes may be composed of triangle meshes or quadrilateral meshes. We donate each triangle or quadrilateral on the mesh as a surface element. During the surface subdivision, only the curve subdivision scheme is utilized to generate the middle points for each edge of the surface element. Further, the middle points can subdivide a surface element into 4 sub-surface elements again. In this way, we recursively subdivide the sub-surface elements to generate the limit surface.
Algorithm 2 is the basis for the subdivision of a triangle surface and a quadrilateral surface. This scheme is an extension from the subdivision of a plane curve scheme. In this algorithm, Step 1 and Step 2 are the same as the Step 2 and Step 3 in Alogrithm1 for the subdivision of a plane curve. However, Step 3 here will be quite different, in which the detail will be given below. Get the normal plane of , whose normal vector is named as . Then get the normal plane of , whose normal vector is named as , we have . Get the normal vector of the normal plane of , thus . Finally, the normal () at the middle point (Vm) is .
Table 2.
Algorithm 2 for getting new interpolation point from the line V0V1 with their normal vectors.
It is easy to know that the middle point and its vector only have the relationship with the two vertices of the edge. In another way, any edge always generates the same middle point and its normal vector. The following parts describe the detail algorithms for the subdivision of triangle surface and quadrilateral surface.
4.1. Subdivision of Triangles
Algorithm 3 is designed for subdivision of a triangle which is mostly based on Algorithm 2. The difference is that we render some local triangles first before the calculation of the final subdivision surface. This property allows using parallel calculation.
Table 3.
Algorithm 3 for subdivision of a triangle.
Finally, in a triangle mesh, if two triangles share the same edge and the endpoints of the edge shares the same normal vectors, they will share the same middle point of the same edge, as well as the same normal vector at the same middle point. Thus it has no need to consider the meshes adjacent to the target triangle. Moreover, we will not change the topology of the meshes or update any data of the vertices. That means when calculating the triangle, it does not need concern whether other sub-triangles have effect on this triangle. The only connection between these triangles is the common vertices and normal vectors. Therefore, this scheme can be realized in parallel by programming, which can achieve great faster speed of calculation.
4.2. Subdivision of Quadrilaterals
Similar to Algorithm 3, Algorithm 4 is also based on Algorithm 2. We render some local quadrilaterals at first before calculating the final subdivision surface. This feature also allows using parallel calculation.
Table 4.
Algorithm 4 for subdivision of a quadrilateral.
Similar to the subdivision of a triangle mesh, if two quadrilaterals share the same edge, and the endpoints of the edge shares the same normal vectors, they will share the same middle point at the same edge as well. The final subdivision surface of OV01V1V12 has no relationships with the others quadrilaterals. Therefore this algorithm for subdivision scheme can also be realized in parallel program.
5. Examples and Comparisons
5.1. Plane Curve Subdivision
Algorithm 1 is able to generate a circle from a regular triangle and square, and the results are demonstrated in Fig. 4. In Fig. 2(a), the red line is the initial triangle, which is in level 0; the green line is a right hexagon, which is in level 1; and the black line is a regular polygon with 48 edges, which is in level 4. The black line is quite similar to a circle. In Fig. 2(b), red line is a square in level 0 initially; the green line is a regular octagon in level 1; while the black line is a regular polygon with 64 edges, which is in level 4. The black line is quite similar to a circle too. The final subdivision curves of these two shapes are both precise circles. In Fig. 3, it shows two sharp feature shapes from two same triangles. The difference between them is raised by their different normal vectors. Fig. 3(a) has a free point on the top while Fig. 3(b) has two free points on the bottom.
Figure 2.
Generation of a circle.
Figure 3.
Subdivision curves with shape feature.
Fig. 4 compares the results by [14] and our scheme. Through the comparison on the same limit curve by subdivision, we can find that Fig. 4(b) has a better smoothness and more circular results. Meanwhile, Fig. 4(b) has less calculation complexity than Fig. 4(a). The compared figures show that our interpolating subdivision curve scheme can generate a sufficiently smooth and circular limit curve.
Figure 4.
Interpolating subdivision comparison.
5.2. Surface Subdivision
In Fig. 5, it shows the examples of two kinds of surfaces, namely, triangle mesh on the tetrahedron and quadrilateral mesh on the cube. As the level increasing, the subdivision surfaces are more and more close to a smooth sphere, and hence the surfaces match all of the original vertices. From these results, it can see that we can change a cube or a regular tetrahedron to a sphere by using the interpolation subdivision scheme proposed in this paper. When subdividing the tetrahedron, our method just renders the 4 triangles in a fixed level, and then the algorithm will get the sub-triangles and go on rendering the sub-triangles recursively.
Figure 5.
Subdivision of a tetrahedron and a cube.
Fig. 6 shows the results of some examples realized by our method and the algorithms reported by others works in the subdivision of a cube. Fig. 6(a)-(b) are the results using approximating schemes, in which it can achieve smooth surfaces but the surfaces can not match the vertices on the cube. Fig. 6(c) is the results of an interpolation subdivision scheme from Doo-Sabin subdivision interpolating schemes [15]. Though the surface is smooth and achieved by complex calculation, it is not able to generate a sphere. Fig. 6(d) is the results by our subdivision scheme. As shown in the picture, the results are much better than that in Fig. 6(b)-(c) apparently. Furthermore, different from these schemes, our subdivision scheme need not deal with the topology of the complex meshes or update any data of the vertices, which enable us to complete the subdivision in a simple and fast way.
Figure 6.
Comparison between different subdivision surfaces.
5.3. Subdivision of Complex Surfaces
Fig. 7 shows the objects with complex surfaces subdivided recursively by our method. There are 3 objects including (a) a regular hexagonal pyramid, which is the form of triangle meshes and have a closed angle on the top; (b) the tail of a toothpaste, which combines of triangle and quadrilateral meshes, and could generate sharp features since the tail has two free points; (c) a pipe usually in industrial applications, which is formed by quadrilateral meshes. From the table, it can see that the initial shape in level 0 is quite simple and rough, and when in level 2, the embryonic forms of the objects can be observed, after repeated subdivision and in level 4, we already get the objects with quite smooth surfaces.
Figure 7.
Subdivision for objects with complex surfaces.
6. Conclusion
In this paper, we have proposed a new scheme of interpolation subdivision surface to achieve more realistic curve and surface design. Firstly, a curve subdivision scheme is proposed based on cubic Bezier curve and normal vectors. This algorithm can be further used to generate a circle from a triangle, which has only 3 vertices and 3 edges. Then, we extend this method to the scheme of interpolation subdivision surface of triangle and quadrilateral. The advantage of this scheme is that it is easy for computation, since it avoids the computational cost of solving a large system of linear equations, and has an simple structure in the algorithm. Thus, this scheme can be realized in parallel implementation, which makes the computation much faster. Through the comparison between the results of ours and others work, it shows the scheme proposed in this paper makes an important improvement in smoothness and efficiency.
References
- Doo, D.; Sabin, M. Analysis of the behavior of recursive division surfaces near extraordinary points. Comput.-Aided Des. 1978, 10(6), 356–360. [Google Scholar] [CrossRef] [Scilit]
- Catmull, E.; Clark, J. Recursively generated B-spline surfaces on arbitrary topological meshes. Comput.-Aided Des. 1978, 10(6), 350–355. [Google Scholar] [CrossRef] [Scilit]
- Loop, C. Smooth Subdivision Surfaces Based on Triangles. Master Thesis, Utah University, USA, 1987. [Google Scholar]
- Kobbelt, L. sqrt3-subdivision, Computer Graphics Proceedings, Annual Conference Series, ACM SIGGRAPH, 2000, 103-112.
- Dyn, N.; Levin, D.; Gregory, J. A. A butterfly subdivision scheme for surface interpolation with tension control. ACM Trans. Graph. 1990, 9, 160–169. [Google Scholar] [CrossRef] [Scilit]
- Kobbelt, L.; Schroder, P. A multiresolution framework for variational subdivision. ACM Trans. Graph. 1998, 17(4), 209–237. [Google Scholar] [CrossRef] [Scilit]
- Yang, X. Surface interpolation of meshes by geometric subdivision. Comput.-Aided Des. 2005, 37(5), 497–508. [Google Scholar] [CrossRef] [Scilit]
- Zheng, J.; Cai, Y. Making Doo-Sabin surface interpolation always work over irregular meshes. Vis. Comput. 2005, 21, 242–251. [Google Scholar] [CrossRef] [Scilit]
- Zheng, J.; Cai, Y. Interpolation over arbitrary topology meshes using a two-phase subdivision scheme. IEEE Trans. Vis. Comput. Graph. 2006, 12, 301–310. [Google Scholar] [CrossRef]
- Lai, S.; Cheng, C. F. Similarity based interpolation using Catmull-Clark subdivision surfaces. Vis. Comput. 2006, 22, 865–873. [Google Scholar] [CrossRef] [Scilit][Green Version]
- Deng, C.; Yang, X. A simple method for interpolating meshes of arbitrary topology by CatmullClark surfaces. Vis. Comput. 2010, 26, 137–146. [Google Scholar] [CrossRef] [Scilit]
- Dyn, N.; Levin, D.; Gregory, J. A. A 4-point interpolatory subdivision scheme for curve design. Comput. Aided Geom. Des. 1987, 4, 257–268. [Google Scholar] [CrossRef] [Scilit]
- Hassan, M. F.; Ivrissimitzis, I. P.; Dodgson, N. A.; Sabin, M. A. An interpolating 4-point C2 ternary stationary subdivision scheme. Comput. Aided Geom. Des. 2002, 19(1), 1–18. [Google Scholar] [CrossRef] [Scilit]
- Jüttler, B.; Schwanecke, U. Analysis and design of Hermite subdivision schemes. Vis. Comput. 2002, 18(5), 326–342. [Google Scholar] [CrossRef] [Scilit]
- Zhang, A.W.; Zhang, C.M. Computer-aided industrial design and conceptual design, CAID and CD 2009, IEEE 10th International Conference on Digital Object Identifier.
© 2015 Textile Bioengineering and Informatics Society. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).






