During an iteration of smoothing, a node's new coordinate is the sum of
the node's pre-smoothed coordinate and an average of its neighboring
node's coordinates. The ratio of the the node's pre-smoothed
coordinate and the neighboring nodes' coordinates is controlled by the
- Normal Smoothing -
Instead of using the neighboring nodes, the triangle's that use the
node as a vertex are used for the neighboring average. For each
triangle, its center (the average of the triangle's three nodes) is
determined along with the area of the triangle. The triangle's
weight is the ratio of its area to the sum of all of the node's
triangles' area. This weight is multiplied by the coordinate of
the triangle's center and these weighted triangle centers are summed to
create the neighbor average.
- Crossover Smoothing -
Initially the surface is examined for crossovers. If there are no
crossovers, the smoothing process stops. If there are crossovers,
only nodes that are identified as crossovers and their neighbors to Node Depth receive Normal
Smoothing. This whole process is repeated for Number of Cycles times.
- Curvature Smoothing -
First, surface curvature is computed. Next, for each node, a
vector is created that is the product of the node's surface
normal multiplied by the nodes curvature. This vector is then
added to the node's coordinate. This process simulates smoothing
using level-sets and tends to inflate a surface. However, this
algorithm is experimental and tends to produce a jagged, inflated
- Flat Surface Overlap Smoothing
- During flattening, regions of a flat surface may overlap. If
overlap is detected, those nodes that are in the overlapping region
receive linear smoothing in an attempt to remove the surface
overlap. This process is repeated for Number of Cycles.
- Landmark Constrained Smoothing
- Nodes that are identified as landmarks are not smoothed and their
coordinates do not change. Nodes that are neighbors of landmarks,
intially use a neighbor average that is the average coordinate of its
neighbors. However, this average is adjusted for each neighbor
that is a landmark by a vector (2*L - A - B where L is the
neighbor that is a landmark, A is the previous neighbor and B is the
neighbor after the landmark neighbor) that prevents this landmark
neighbor from being pulled too close to the neighboring landmark
node. Nodes that are neither landmarks nor neighbors of
landmarks, receive linear smoothing.
- Landmark Neighbor Constrained
Smoothing - Prior to smoothing, for each landmark node, an
offset is created that is a vector from the average of the landmark
node's neighbors to the landmark node. Next, for each node that
is the neighbor of a landmark, this node's coordinate is altered by the
average of the offsets assigned to the neighboring nodes that are
landmarks. During smoothing, landmark nodes receive no
smoothing. Neighbors of landmark nodes receive linear smoothing Edges Every X Iterations; during
other iterations they are not smoothed. Nodes that are neither
landmarks nor neighbors of landmark receive linear smoothing.
- Linear Smoothing - The
neighbor average is simply the average coordinate of the node's
immediate neighbor nodes.
- Strength - The weight of
a neighbor average and the node's coordinate, specifically XYZ-OUT =
XYZ-IN * (1 - strength) + NEIGHBOR-XYZ * strength. When
strength is one, the node's new coordinate is the neighbor
average. If strength is zero, no smoothing takes places.
- Iterations - The number
of iterations of smoothing.
- Edges Every X Iterations -
If the surace has open or cut topology, the edges are only smoothing
when the current smoothing iteration is a integer multiple of this
- Number Of Cycles - Some
smoothing processes are repeated for this number of cycles.
- Node Depth - For some
smoothing processes, only specific nodes and their neighbors to this
depth are smoothed.
- Max Curvature - Used by Curvature Smoothing to limit the
curvature for a node.
- Project to Sphere Every X
Iterations - If this option is checked, the surface is
reprojected to a sphere when the current iteration is an integer
multiple of this value.
- Update Surface Normals After
Smoothing - If checked, the surface normals are updated when