To identify the important features of the model, we use a multiresolution
approach:
we first convert the mesh to the Progressive Mesh format. This representation
keeps a base mesh and
a sequence of vertex splits operations (each operation takes a vertex in
the mesh and replaces it with an edge connecting its old location and a
new vertex). Every prefix of the sequence does its best to approximate
the geometry of the original model. Operations that induce large geometric
changes correspond to important features of the original model. We select
a few "important" vertex splits. We change the geometry of the model in
the neighborhood of
the vertex inserted by each of these vertex splits: first, we trace this
neighborhood through the refinement operations to
the highest detail mesh.
Next, we perturb each vertex, in a direction normal to the surface,
by an amount computed as a function of the distance to the center of the
region (more
exactly, to the vertex introduced by the selected vertex split).
We have experimented with several functions, of varying complexity
and smoothness:
|
|
|
1 - r | 2r3 - 3r2 + 1 | -21r5 + 45r4 - 25r3 + 1 |