Bézier surfaces are a species of mathematical spline used in computer graphics, computer-aided design, and finite element modeling. As with Bézier curves, a Bézier surface is defined by a set of control points. Similar to interpolation in many respects, a key difference is that the surface does not, in general, pass through the central control points; rather, it is "stretched" toward them as though each were an attractive force. They are visually intuitive, and for many applications, mathematically convenient.
Bézier surfaces were first described in 1962 by the French engineer Pierre Bézier who used them to design automobile bodies. Bézier surfaces can be of any degree, but bicubic Bézier surfaces generally provide enough degrees of freedom for most applications.
A given Bézier surface of degree (n, m) is defined by a set of (n + 1)(m + 1) control points ki,j where i = 0, ..., n and j = 0, ..., m. It maps the unit square into a smooth-continuous surface embedded within the space containing the ki,j s – for example, if the ki,j s are all points in a four-dimensional space, then the surface will be within a four-dimensional space.
evaluated over the unit square, where
is a basis Bernstein polynomial, and
is a binomial coefficient.
Some properties of Bézier surfaces:
- A Bézier surface will transform in the same way as its control points under all linear transformations and translations.
- All u = constant and v = constant lines in the (u, v) space, and – in particular – all four edges of the deformed (u, v) unit square are Bézier curves.
- A Bézier surface will lie completely within the convex hull of its control points, and therefore also completely within the bounding box of its control points in any given Cartesian coordinate system.
- The points in the patch corresponding to the corners of the deformed unit square coincide with four of the control points.
- However, a Bézier surface does not generally pass through its other control points.
Generally, the most common use of Bézier surfaces is as nets of bicubic patches (where m = n = 3). The geometry of a single bicubic patch is thus completely defined by a set of 16 control points. These are typically linked up to form a B-spline surface in a similar way as Bézier curves are linked up to form a B-spline curve.
Simpler Bézier surfaces are formed from biquadratic patches (m = n = 2), or Bézier triangles.
Bézier surfaces in computer graphics
Bézier patch meshes are superior to triangle meshes as a representation of smooth surfaces. They require fewer points (and thus less memory) to represent curved surfaces, are easier to manipulate, and have much better continuity properties. In addition, other common parametric surfaces such as spheres and cylinders can be well approximated by relatively small numbers of cubic Bézier patches.
However, Bézier patch meshes are difficult to render directly. One problem with Bézier patches is that calculating their intersections with lines is difficult, making them awkward for pure ray tracing or other direct geometric techniques which do not use subdivision or successive approximation techniques. They are also difficult to combine directly with perspective projection algorithms.
For this reason, Bézier patch meshes are in general eventually decomposed into meshes of flat triangles by 3D rendering pipelines. In high-quality rendering, the subdivision is adjusted to be so fine that the individual triangle boundaries cannot be seen. To avoid a "blobby" look, fine detail is usually applied to Bézier surfaces at this stage using texture maps, bump maps and other pixel shader techniques.
A Bézier patch of degree (m, n) may be constructed out of two Bézier triangles of degree m + n, or out of a single Bézier triangle of degree m + n, with the input domain as a square instead of a triangle.
A Bézier triangle of degree m may also be constructed out of a Bézier surface of degree (m, m), with the control points so that one edge is squashed to a point, or with the input domain as a triangle instead of a square.