[comp.graphics] Approx. Bezier Surfaces w/Bi-cubic B-surfaces?

vsh@etnibsd.UUCP (Steve Harris) (03/09/90)

	[This article is being posted (belatedly) for a friend.]
	[Please see the end of the article for his email address.]

Is anyone out there familiar with techniques for approximating Bezier
surfaces of degree 4-7 with B-spline surfaces of order 4 (degree == 3,
bi-cubic)?  Degree 2 and 3 Bezier surfaces can be easily approximated since
they are special cases of the bi-cubic B-spline surfaces.  Unless I'm
mistaken, which is entirely possible, the others, the degree >= 4
cases, are not so obvious.

One approach I'm considering is:

1) Generate the points on the Bezier surface (using the conventional
   approach).
2) Divide these points into sub-regions.
   a) What criteria should I use to pick the subregions?  Number of
      Control points, Tangency, curvature, other?
3) Create bicubic B-surfaces which approximate these regions.
   a) Anyone got any good ideas on how to accomplish this with finite
      workstation-type resources?

The ultimate goal here is to produce a B-surface which looks like the
Bezier used as input.  Other requirements, such as nth order continuity
at the joints, although desirable, are not necessities.

I've been looking through Faux & Pratt (Computational Geometry ...), but there
is not much mention of approximation techniques which produce b-splines.
Also I'm trying to get through Bartels, Beatty & Barsky (Intro. to
B-splines ...) but I figure it will be sometime in the middle of summer
before I've mastered the concepts presented there enough to derive the above
desiderata.  Can anyone out there suggest a source which might have a direct
bearing on this problem?  Can anyone offer a suggestion for where I may
have gone wrong in my analysis or my approach?  Any help appreciated.

  ____,.,_..,__.,_.,__     Sean Philip McElroy
   __'..__._,_.__.__.__    Cognition Corp.
   _,___`_.'__.__.__.__    755 Middlesex Turnpike, Billerica, MA 01821
  ___`..'_,___.__.__,_     dandelion!sean@apollo.com

rhbartels@watcgl.waterloo.edu (Richard Bartels) (03/11/90)

In article <1120@etnibsd.UUCP>
dandelion!sean@apollo.com posts the question:
>
>[cubic Bezier surfaces are]
>...special cases of the bi-cubic B-spline surfaces.  Unless I'm
>mistaken, which is entirely possible, the others, the degree >= 4
>cases, are not so obvious.
>

There is nothing special about cubics.  If a B-spline has as many
knots as its order at every joint, it reduces to the Bezier basis
polynomial.  All Bezier curves and tensor-product surfaces of whatever
order are special cases of B-spline curves and tensor-product surfaces
of the same order (in the same sense that this is true of the cubic case).
Bezier's are simply B's with the highest possible knot multiplicities.

Perhaps the person originally posing the question had something else in
mind.  If the Bezier surface had higher continuity than a Bezier surface
has a right to enjoy, for example a cubic Bezier surface with continuity
in second derivatives between the patches, then the surface can be
re-represented in terms of B-splines with lower knot multiplicity,
for example cubic B-splines with single knots (the B-splines most
people think of as the "normal and reasonable" ones).  The way to
get from the Bezier representation to the B-spline representation
(or from the "high knot multiplicity B-splines" to the "low multiplicity
knot B-splines") is by, you guessed it, "removing knots".  We didn't
cover that one in the book, but there is a brief mention of the concept
in a recent article by Piegl and Tiller in IEEE CG&A on drawing circles
with rational splines.

-Richard