Elsevier

Graphical Models

Volume 66, Issue 5, September 2004, Pages 303-330
Graphical Models

Quadric decomposition for computing the intersections of surfaces of revolution

https://doi.org/10.1016/j.gmod.2004.05.007Get rights and content

Abstract

Surface subdivision has been one of the most efficient techniques for surface representation, rendering, and intersection problems. General triangular and quadrilateral subdivision schemes often lead to data proliferation and increased computational load. In this paper, we propose a novel quadric decomposition method for computing intersection curves and present an efficient algorithm for solving the intersection problem of general surfaces of revolution. In our method, we decompose surfaces of revolution into a sequence of coaxial revolute quadrics and reduce the intersection problem for two surfaces of revolution to the intersection problem for two revolute quadrics. We present the performance of our method in the context of some of the most efficient and well-known solutions proposed so far by Kim [11] and our previous method based on truncated cone decomposition [1]. We give the performance characterization and show that this method is significantly more robust and efficient than previous methods.

Introduction

Intersection problems are fundamental in the basic operations of computer aided geometric modeling. They appear in trimming regions bounded by self-intersection curves from offset surfaces in NC machining and they are essential in Boolean operations for solid modeling.

Four factors affect the efficacy of surface–surface intersection algorithms: (1) accuracy, (2) robustness, (3) speed, and (4) generality. Although many surface intersection algorithms have been suggested in the past 20 years, it remains a challenging task to develop algorithms for computing the intersections of two general surfaces accurately, robustly, automatically, and efficiently, even for computing the intersections of two general quadratic surfaces. Therefore, much research has focused on intersection problems for common special surfaces such as standard CSG primitives (plane, sphere, cylinder, cone, quadratic surfaces, and tori) and some other CSG primitives (cyclide, surfaces of revolution, ruled surfaces, and ringed surfaces). An excellent summary is presented by Kim and co-workers [10].

In this paper, we propose a quadric decomposition scheme for computing the intersections of two surfaces of revolution. Surfaces of revolution are one of the most important classes of geometric primitives. They benefit from simpler and more compact representations and possess elegant geometric properties. Surfaces of revolution have a large number of applications in CG/CAD/CAM.

In this section we give a short overview of the general methodologies for surface intersections.

Subdivision methods are intrinsically divide-and-conquer solutions. In general, surfaces are subdivided recursively into triangular or quadrilateral meshes. Finding the intersection curves is reduced to computing the intersection segments of triangle/triangle or quad/quad elements. The resulting intersection segments are merged into the final representation of the surface intersection curves. Subdivision methods are robust in general, but, for highly accurate approximations, they often require dense subdivisions. Otherwise, small loops and potential cusps may be missed in the representation of the intersection curves.

Lattice methods reduce the surface/surface intersection problems to a series of lower geometric complexity problems such as curve/surface intersections. All the discrete curve/surface intersection points are sorted and connected into the final representation of the intersection curves. However, it is often difficult to determine the appropriate lattice step size in order to guarantee robustness. These methods may also fail to find small loops, cusps, and singular points.

Algebraic methods resort to finding solutions to the intersection problem between two surfaces, one represented in implicit form and the other in parametric form. By substituting the parametric representation of one surface into the implicit representation of the other, we obtain a set of algebraic equations whose zero set forms the solution to the intersection problem. For a pair of surfaces that are both represented in parametric form, we must resort to implicitization and the inversion of one of the surfaces. The resulting intersection equations usually lead to high order which requires numerical algorithms and tight error control. Only quadratic surface intersection curves can be computed analytically. Numerical algorithms must be employed for higher-order representations.

Marching methods are by far the most widely used in these problems for their generality and for being relatively easier to implement [17], [18]. These methods require a starting point on each intersection curve component. This point can be obtained by computing curve/surface intersections. The method proceeds by tracing out the intersection curves according to their local geometry or their projections on a plane. However, such tracing procedures become inefficient and numerically unreliable at singular points and bifurcations. They may also encounter difficulties in searching small loops and cusps on the intersection curves. Currently, most of the research papers focus on these problems.

Among all the above methods, subdivision methods are the most robust for the computation of surface intersections. We concentrate on subdivision methods, by introducing quadric decomposition to conquer the two problems of traditional triangular subdivision: (1) data proliferation and (2) slow computation in the presence of dense subdivisions. Dahmen [5] and Guo [9] construct algebraic quadric subdivisions for triangulated surface by using the implicit Bezier form in [21] and the solution proposed by Powell–Sabin [20] that splits bivariate C1-piecewise quadrics into smaller segments. A geometric approach to piecewise quadric C1-intepolants is given with a quadric spline formulation in [2]. These give a geometric interpretation to certain parameters and treat the Powell–Sabin interpolant as a special case. These quadric decomposition methods are given for general surfaces. However, these methods become inefficient when they are applied to special surfaces. Much improvement can be realized in the case of surfaces of revolution by developing specific quadric decomposition schemes.

Previous work on the intersection problems for surfaces of revolution is based on subdivision methods. In this section, we give a brief review of various subdivision schemes for surfaces of revolution. Surfaces of revolution can be subdivided into quadrilateral meshes as in [12]. A powerful quadrilateral subdivision for surfaces of revolution is presented in [15]. Quadrilateral subdivision is a general surface subdivision scheme and becomes inefficient when it is applied to the special intersection problem of surfaces of revolution due to potential dense subdivision.

Based on circle decomposition, each ringed surface is represented as a family of circles along a spine curve. Computing the intersections of two ringed surfaces is reduced to computing intersections of two families of circles. Kim [11] give an elegant formula for such computation of intersection curves, as a special case, they reformulate the intersection problem for two surfaces of revolution as a problem of searching for the zero-set λ(u,v)=0 of two parameters, u and v. If the degree of either generatrix is higher than two, then numerical solvers must be employed. To speed up the search, the parameter space (u,v) is subdivided into a m×n grid and bounding spheres are used to determine the grid cell containing specific values of u and v. The overall cost is proportional to the grid size m×n. Kim's method is relatively easy to implement and provides a better scheme than general ones for solving the intersection problem for special surfaces.

The truncated cone decomposition given by Baciu et al. [1] decomposes two surfaces of revolution into M and N coaxial truncated cones, and reduces computing intersections of two surfaces of revolution to computing intersections of two truncated cones. The final intersection curve is approximated as a collection of intersection curves of two truncated cones (TCIC), which can be computed by solving quadratic equations analytically. This scheme reduces the dense 2D quadrilateral subdivision to a relatively sparse 1D truncated cone decomposition along the generatrix. The overall computation cost is proportional to M×N, where M and N are the number of truncated cones and depend only on the local resolution of the surface (see Fig. 1).

Our method decomposes each surface of revolution into a sequence of coaxial bounded revolute quadrics. We reduce the problem of computing the intersection curves of two surfaces of revolution to the problem of computing intersection curves of two revolute quadrics. The intersection curves of two surfaces of revolution are represented by a set of intersection curves for two revolute quadrics. For a concise definition of the problem, we present some basic terms in Table 1. These terms will be used regularly throughout the paper.

Based on an analysis of the geometric characteristics of surfaces of revolution, we present some new insight into subdivision schemes for surfaces of revolution and propose a novel solution to compute the RSIC of two surfaces of revolution by decomposing each surface of revolution into a collection of coaxial revolute quadrics. We do this for the following reasons:

  • 1.

    To reduce the computation of RSIC to computing RQIC, which can be solved by classical algorithms for computing intersection curves of two quadrics (QSIC) in [8], [13], [14], [26].

  • 2.

    To represent RSIC as collection of C0 or C1 RQIC sections. RQIC has analytical solutions and explicit parameterizations.

  • 3.

    To produce fewer RQIC segments of large sizes for the same resolution of refinement than is necessary with TCIC by truncated cone decomposition under the same tolerance.

Our main contributions are: (1) a simple revolute quadric decomposition for surfaces of revolution, (2) the introduction of cylindrical bounding shells and the revolute axial intersection interval, (3) a simple RSIC tracing algorithm to trace connected RQIC segments one by one, and (4) a representation for RSIC based on piecewise parameterizations of RQIC.

Section snippets

The basic idea: generatrix decomposition

Quadric decomposition for a surface of revolution in 3D space is done by decomposing its generatrix into a set of bounded coaxial conic arcs in 2D space. In this section, a simple method is presented for decomposing the generatrix with a set of coaxial conic arcs. If the generatrix curve contains negative portions, we translate the generatrix in the positive y-direction to a sufficient large distance dy so that the whole generatrix becomes non-negative. Then we perform conic fitting on this new

Revolute axial valid intersection interval

We assume that two surfaces of revolution are decomposed into m and n bounded revolute quadrics. Then, there are m×n possible intersection pairs of bounded revolute quadrics for two surfaces of revolution. In practice, only a portion of them overlap each other within intervals C and D as shown in Fig. 3. We call these overlapping ranges for the intersection tests the revolute-axial valid intersection intervals (RAVII). The pairs of revolute quadrics outside the RAVII will not intersect and,

Computing RSIC

First, we will show how to reduce the intersection computations in terms of basic quadric surface intersections. Then, we talk about the bounds on the intersection range and the tracing of RSIC.

Our main contribution is to reduce the computation of RSIC of two surfaces of revolution to computing RQIC of two revolute quadrics. Therefore the core of our algorithm is to compute RQIC of two revolute quadrics. Although the problem of computing the intersections of two quadric surfaces has been

Implementation results

We have implemented three algorithms for computing the RSIC of two surfaces of revolution: (1) Kim's method based on circle subdivision, (2) our previous method based on truncated cone (TC) decomposition, and (3) the new method based on revolute quadric (RQ) decomposition. The implementation was done in C++ and OpenGL on a Linux platform running on a PC with a 1.6 GHz AthlonXP processor and 512 MB of main memory. We generated four examples in order to show the effectiveness of our algorithm. We

Conclusion and future work

We have solved the intersection problem for surfaces of revolution efficiently based on a novel revolute quadric decomposition scheme. The advantages of this scheme are:

  • 1.

    RSIC is approximated as a group of RQIC. The RQIC patches are larger and fewer in number than TCIC in the truncated cone decomposition for the same error tolerance.

  • 2.

    For each RQIC, its boundary points and turning points can be computed analytically by solving a few quartic equations. Rendering RSIC can be done by solving only

References (26)

  • A. Clebsch, F. Lindemann, Vorlesungen ber Geometrie. Teubner,...
  • J.L. Coolidge

    A History of the Conic Sections and Quadric Surfaces

    (1945)
  • L. Dupont, D. Lazard, S. Lazard, S. Petitjean, Towards the robust intersection of implicit quadrics, in: Workshop on...
  • Cited by (0)

    View full text