Hello everyone,
I’m a Maya user recently making the jump to Houdini and I’m currently setting up a Vellum cloth project. I’m trying to build a procedural "de-intersector" to clean up self-intersecting geometry (knees/elbows) before the solver kicks in. I’d like to keep this as "SOP-native" as possible with minimal VEX.
The Workflow:
I’m using an Intersection Analysis SOP to generate points at the self-intersection areas.
I then use an Attribute Transfer SOP to transfer @Cd (red) from those points onto my main geometry to create a mask.
I've verified in the viewport and Geometry Spreadsheet that the Cd and mask attributes are correctly transferring to the points on my main mesh.
The Issue: I cannot get the Smooth SOP (or Peak SOP) to respect this mask.
Things I’ve tried:
Group Field: I’ve tried using @Cd.r > 0 and @mask > 0 in the Group field. When the field is empty, the whole mesh smooths correctly. As soon as I add the attribute expression, the node does nothing.
Hard Groups: I used a Wrangle to set a point group: if(@mask > 0) setpointgroup(0, "fix", @ptnum, 1);. Even with the "fix" group selected in the Smooth SOP, there is no deformation.
Weight Attribute: I enabled "Use Weight Attribute" in Smooth 2.0 and pointed it to mask, but the smoothing strength doesn't seem to apply.
Manual Painting: If I use an Attribute Paint SOP to manually paint the mask, it works. This suggests my procedural mask from the Attribute Transfer is "invisible" to the Smooth SOP for some reason, even though I see it in the spreadsheet.
I know I could use a VDB/SDF approach, but I’m trying to keep my original topology/UVs intact.
Does anyone know why a transferred attribute would fail to trigger a Smooth SOP when a painted one works? Am I missing a step regarding attribute class (Point vs Vert) or precision?
Any suggestions or example files would be greatly appreciated!