Surface and Solid Modeling

The area of surface and solid modeling deals with shape design and representation of physical objects.

A solid modeler represents an object unambiguosly by describing its surface boundary and by topologically orienting it, so that we can tell, at each surface point, on which side the solid interior lies. Whereas, a surface modeler gives only a geometrical description of the object boundary without any topological information.

Currently, most solid modelers are able to support solids composed of polyhedral models and quadric surfaces (like spheres, cylinders etc.) and their Boolean combinations.
At the same time, the field of surface modeling has been developed to model classes of piecewise surfaces based on particular conditions of shape and smoothness. Such models are also referred to as sculptured models.

Over the years, in our research, there has been considerable effort put into integrating surface and solid modeling. Moreover, there was considerable interest in building complete solid representations from spline/NURBS surfaces and their Boolean combinations.

About surface modeling and the collection of mathematical methods that we use to describe the shape of an object, we started in 1989 with a survey work that addressed our following research to NURBS (Non Uniform Rational B-Spline) paradigm.

NURBS have become the de facto industry standard for the representation, design, and data exchange of geometric information. NURBS have been added to several international standards, and many packages include NURBS as the primitive for designing simple and free form curves and surfaces. However, the most useful NURBS paradigm is limited by the requirement that the surfaces are defined over rectangular domains and this leads to topological rectangular patches.

A generalization for an arbitrary topology can be obtained by collapsing some of the control mesh edges, but this creates surfaces with ambiguous surface normal and degenerate parametrization.

NURBS curve profile NURBS CP revolution surface revolution surface

The introduction of a trimmed surface data type in the description of free form objects or parts of solids has provided greater power and flexibility to these representational schemes. A trimmed surface is an ordinary tensor product surface that has a restricted parameter domain, thus overcoming the limit of tensor product surfaces defined over rectangular regions, and allowing for arbitrary domains; the following figure shows an example of a trimmed sphere.

trimmed NURBS sphere within its domain and a domain tessellation.

However, the major bottle necks are in performing robust, efficient and accurate Boolean operations on the sculptured models. The main difficulty is in evaluating and representing the intersection of parametric surface patches and it has hindered the development of solid modelers that incorporate parametric surface models. The topology of a surface patch becomes quite complicated when Boolean operations are performed and finding a convenient representation for these topologies has been a major challenge. As a result, most of the current solid modelers use polyhedral approximations to these surfaces and apply existing algorithms to design and manipulate these polyhedral objects. Not only does this approach lead to data proliferation, the resulting algorithms are inefficient and inaccurate.

The difficulties posed by Boolean combination of free from objects have been partially overcome through the use of trimmed surfaces. The proposal M.S.Casale, Free form solid modeling with trimmed surface patch, IEEE, CG&A (1987), is taken up, extended and adapted for NURBS surfaces and finally implemented in the xcbool system.

NURBS sphere and cube NURBS sphere intersected with NURBS cube.

cube trimmed domain. sphere trimmed domain.

Follows an example between two NURBS free from surfaces; two Coca Cola bottles.

First view Second view Third view

The two bottles are located so that they intersect; we proceed to operate a solid operation of difference between the vertical bottle and the tilted.

First view Zoomed view Shading zoomed view

Vertical bottle trimmed domain Tilted bottle trimmed domain

In the following we show how our ray-tracing algorithm can be used to show up the modeled surface/solid form.

First view Second view Third view