|On this page|
You can use this node to set attributes and optionally group invalid geometry, as well as attempt to automatically repair certain problems.
This node only works on polygonal geometry. It ignores other types of input.
For each type of problem on the Primitives and Edges & Points tabs, you can choose one of three options: “Ignore”, “Mark”, or “Repair”.
Geometry with this problem will have the “valid” attribute set to
be included in the “valid” group.
Geometry with this problem will have the “valid” attribute set to
not be included in the “valid” group.
The node will attempt to automatically repair geometry with this problem.
Repaired polygons will have the “valid” and “repaired” attributes set to
1 and be included in the “valid” and “repaired” groups.
See the help for the Attributes tab below for the names of the “valid” and “repaired” attributes and groups.
Instead of or in addition to automatic repairs, you can use the attributes or groups created by this node with the “Mark” option to visualize problems and repair them manually.
Color invalid polygons red in the viewport
You can create a branch in the node network with a Switch node, or use the bypass flag on the Color node, to switch between the normal polygon colors and the invalid polygon coloring.
The maximum passes allowed over all of the algorithms repairing the geometry in this SOP. Using multiple passes lets the node repair possible problems created by fixing another problem.
Used in the Globally/Locally Small Area repairs to randomize the order in which polygons are repaired. This makes the resulting geometry more uniform. You can try changing it to get a slightly different layout.
Polygons with overlapping or “degenerate” vertices. This problem is difficult to detect and fix manually, but it helps other algorithms (dynamic solvers and other operations in this node) to run smoothly.
Polygons with five or more edges. Cloth simulation works better with quads or triangles. This fix can also be useful for working with modeling formats and software that do not support N-sided polygons.
You should always use this SOP instead of the Divide SOP when cleaning up geometry for use as cloth simulation objects.
After marking or repairing 5+ Edges polygons, there may still be non-convex quadrilaterals.
When this node repairs non-convex quadrilaterals, it triangulates them in the best way for use with the cloth solver.
Different polygons with the same vertices. Repairing removes all but one of the overlapping polygons.
When this option is on, overlapping polygons are both deleted. This is useful when the overlap comes from two objects fusing along an edge. When this option is off, the first overlapping polygon is kept and the second polygon is deleted.
Polygons that overlap/intersect other polygons or themselves. Repairing removes the polygons completely.
A virtual thickness added to geometry objects when checking for intersections as specified above. Objects that are closer to each other than this will be detected as intersecting.
Globally Small Areas
Polygons with small areas compared with the Global Area Threshold. Repairing shrinks these polygons to a point.
Global Area Threshold
A value between 0 (no area) and 1 (the circumference of a bounding sphere containing the input geometry). Polygons with an area smaller than this threshold are marked/repaired.
Locally Small Areas
Polygons with small areas relative to their neighbors (polygons with a shared edge). Repairing shrinks these polygons to a point.
Local Area Threshold
A ratio value of “smaller polygon area divided by larger polygon area”. Polygons with smaller areas than this relative to their neighbors are marked/repaired. For example, a value of
0.1 would repair any polygons less than one-tenth the size of their neighbors.
Polygons whose area is not uniformly distributed (thin or awkwardly shaped), as set by the Uniformity threshold.
A value between 1 (a circle) and zero (totally non-uniform, like a very thin rectangle or a polygon with a small area but large perimeter). Polygons with uniformity lower than this are marked/repaired.
Edges & Points
Setting the edge-related parameters to “Mark” will mark the polygons containing the invalid edges.
Globally Small Edges
Edges with a short length compared to the Global Edge Threshold. Repairing shrinks these edges to the midpoint of the edge.
Global Edge Threshold
A value between 0 (zero length) and 1 (the diameter of a bounding sphere containing the input geometry). Edges shorter than this threshold are marked/repaired.
Locally Small Edges
Edges with a short length, compared to the edges of neighbors (polygons with a shared edge). Repairing shrinks these edges to the midpoint of the edge.
Local Edge Threshold
The minimum allowed edge-to-edge ratio. Smaller values allow larger edge length differences.
Points that don’t belong to a polygon. Repairing removes these points completely.
Marks points whose incident polygons form non-manifold topology around them, i.e. their infinitesimal neighborhood restricted to polygons does not have topology of either a disc or a half-disc.
Enforces all points to become manifold points by minimally duplicating points and reassigning polygons incident to each point to various duplicates of it.
Ignore Winding of Input Polygons
If this checkbox is turned on, maximal manifold polygon patches are detected without taking the given winding of the polygons into effect. A maximal manifold patch is essentially a proper piece of surface with either no boundary or a boundary composed of edges that are incident to either 1 or 3+ polygons.
Prefer Larger Angles Between Neighboring Polygons
When repairing non-manifold points, the repair procedure may have to make decisions on which pairs of polygons incident to the same edges should be paired together to locally form surfaces. If this option is set, preference is placed over choosing pairs which are closer to being coplanar (small normal difference). Otherwise, pairs that form sharp dihedral angles (large normal difference) are connected first.
Visualize Maximal Manifold Patches
When this checkbox is turned on, maximal manifold patches of the input geometry are colored randomly. Visualizing these patches can help you see disconnects between polygons that are expected to be neighbors on the same patch of surface but fail to do so due to various reasons ranging from inconsistent winding (unless Ignore Winding of Input Polygons is selected) to non-manifold topology at boundary points that may be hard to recognize because of degenerate geometry.
This option is overridden if any of the visualization options are selected in the Visualize tab.
Create Manifold Number Attribute
If this checkbox is turned on, a primitive attribute named
manifoldnumber is created that indicates the manifold patch to which each polygons belongs. The generated manifold numbers are in the range of
m - 1, where m is the number of manifold patches. Non-polygon primitives (as well as non-closed polygons) are given a manifold number of -1.
Correct Winding of Polygons to Majority of their Manifold Patch
If this checkbox is turned on, maximal manifold patches are calculated ignoring the winding of the polygons and then the windings of polygons in the same patch are made consistent with the dominant winding of that patch.
Delete Small Manifold Patches
If Repair is chosen as the action on Non-Manifold Points, then this option deletes all maximal manifold patches that have fewer polygons than a desired threshold. This is useful since often repairing non-manifold points may detach small parts of the geometry that prevent the formation of clean manifold patches from the reset. These detached geometry make up manifold patches themselves, but are often composed of very few (often one or two) polygons and are generally unwanted.
Specifies the threshold used in deleting small manifold patches. Any manifold patch with up to this many polygons will be deleted.
The parameters on this tab let you set the names of the attributes created by this node, and optionally create groups.
The name of the primitive attribute used to mark polygons. The default is
valid_poly. Valid polygons will have this attribute set to
1. Marked invalid polygons will have it set to
The name of the primitive attribute used to indicate repaired polygons. The default is
repaired_poly. Polygons edited by this node will have this attribute set to
1. This is a subset of the valid polygons.
The name of the point attribute used to mark points. The default is
valid_pt. Valid points will have this attribute set to
1. Marked invalid points will have it set to
The name of the primitive attribute used to indicate modified points. The default is
repaired_pt. Points edited by this node will have this attribute set to
1. This is a subset of the valid points.
Create a group for each attribute
Creates groups containing the polygons with a particular attribute set to
1. The names of the groups are the names of the corresponding attributes with
_grp added. For example, all polygons with
valid_poly set to
1 will be in a group named
Options in this tab can help visualize points and polygons that are marked and repaired in other tabs.
If selected, the marked points are painted in the chosen color.
If selected, repaired points are painted in the chosen color.
If a point is both marked and repaired, it takes the color selected for repaired points.
If selected, marked polygons are displayed in the chosen color.
If selected, repaired polygons are displayed in the chosen color.
Visualizing points takes precedence over visualizing polygons. Therefore, if any of the “Invalid Points” and “Repaired Points” options are chosen in this tab, the corresponding selections for polygons are ignored.