To see what blending functions are required, consider the edge
where
. The surfaces
and
have
the proper behavior on this edge, but
does not. We must
therefore have both the blending function
, and its derivatives with
respect to
and
, be zero for
. Again we are in the
realm of Hermite interpolation; we blend based on the function
![]() |
|||
![]() |
|||
![]() |
There is a great deal of repetitive computation in the above
exposition. In our implementation, we have a single function which, when
passed two vertices and corresponding unit normals, returns the height
function of the interpolated curve. A similar function returns the surface
normal. Another function effects the
surface function by
evaluating the boundary curves at
and
and applying Hermite interpolation. This function is called three
times, each time with the vertices ``cycled'', and the resulting three height
values are blended according to the blending function.
The Hermite interpolation was done with respect to the contrived edge surface
normal
in this exposition, but that surface normal could be anything, as
long as it matches the vertex normals. For example, if one of the edges of
the triangle were part of a ``crease'' in a mesh, the edge surface normal
could be different than that of the adjacent triangle.
Comments: Brian Smits