On-Line Geometric Modeling Notes

A Matrix Representation of a
Cubic Bezier Patch


Overview

A cubic Bézier patch has a useful representation when written in a matrix form. This form allows us to specify many operations with Bézier patches as matrix operations which can be performed quickly on computer systems optimized for geometry operations with matrices.

This is an unusual representation for many students as it is not frequently shown in basic courses. If you have not seen this before it is suggested that you begin with the section on matrix representations for Bézier curves in which the equations are simpler and easier to understand.

To get a postscript version of these notes look here.


Developing the Matrix Formulation

A cubic Bézier curve can be written in a convenient matrix form. A bicubic Bézier patch can be written in a matrix form by using methods similar to that for a Bézier Curve. Utilizing the representation of a Bézier patch as a continuous set of Bézier curves we have
equation20
and so the cubic Bézier patch is frequently written
displaymath77
where
displaymath101


Patch Subdivision Using the Matrix Form

Suppose we wish to subdivide the patch at the point tex2html_wrap_inline487. We reparameterize the matrix equation above (by substituting tex2html_wrap_inline489 for u) to cover only the first half of the patch, and simplify to obtain.


equation110
where the matrix tex2html_wrap_inline493 is defined as


equation196
and is identical to the left subdivision matrix for the curve case. So in particular, the subpatch tex2html_wrap_inline495 is again a Bézier patch and the quantity
displaymath267
forms the control points of this patch.


Calculation of the Second Half of the Patch

In the same way, we can obtain the subdivision matrix for the second half of the patch. First we reparameterize the original curve, and then simplify to obtain
equation308
where
displaymath414
which is identical to the right subdivision matrix in the curve case and we obtain a matrix that can be applied to a set of control points to produce the control points for the second half of the patch.


General Subdivision with either Parameter

We can develop a procedure to generate the control points for the first and second portions of the patch when subdivision is done with respect to v. These are
displaymath439
where
displaymath441
The development is exactly parallel to that with respect to u.

Combining these two methods, we can see that the arrays
equation461
segment the patch into quarters, the first array being the quarter that corresponds to tex2html_wrap_inline501, the second to the one that corresponds to tex2html_wrap_inline503, etc.


Summary

We have developed a matrix form for the Bézier patch which parallels the development for the Bézier curve. This representation allows us to develop matrices that, which multiplied by the control point array, calculate the control points of a subdivided portion of the patch.

These matrix equations exist for patches of all orders - we have done order 4 (or degree 3) patches here. However, the matrices are tex2html_wrap_inline505 for a patch of order n, and are not as easily written down.


This document maintained by Ken Joy

Comments to the Author

All contents copyright (c) 1996, 1997
Computer Science Department,
University of California, Davis
All rights reserved.



Ken Joy
Thu Jul 24 12:17:24 PDT 1997