A Smoothing Displacement Function
Since we have a mechanism to create images with displacements, it is useful
to have a displacement that creates a smooth mesh.
This would allow rendering smoothed versions of tessellated models
with or without additional displacements.
To make the problem as local as possible, we assume the smoothing
displacement only has knowledge of a given triangle's vertices and
vertex normals. Knowledge about neighboring triangles
would allow a smoother surface, but we leave that as future work.
Our goal is to create a simple smoothing displacement as a proof
of concept.
Although examining how to smooth triangle meshes has been
examined by many researchers (e.g., [7]),
our problem is different in that our function must have the
algebraic form of a height function in barycentric coordinates with
respect to barycentric interpolated normals.
Figure 8:
An icosahedron with a smoothing displacement that only
uses the vertices and vertex normals for the triangle
being displaced for
.
 |
We would like the displacement to interpolate the triangle vertices, and
have a smooth tangent plane on the transition between two
adjacent triangles. This implies a number of constraints:
- the surface must depend only on the vertices and vertex normals,
- the surface must be smooth over the triangle,
- the surface must interpolate the vertices of the triangle,
- the surface normal at each vertex must match the prescribed vertex
normals,
- the tangent plane along each edge of the surface must match that
constructed on an adjacent triangle, so that joined patches meet with
continuity.
The final requirement listed above is the one which is the most
difficult to satisfy, because Hermite (derivative) interpolation is more
difficult to enforce over a line than at single points.
We use the Coons patch approach to construct our surface. First, boundary
curves and prescribed tangent planes are constructed using ordinary Hermite
interpolation. Then we use transfinite interpolation to construct three
surfaces which interpolate the boundary curves and tangents along two of the
edges. These three surfaces are blended in such a way as to preserve the
derivatives and remove the ``bad'' edges from the final surface. The
surface will be constructed in terms of barycentric coordinates. The
approach applied to an icosahedron is shown in
Figure 8.
Note that in our entire discussion the vertex normals
are assumed to be outward facing and unit-length.
However, the interpolated normals are not necessarily unit-length,
i.e. they are not automatically renormalized.
Subsections
Comments: Brian Smits
2000-06-02