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!
Smooth SOP not respecting attribute mask/group from Intersec
275 3 1-
- Damon_lavenski
- Member
- 6 posts
- Joined: 11月 2017
- オフライン
-
- freshbaked
- Member
- 154 posts
- Joined: 6月 2020
- オフライン
It's hard to say without seeing a hip file or a screenshot of any node parameters but a couple things:
The Smooth SOP group field expects a prim group not a point group which is probably why you weren't having any success with groups.
If you're transferring the color red (1,0,0) back to your main geo to use as a mask you should first color your main geo black if you expect to use the Cd.r as your mask. If you inspect your geo spreadsheet after your attribute transfer you'll likely see that you have some Cd values of (1,0,0) and a bunch of (1,1,1). Red and White. If your R channel is 1 on all your points then Cd.r becomes useless as a mask. Which is why I suggest coloring your main geo black before the attrib transfer.
Or, instead of using color after the intersection analysis, use an attrib create and assign an attribute other than color (like weight). Then transfer that attrib back to your main geo.
Also the weight attribute that Smooth SOP uses doesn't have to be within the range of 0-1, try multiplying your attrib by a large number or use a really high strength value if you think the rest of your setup is correct.
All else fails just attach your hip.
The Smooth SOP group field expects a prim group not a point group which is probably why you weren't having any success with groups.
If you're transferring the color red (1,0,0) back to your main geo to use as a mask you should first color your main geo black if you expect to use the Cd.r as your mask. If you inspect your geo spreadsheet after your attribute transfer you'll likely see that you have some Cd values of (1,0,0) and a bunch of (1,1,1). Red and White. If your R channel is 1 on all your points then Cd.r becomes useless as a mask. Which is why I suggest coloring your main geo black before the attrib transfer.
Or, instead of using color after the intersection analysis, use an attrib create and assign an attribute other than color (like weight). Then transfer that attrib back to your main geo.
Also the weight attribute that Smooth SOP uses doesn't have to be within the range of 0-1, try multiplying your attrib by a large number or use a really high strength value if you think the rest of your setup is correct.
All else fails just attach your hip.
-
- animatrix_
- Member
- 5133 posts
- Joined: 2月 2012
- オフライン
It's hard to see without the hip file, but you can try performing a lerp operation after the smooth operation using your mask attribute:
https://www.sidefx.com/docs/houdini/vex/functions/lerp.html [www.sidefx.com]
https://www.sidefx.com/docs/houdini/vex/functions/lerp.html [www.sidefx.com]
Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com] https://lnk.bio/animatrix [lnk.bio]
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com] https://lnk.bio/animatrix [lnk.bio]
-
- Damon_lavenski
- Member
- 6 posts
- Joined: 11月 2017
- オフライン
-
- Quick Links


