Surfaces in Computer Graphics (Geometric Modeling) Part 1

Introduction

This topic describes the main parametric and implicit surfaces that one encounters in computer graphics and geometric modeling. These are the surfaces that are often referred to as “sculptured" or "free-form” surfaces to distinguish them from the piecewise linear ones. By in large, the material is a natural extension of what was developed for curves in the last topic. For that reason it is important that the reader understand the material in that topic before starting this one. Many facts and algorithms dealing with surfaces are easy if one understands their curve analogs.

Tangent planes for surfaces, in particular their normals, play an important role just like the tangent lines did for curves. In the parametric case the planes will be defined from certain partial derivatives associated to the parameterization. In the implicit case, they will be defined from their equations.

There are many types of smooth surfaces and different ways to represent them. Some representations involve interpolating data and others only approximate it. A helpful way to organize the subject is by categorizing the general principles motivating the various representations. Using terminology not normally used by mathematicians, but common in practice with engineers and craftsmen, three such principles are lofting, superposition, and a tensor or Cartesian product representation. Ruled surfaces, Coons surfaces, and B6zier or B-spline surfaces are examples of these three principles, respectively.


Lofting is sometimes considered as a special case of a more general surface construction referred to as a directrix-generator representation. This is a representation that describes a surface in terms of sweeping a generator curve along a set of guidelines. The three ingredients for such a representation are

(1)    a set of longitudinal curves called directrices (also called meridians in mathematics),

(2)    a correspondence rule that relates each point of a directrix with a unique point on every other directrix, and

(3)    a generator rule that defines a curve through all the points on the directrices that are related by the correspondence rule.

Figure 12.1 shows an example of how a surface can be defined by a directrix-generator type of construction. It is a traditional conic lofting example of an airplane fuselage. The directrices are conics and the generator consists of two conics, one above the maximum width line and one below. The correspondence rule relates points with equal x-values. Many surfaces can be defined by means of a directrix-generator construction. [Sabi90] gives a number of explicit examples. In particular, ruled surfaces and surfaces of revolution clearly fall into this class of surfaces. The directrices for the ruled surface are the bounding curves and the generators are the straight-line segments that connect the corresponding points on these curves. A surface of revolution has a single directrix, namely, the curve being rotated, and the generators are circles. The idea of a directrix-generator representation can be generalized to allow directrices to act as control points rather than being interpolated.

One of the driving forces behind the existence of the many types of surfaces is to make it easy for users (and programmers for that matter) to define the ones they need. Providing interactive descriptions of sets of three-dimensional points is much harder than for sets in the plane. One of the obvious reasons is that one is trying to describe three dimensions on a two-dimensional medium, the computer screen. To make geometric modeling programs “user friendly" one wants to avoid making a user enter complicated mathematical equations. One common approach to accomplish this is to let users define surfaces from one-dimensional sets using natural operations. For example, to define a surface of revolution a user needs only specify the curve to revolve and the axis of rotation.

Sections 12.2-12.12.1 describe some of the well-known basic surface types starting with the simple and intuitively easy to understand surfaces and working up to the more complicated ones. In Section 12.12.2 we show how the multiaffine approach to curves carries over to surfaces. Although parameterizations typically have rectangular domains, there are times when triangular domains are more convenient and Section 12.12.3 discusses those.

 A fuselage as a directrix-generator surface.

Figure 12.1. A fuselage as a directrix-generator surface.

Rational B-spline and NURBS surfaces are defined in Section 12.12.4 and efficient evaluation algorithms for both B-spline and NURBS surfaces are discussed in Section 12.12.5. Section 12.12.6 is on interpolation using B-spline surfaces. Section 12.13 defines the very special cyclide surfaces. Sections 12.14-12.16 revisit, in the context of surfaces, some of the topics we encountered with curves in Sections 11.8-11.12. We discuss the subdivision of surfaces into smaller patches, the addition of control points and knots, composite surfaces, and fairing surfaces. Next, in Section 12.17, we switch from smooth surfaces and describe the class of polygonal surfaces defined by recursive subdivision. Section 12.18 gives a summary of some of the main points to remember when it comes to curves and surfaces and we finish with a few historical comments in Section 12.19.

Surfaces of Revolution

Surfaces of revolution are a frequently encountered type of surface. Spheres and cylinders can be thought of as surfaces of revolution. In general, one gets an “object of revolution” by revolving a set about some arbitrary axis. To analyze what this means in more detail, consider the simplest object to revolve, namely, a point. In that case one gets a circle in a plane orthogonal to the axis with center on the axis and radius equal to the distance of the point to the axis. It follows that one can think of an object of revolution as consisting of a union of circles centered on the axis, one for each point of the object being revolved. This also suggests that a way to parameterize a point p of an object gotten by revolving a curve about an axis is to use two parameters. One parameter is the parameter of the point on the curve, which gave rise to p and the other is the angle through which it was rotated. For general objects of revolution we would need k + 1 parameters, where k is the number of parameters needed to parameterize the object being revolved.

Our actual definition of a surface of revolution, which will be in terms of a parameterization, will restrict itself to the case where a curve is being revolved about the x-axis. This will simplify the definition. Besides, one can get surfaces of revolution about an arbitrary axis from this using rigid motions. Another simplifying hypothesis will be to assume that the curve lies in the x-y plane. Extending the definition to allow arbitrary space curves is left as an exercise for the reader (see Exercise 12.2.1.). One should note however that although it is easy to define an “object” of revolution, it is not easy to guarantee that the result will be a surface. We shall see that even in the special cases we shall analyze it is not trivial to ensure that the result will not have any singularities.

Definition. Lettmp5862-327be    a    planar    parametric    curve and lettmp5862-328

Define a function

tmp5862-329tmp5862-330tmp5862-331

by

tmp5862-332

The subsettmp5862-333is    called a surface of revolution about the x-axis

for angles c to d with respect to g. The curvestmp5862-334I for fixedtmp5862-335are the meridians of the surface of revolution and the curvestmp5862-336i for fixed t  are    called the circles of latitude. Iftmp5862-337then X is called a full surface of revolution. The func

tion p is called the standard parameterization of X with respect to g.

Figure 12.2 shows the important special case where we revolve the graph of a realvalued function ‘tmp5862-338Using    the    standard    parameterization    g(t)    =    (t,f(t))    of    the

graph of f and replacing t by x in equation (12.1), the surface obtained by revolving the graph of f about the x-axis is parameterized by

tmp5862-345

artial derivatives are easy to compute for this surface:

tmp5862-346

From this one right away knows the tangent planes at every point, because the cross product of the partial derivatives is a normal vector (assuming that the partial derivatives do not vanish).

Although surfaces of revolution are conceptually easy to describe, there are some potentially nasty details that can give a programmer a lot of headaches. Some problems are:

Degenerate Cases of the Curve g. The curve may have self-intersections. If g is a constant map, then the "surface” becomes a circle.

A surface of revolution.

Figure 12.2. A surface of revolution.

A surface of revolution tangent plane problem.

Figure 12.3. A surface of revolution tangent plane problem.

The Curve Crosses the X-axis. For example, the surface of revolution obtained by rotating the segment [A,B] in Figure 12.3 about the x-axis has no tangent plane at C where the curve crossed the axis. Even if a tangent plane exists at such points, such as when one revolves the upper half of the unit circle about the x-axis to get the unit sphere S2, problems may arise because the standard approach to getting the tangent plane using the partials of the parameterization may fail. See Exercise 12.2.2.

Choosing a Direction for the “Outward” Normal. The direction would most likely depend on the orientation of the curve, but the curve may zigzag.

The main problems are typically caused by partial derivatives vanishing so that it is messy trying to find the tangent plane at a point of the surface.

Next, we look at a number of important special cases of surfaces of revolution and work out some concrete examples.

Consider the full surface of revolution S obtained by rotating a line segment X about the x-axis.

Case 1: If X is parallel to axis, then S is a cylinder. See Figure 12.4(a).

Case 2: If X is skew to axis, then S is a truncated cone. See Figure 12.4(b).

Case 3: If X is orthogonal to the axis, then S is an annulus. See Figure 12.4(c).

Example. Assume that S is the surface of revolution obtained by rotating the segment X = [(0,1),(2,3)] about the x-axis. We want to find the tangent plane to S attmp5862-349

Solution. The function

tmp5862-351

parameterizes S and

tmp5862-352Interesting surfaces of revolution.

Figure 12.4. Interesting surfaces of revolution.

Sincetmp5862-354it    follows    thattmp5862-356

are a basis for our tangent plane. Finally,

tmp5862-357

is a normal vector to the plane, so that its equation is

tmp5862-358

or

tmp5862-359

Example. Assume that S is the surface of revolution obtained by rotating the segment X = [(3,1),(3,3)] about the x-axis. We want to find the tangent plane to S at p = (3,0,2).

Solution. The surface S is parameterized by

tmp5862-360

and

tmp5862-361

Sincetmp5862-362it    follows    thattmp5862-364

are a basis for our tangent plane. Finally,

tmp5862-365

is a normal vector to the plane, so that its equation is

tmp5862-366

or

tmp5862-367

Next, if we rotate a semicircle about an axis whose endpoints lie on the axis, then we get a sphere. In the case of the semicircle of radius r about the origin, we can parameterize its points with the map

tmp5862-368

This leads to the following parameterization of the sphere of radius r about the origin:

tmp5862-369

See Figure 12.5(a). The partial derivatives

tmp5862-370

define the tangent planes except at the two poles (±r,0,0) where they vanish. The tangent planes at those two points have to be handled as a special case unfortunately.

If we rotate a circle about an axis and if this circle does not meet the axis, then we get a torus. As a special case, let T be the torus obtained by rotating the circle of radius r with center (0,R,0), r < R, about the x-axis. See Figure 12.5(b). Here is another natural way to visualize the standard parameterization of T. Let Pq be the plane through the x-axis that makes an angle Θ with the x-y plane. This plane intersects T in a circle Cq with center Ruq, where uq = (0,cos Θ, sin Θ) is the unit vector in the y-z plane that makes an angle Θ with the y-axis. Parameterizing the points of Cq by the angle f that the ray from the center of Cq makes with the x-axis corresponds to the map

Surfaces of revolution: sphere, torus, and paraboloid.

Figure 12.5. Surfaces of revolution: sphere, torus, and paraboloid.

tmp5862-372

This induces the following parameterizationtmp5862-373of    T

tmp5862-375

with partial derivatives

tmp5862-376

12.2.3 Example. We want to find the normal vector and tangent plane to the torus defined by equation (12.7) with r = 2 and R = 5 at p = (0,0,7).

Solution. Sincetmp5862-377equations (12.8) implies that

tmp5862-379

are a basis for the tangent plane. It follows that (0,0,14) = (-2,0,0) x (0,-7,0) is a normal vector and the plane has equation

tmp5862-380

or

tmp5862-381

If we rotate half of a parabola about its axis, then we get a paraboloid of revolution (also called an elliptic paraboloid). See Figure 12.5(c). If we do the same thing to a hyperbola, we get a hyperboloid of revolution (also called a hyperboloid of one sheet).

Example. Let S be the paraboloid of revolution obtained by rotating the part of the parabolatmp5862-382about the x-axis. We want to find the tangent plane

and normal to S at p = (4,0,2).

Solution. The standard parameterization for S is

tmp5862-384

Sincetmp5862-385and

tmp5862-387

evaluating these vectors attmp5862-388and    taking    the    cross    product    gives    us    that    (1/2,0,-2) is a normal vector, so that

tmp5862-390

or

tmp5862-391

is the equation for the tangent plane.

Next post:

Previous post: