So how can i take these points and use their location as a loops insert location for the original model?
Procedurally insert edge loops using curve points
5132 8 0-
- SnowballWar
- Member
- 39 posts
- Joined: March 2020
- Offline
I am trying to procedurally insert edge loops. So basically what i want to do is to take an edge loop from a model, make a curve out of it, resample it and use the points of that curve as a insert location for new edge loops. And i am not sure how to do the last part.

So how can i take these points and use their location as a loops insert location for the original model?
So how can i take these points and use their location as a loops insert location for the original model?
Edited by SnowballWar - March 6, 2021 04:45:29
-
- Aizatulin
- Member
- 504 posts
- Joined: July 2005
- Offline
-
- SnowballWar
- Member
- 39 posts
- Joined: March 2020
- Offline
Aizatulin
Hi,
here are some ideas. Edge divide should do the job usually, but it some cases it messes up, but polygons can be rebuild manually using the points from edge divide. Once you have the polygons you can also capture the points by the curve and optionally rebuild it more smoothly.
Thank you for the effort.
This works pretty good, but there is one major problem with it( unless i am missing something ).
It splits every edge the same amount times. While with curve, resample point insert can vary, based on the length of each segment. That's the reason i wanted to use curve points as a insertion reference, because i need that feature.
When i use insert edge loop from the polygon toolbar, it adds a polysplit node with split location coordinates. Is it somehow possible to take the curves points coordinates, and use them in the polysplit node ?
Oh ... and i don't care about the smoothing of the mesh, just loop insertion control. Preserving the initial shape of the model is what matters to me, so the original edge loops and edges should stay.
Edited by SnowballWar - March 8, 2021 07:46:54
-
- Aizatulin
- Member
- 504 posts
- Joined: July 2005
- Offline
If you want equal point count on each curve, you can't resample the curves independently (to maintain quads). So you might probably resample one curve (the first curve). You can use the length between neighbours for example to determine the point count. But if you want to keep the shape anyway. Here is another file with some modifications merged from other files.
-
- SnowballWar
- Member
- 39 posts
- Joined: March 2020
- Offline
Aizatulin
If you want equal point count on each curve, you can't resample the curves independently (to maintain quads). So you might probably resample one curve (the first curve). You can use the length between neighbours for example to determine the point count. But if you want to keep the shape anyway. Here is another file with some modifications merged from other files.
Oh no, not the dreaded skin node!

Seriously though, the reason i abandoned the "curves to skin" approach, discussed in the odforce forum is because things sometimes worked, sometime didn't. The skin node is very unreliable for something like this. That's why i decided that just splitting the geo into loops was a better idea.
For the last example you've posted it worked pretty well for the models i've tried. Tried maybe more than 10 basic cylinder/square type models. The only problem was that i had to manually switch the v wrap in the skin node to on or off because in some cases i had gaps that had to be closed. Fixed that problem by leaving it at off and then used some group gymnastics to procedurally select the gap edges and fill them with the "crosssectionsurface" node. Things were working pretty well.
Then i've tried something pretty basic like the one in the picture:
And the familiar result that ruined my hopes.
Basically i am trying to make a tool that should be fundamental for my module based modeling approach.
1.Create some simple shape.
2.Run it trough the algorithm to get some level of control over the edge loops.
3.Then use those as a base for path deform/sweep ... or other procedures.
I am gonna play around with your latest example a bit more, but i doubt it's gonna work with the skin node. That's why i wanted to use the polysplit node and just transfer the resampled curve point locations to the node.
Edited by SnowballWar - March 10, 2021 07:06:49
-
- Aizatulin
- Member
- 504 posts
- Joined: July 2005
- Offline
I would try something like this:
Keep the curves alive as long as possible. Try to find logic to sort the curves (if not already done). Neighboured curves should be connected by polygons. Now the orientation (vertex order) of the curves should be the same for all curves. The offset between the vertecis (or uoffset) should be, that the area of polygon is as small as possible (from my point of view). All aspects has been covered already to some degree (in the previous files), but the result strongly depends on the input.
Once your curves are clean, you can rebuild them easily to add more subdivisions.
The result of the last picture looks really weird. Can you post the file? Because it looks like, that the vertex order is completely broken.
Keep the curves alive as long as possible. Try to find logic to sort the curves (if not already done). Neighboured curves should be connected by polygons. Now the orientation (vertex order) of the curves should be the same for all curves. The offset between the vertecis (or uoffset) should be, that the area of polygon is as small as possible (from my point of view). All aspects has been covered already to some degree (in the previous files), but the result strongly depends on the input.
Once your curves are clean, you can rebuild them easily to add more subdivisions.
The result of the last picture looks really weird. Can you post the file? Because it looks like, that the vertex order is completely broken.
-
- SnowballWar
- Member
- 39 posts
- Joined: March 2020
- Offline
Sure.
I've made some modifications to your file and i left notes to what i did. I get the same results from your original file so i don't think that i messed up something.
At first the model that was breaking things was made in maya but then i recreated it in houdini with the exact same result. Noticed that when the angle is reduced ( reduce the scale in the edit node ) things get better.
For comparison i also added the other models that i tested. They work perfectly.
I've made some modifications to your file and i left notes to what i did. I get the same results from your original file so i don't think that i messed up something.
At first the model that was breaking things was made in maya but then i recreated it in houdini with the exact same result. Noticed that when the angle is reduced ( reduce the scale in the edit node ) things get better.
For comparison i also added the other models that i tested. They work perfectly.
-
- Aizatulin
- Member
- 504 posts
- Joined: July 2005
- Offline
-
- SnowballWar
- Member
- 39 posts
- Joined: March 2020
- Offline
I did a lot of testing with this. I works pretty well. It still broke in few meshes that were a bit more stretched and twisted but to be fair i don't think it's much of a problem since i can switch between the different methods so it's not that big of a deal. So i am ok with it. Again thank you for the time you invested in this. And thanks for the "exctract_ith" node. I am going to use it from now on.
-
- Quick Links

