Tuesday, 13 October 2015

Polygon Curve Carving

After finding that the Carve SOP doesn't allow the use of attributes, thought I'd give making my own version that handles custom attributes and parameter expressions. Currently for my purposes I only need to carve polygon curves, so it shouldn't be too difficult. Later I might tackle other curve types, nurbs, bezier. If all goes well and I have the time, I would like to try surface carving but it might out of reach.

To define the polygon curve carve tool for development, I started by analysing the workings of Houdini's native Carve SOP. Firstly, there's quite a significant difference in the way it handles polygons v nurbs curves. In short the poly curve carving implementation is basically a case of removing and positioning points, where as with nurbs it's quite a different story, involving a number of high order concepts, eg. Knot insertion, corner cutting, interpolation etc.

I generally begin by nutting out the implementation detail, when developing any tool. This process helps break down a problem into manageable pieces and involves lots of sketching, working through scenarios to build an idea of how the carve tool in this case should operate.