Graphics Reference
In-Depth Information
(3) (Local control) Changing the control point p ij or weight w ij only changes the
formula for p(u,v) over the rectangle (u i ,u i+k ) ¥ (v j ,v j+h ).
(4) (Projective invariance) If the surface p(u,v) is transformed by a projective
transformation, the formula for the new surface is gotten simply by transforming the
homogeneous control points in equation (12.52) and then reprojecting to a formula
in the form of equation (12.56b).
(5) (Local convex hull property) If w ij > 0 for all i and j, then the surface p(u,v)
satisfies a strengthened convex hull property. For each i and j, p((u i ,u i+1 ) ¥ (v j ,v j+1 ))
is contained in the convex hull of the control points p st , where i - k + 1 £ s £ i and
j - h + 1 £ t £ j.
Proof.
See [PieT95].
It is not known whether NURBS surfaces satisfy any variation diminishing
property.
12.12.4.2
Theorem.
Every quadric surface can be expressed as a NURBS surface.
Proof. See [Fari97]. One can show that the only quadric surface that can be para-
meterized by polynomials are the elliptic or hyperbolic paraboloids and parabolic
cylinders. Furthermore, every quadric is a central projection of one of these in R 4 .
Because one can think of a NURBS surface as a B-spline surface in R 4 that is pro-
jected back to R 3 , all of the basic spline algorithms, such as knot insertion, etc., carry
over easily to these surfaces.
Finally, we should note that just like in the case of curves, there are some differ-
ences between rational and ordinary spline surfaces. One can show that not every tri-
angular patch on a quadric can be represented by a rational triangular quadratic
patch. For this and characterizations of when a triangular patch lies on a paraboloid
see [Fari89] or [Fari97].
12.12.5
Efficient B-spline and NURBS Surface Algorithms
B-spline and NURBS surfaces have become very popular like their curve cousins, so
that it is good that efficient algorithms exist for evaluating them and their derivatives.
A good reference for a great many detailed algorithms is [PieT95]. We shall only
describe what one has to do to find points and first partials for the surfaces, which is
all that is needed for rendering.
We begin with B-spline surfaces. The basic steps to evaluate a point on the B-
spline surface p(u,v) are the following:
(1) Use Algorithm 11.5.4.1 to find the u-knot span that contains u, that is, find i so
that u Π[u i ,u i+1 ) or u Π(u i ,u i+1 ].
(2) Use Algorithm 11.5.4.1 to find the v-knot span that contains v, that is, find j so
that v Π[v j ,v j+1 ) or v Π(v j ,v j+1 ].
(3) Compute that part of the sum in equation (12.46) that involves the coefficients
N i-k+1,k (u), N i-k+2,k (u),..., N i,k (u) and N j-h+1,h (v), N j-h+2,h (v), ..., N i,h (v). These are
the only coefficients that do not vanish at the given u and v, so that
Search WWH ::




Custom Search