
The Fix Intersections node
When to use it
Pushes vertices back out of a surface they have gone through. With nothing wired into Target it works on the mesh against itself; with something wired in, it pushes out of that. Scope says which explicitly, rather than leaving it to whatever happens to be connected. Press Fix Intersections.
How to use it
- 1
Wire the mesh into Mesh
For poke-through, wire the body into Target.
- 2
Optionally paint a Weights mask to limit the fix to a region
0 freezes a vertex completely.
- 3
Press Fix Intersections
Read Intersections Before / After.
Pins
| Pin | Type | Description |
|---|---|---|
Mesh |
Mesh | The mesh to fix. It passes straight through until you press Fix Intersections. |
Target |
Mesh | The surface to stay out of, like the body under a garment. Leave it empty and the mesh is fixed against itself instead. |
Weights |
Weight Map | Optional mask scaling how much of each pass a vertex takes. 0 pins it in place; values in between move it more gently rather than capping how far it can end up. Leave it empty and everything moves freely. Intersections that only frozen vertices could have cleared still get counted and reported. |
Clearance |
Number | Drives the clearance gap from the graph. Leave it empty to use the value in the panel. |
MaxIterations |
Whole Number | Drives the pass limit from the graph. Leave it empty to use the value in the panel. |
Relaxation |
Number | Drives the starting step size from the graph. Leave it empty to use the value in the panel. |
| Pin | Type | Description |
|---|---|---|
Mesh |
Mesh | The fixed mesh. Only vertex positions change, so UVs, skin weights and material sections all survive. With Require Full Resolution on, a run that could not finish sends the input back untouched. |
Unresolved |
Weight Map | Marks every vertex still caught in an intersection on the mesh that went out. Wire it into a mask to see exactly where. Empty after a clean run. |
IntersectionsBefore |
Whole Number | How many intersections the input had: triangle pairs passing through each other, plus vertices sitting inside the clearance gap on a Target run. |
IntersectionsAfter |
Whole Number | The same count on the mesh that actually went out. Zero after a clean run. |
Settings
| Setting | Type | Description |
|---|---|---|
Scope |
Choice | Which intersections to go after: the mesh against itself, against the Target, or both. |
Clearance Fraction |
Number | Size of the gap opened between the two surfaces, as a fraction of the mesh bounds diagonal, so the same number behaves the same on a 2 cm ear and a 200 cm body. Never set it to zero. Landing exactly on the other surface leaves the two flat against each other, which still counts as an intersection, and the solve then grinds away forever on something it cannot clear. |
Max Iterations |
Whole number | How many push-and-remeasure passes the run may spend. Every pass re-checks the whole mesh, so this sets the cost as much as the patience. Running out is reported as a failure, never dressed up as success. |
Relaxation |
Number | How much of each correction goes in per pass. 1.0 pushes the whole way and suits nearly every mesh. Lower it when several sheets are stacked in a deep fold and neighbouring pushes end up fighting each other. This is only the starting step - the solver halves it by itself whenever a pass fails to help. |
Max Displacement Fraction |
Number | Hard ceiling on how far any one vertex may end up from where it started, as a fraction of the bounds diagonal. This is what stops a runaway push from inflating the whole surface into a balloon. Vertices that hit the cap get clamped, counted and named in the report, so the run fails honestly instead of handing back a swollen mesh. |
Smoothing Iterations |
Whole number | Smoothing passes over the moved region, run only once the mesh is already clear, to take the faceting off the repaired patch. If re-measuring finds the smoothing put an intersection back, the whole polish is thrown away and the clean unsmoothed mesh goes out instead. So this can never be the thing that breaks the result. 0 skips it. |
Smoothing Strength |
Number | How far each moved vertex slides toward the average of its neighbours on each polish pass. Capped at 0.5, because past that a pass overshoots the average and amplifies the very ripple it is there to flatten. |
Require Full Resolution |
True/False | On, a run that cannot clear every intersection hands back your input untouched and fails with the counts. Off, it hands back the best partial result with a warning saying what is left. Partial is fine when the leftovers are three triangles in a crevice nobody will ever see. Make it your call though: a half-fixed mesh that looks fixed is how a garment ships with the hip poking through it. |
Recompute Normals |
True/False | Rebuild the shading normals before the mesh goes out. Vertices moved, and old normals read as a lighting seam running right along the repaired patch. Turn it off only when something further down the graph owns the normals. |
Available in Mesh Morpher Graph and Mesh Morpher Studio.