Bi-Linear Surface Patches

Copyright (c) Susan Laflin. August 1999.

The references for this topic are:-
Rogers & Adams chapter 6 section 6.7.
Faux & Pratt section 7.1

Bi-linear Surface

A patch is defined in terms of local coordinates, u and v, which vary from 0 to 1 over the area defined by the patch. Usually u is parallel to the x-axis and v is parallel to the y-axis, but the only requirement is that Ou and Ov are perpendicular to each other. It might be desirable to have them parallel to the tangent and normal to some curve in some circumstances.

The interpolated value r(u,v) at any interior point of the patch is given by the appropriate equation for that patch.

The values of the four corner points may be denoted by r(0,0), r(0,1), r(1,0) and r(1,1).

The equations of the four edge curves are given by r(u,0), r(u,1), r(0,v) and r(1,v).

The equation for r(u,v) must be chosen so that it gives the correct values at the corners and along the boundaries.

For the Bi-Linear Patch, the equation of the surface is given by:

r(u,v) = (1-u)*(1-v)*r(0,0) + (1-u)*v*r(0,1) + u*(1-v)*r(1,0) + u*v*r(1,1)

This may also be written in matrix form

			r(0,0)	r(0,1)		(1-v)
r(u,v)=	(1-u) 	u	r(1,0)	r(1,1)		  v

When u=0.5 and v=0.5, the equation becomes

r = 0.25*[r(0,0)+r(0,1)+r(1,0)+r(1,1)]

which is of course the average of the four corner points.
The edge-curve along v=0 has the equation.

r(u,0) = (1-u)*r(0,0) + u*r(1,0)

which is the straight line joining these two points. In the same way, the other edge curves also give straight lines. Finally, it is easy to check that the four corner points are correctly given. If we insert the values u=1 and v=1 in the equation for this patch, the only non-zero term is r(1,1).

Since there is only one straight line joining the same two points, we may be certain that adjacent patches or tiles do join along the boundary and so the approximating surface does not have any holes in it. However there is likely to be a change or discontinuity in the gradient of the surface as we move from one patch to the next. So long as we stick to the simplicity of the bi-linear equation, we do not have enough variables to make the gradients continuous as well as the surface values.

This means that covering a surface with bi-linear patches is somewhat similar to using armour made up of small metal sqares hinged together to cover the surface. The joins of the patches are straight lines and any two adjacent planes are likely to meet at an angle.