| ![]() | |||||||||
Computing Values and Derivatives of B?ezier and
B-spline Tensor Products
Computer Science Department
University of Waterloo
Research Report CS-93-31
Stephen Mann
University of Waterloo
Tony DeRose, Georges Winkenbach
University of Washington
Abstract
When evaluating tensor product surfaces it is often necessary to calculate both the position and the normal to the surface. We give an efficient algorithm for evaluating B?ezier and B-spline tensor products for such information. The algorithm is an extension of a method for computing the position and tangent to a B?ezier curve, and is asymptotically twice as fast as the standard bilinear algorithm. 1
1 Introduction
Many applications require evaluating both the value and derivatives of a function. For example, one way to generate an offset to a degree n B?ezier curve F (t) = PPiBni (t) is to evaluate the position and normal to the curve at a sufficiently large number of values of the parameter t. Similarly, a degree n ? m tensor product B?ezier surface
F (t1; t2) = X
i;j
Pi;jBni (t1)Bmj (t2)
is often rendered by tessellating the surface (for reasons that will become clear in Section 2, we use superscripts to differentiate between the parametric directions of F ). To use smooth shading, both the position and the normal must be evaluated for a sufficiently large number of values for t1 and t2. Finally, scalar tri-variate B-spline functions have been used for solid three dimensional textures and bump mapping. The
1This work was supported in part by the Xerox Corporation, Hewlett-Packard, the Digital Equipment Corporation, and the National Science Foundation under grant CCR-8957323.