Over the past few years I've been working on a masterclass for Houdini and one of the problems that I often ran into
is the general lack of a reliable method to cut polygon surfaces using a simple input curve, surface or even just a point.
Yes there are several nodes that do this to some extent, but they all have their issues.
- The Boolean SOP can cut Seams but requires an intersecting surface to do so and it has serious issues with coincident faces.
- The Intersect Stitch SOP can cut points into edges but lacks precision when working with surfaces that are not on a cardinal plane.
- The Knife SOP lacks the ability to make fine cuts because it just cuts in an infinite slice.
- And the PolySplit while powerful, can only handle one cut at a time, and is designed to function with a handle in the interface.
None of these nodes are flexible enough and always require some form of wrapper or support structure to actually do what I needed them to do...
Cut very specific edges and points into surfaces using points, curves or cutting surfaces... without breaking, over-cutting or creating bad geometry.
So I analysed and combined together the best of the above to create the PolySlice SOP
Here is a list of features - UPDATED:
- This node can inject points or cut a polyline or surface, with a second point, line or surface.
- It can cut surfaces at any angle, it has no problems with non-cardinal angles.
- It ignores coincident faces, so no zero space errors like with the boolean node.
- It automatically cleans up overlapping cuts.
- It generates groups to mark points and edges that are newly cut.
- It work at various levels of precision and can Snap the cutting input to the target geometry's edges if required.
- It keeps Attributes and Groups intact and propagates them through.
- It can cusp the edges on cuts on if enabled.
It also includes a high precision mode, which presets the snap and cutting tolerances to work very well at cutting complex geometry at very fine sizes
It works mainly by utilizing the capabilities of the PolySplit SOP and the Intersect Stitch SOP.
I'm currently working on refining the tool, testing and cleaning up edge cases.
But it is especially powerful when precision cuts and or point insertions have to be made with a secondary input.
Some weaknesses of the node:
- Its slower than some other nodes when cutting surfaces, because the Poly Split is not compilable.
-
Should be ran through a for-each loop per connected piece when dealing with intersecting masses of polygons because the non-connected intersection between these primitive surfaces can not always be properly resolved.- Solved -
It can't cut through the double edge connecting the inside and outside of a single hole polygon (still working on fixing this).- Solved
Here are a few GIF files to show it in action.
- This example shows how it can cut two complex polygon surfaces with one another.
- In this example you can see how we can using partial slices, but also layer slices to create multi-directional splits.
Even if they end in the middle of a primitive.
- This example shows how the snapping feature works to help cut up a cube, using a simple curve SOP as an input.
- Here the utility is in Curve mode, and is set to cut the curve using a polygon surface.