We define a local patch at any surface point as a discrete surface patch consisting of a set of neighboring 3D points defined by the connectivity of the Delaunay triangulation. One way to compute the differential characteristics of the fiducial surface point is to fit a polynomial surface to all the neighboring points, and compute the differential properties directly from the polynomial surface fit. Since differential properties are local, this is all that are needed. We have chosen to work with quadric surface patches, assuming the local patches are well behaved such that a biquadric polynomial can approximate a patch sufficiently closely.
With the fiducial surface point being taken as the origin, the fitting procedure is one of invariant least-square surface fitting, which first involves estimation of the tangent plane to the surface. From , we know given a set points P in , the ``scatter matrix'' is defined as the symmetric matrix :
where for any point P, x= (, , ), is the weighting coefficient which is inversely proportional to the distance between the fiducial surface point and point . Then, for the three eigenvectors of the scatter matrix , the two eigenvectors , , corresponding to the two largest eigenvalues , , are the two tangent vectors which determine the tangent plane to the surface patch, while the eigenvector corresponding to the smallest eigenvalue is pointing in the normal direction. To make the normal directions consistent among all the vertex points on the whole surface, we would like to have the outward normals. So we compute the angle between the normal from tessellation (which is always outward) and the normal from scatter matrix (which can be either inward or outward). If the normal from scatter matrix is judged to be outward, we keep it and the
Once we decide the normal and two tangent directions, we use them as a local reference frame in which the local surface patch is embedded. The biquadric fit involves finding the six coefficients of the polynomial:
where the coordinates are measured along the tangent directions, and the coordinate is measured along the normal direction. If there are at least five neighboring points, say points, the least-square estimate of the six coefficients are evident. In matrix form, the coefficient vector which minimizes the fit error is:
where is a x 6 matrix with row being [1.0], is a column vector of the values. Once the coefficient vectors are found, computing the actual differential properties on the fiducial point is straightforward.