Smoothing Dialog

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 strength parameter.

Smoothing Type

• 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 surface.
• 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.

Smoothing Parameters

• 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 value.
• 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.

Spherical Options

• 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.

Surface Normals

• Update Surface Normals After Smoothing - If checked, the surface normals are updated when smoothing completes.