The Dissolve node doesn’t work the way I expected

   321   1   0
User Avatar
Member
3 posts
Joined: March 2025
Offline
Image Not Found


I’m trying to solve an optimization issue by removing every second edge. In Maya this is straightforward, but doing it procedurally in Houdini is incredibly complicated for me.

In the images there are “strips” that I want to optimize. Using a For-Each loop, I have groups with selected edges that I want to delete, but Dissolve either removes the entire geometry or leaves me with only points.

Is there a proper way to do this so that the geometry remains intact but without the selected edge loops?

I’ve been stuck on this for two days and can’t make any progress. I’ve tried almost everything I know but still can’t solve it.
Can anyone advise?

Thank you.
Edited by Xavier32 - March 2, 2026 13:09:15

Attachments:
disolve.png (158.1 KB)
diss_line.png (81.9 KB)
lines_2.png (136.4 KB)
lines_class.png (15.4 KB)

User Avatar
Member
42 posts
Joined: March 2025
Offline
This is a problem with Houdini's geometry architecture that has no easy solution.
Edges in Houdini aren't entities and therefore don't have numbers, can't be iterated over, and so on. This is where all the unsolvable problems with edge enumeration stem from. We have half-edges—the side of a polygon between two points. And a classic edge is two half-edges from each polygon with common points. It's very complicated. So it's better not to get into it and limit yourself to the dissolve node. But what does it need? It needs a group of edges. But how do you get one?
How would I do it? We need an intermediary with numbers.
1) Turn the edges into individual lines—polygons—which have numbers. If your geometry is complex and the numbering is chaotic, sort them by the desired axis using the sort node. 2) Group every other polygon using group by range and delete them. 3) The remaining lines coincide with the edges of the original mesh that need to be deleted. Here's the tricky part: transition from lines back to edges and dissolve those edges. Create an edge group (!), for example, group1, from all your lines using a simple group node with the base group checkbox enabled. Perform a group transfer to your geometry and select your group of all edges, group1, in the edge section. The left input (to) is your source geometry, and the right input (from) is your lines. BE SURE to set a very small distance, since your points at both inputs coincide precisely in space and you don't need to connect other edges. Now your source geometry has a group of edges that geometrically coincide with your lines, which will geometrically coincide with what you want.
And you dead-end dissolve this group.
The screenshot shows an example. Visually, everything is simpler than I described.
Essentially, we did what you'd expect with edges, except we had to switch to lines to get numbers and iterate, and then back to edges. This solves the problem of edges not having numbers.
Edited by Gaalvk - March 10, 2026 08:45:59

Attachments:
Screenshot 2026-03-10 152649.jpg (46.3 KB)

  • Quick Links