Skip to main content


Showing posts from November, 2013

Cloth tear geometry and shading detail

Been adding geo detail to the torn cloth and shading the additional geo. Shading sure is fun! :)

The second extrusion is done twice, once for the U direction, and once for the V direction. Polyframe is used to get the UV gradient to extrude along, vopsops are used to move the extrudeFront points after extrusion as you can't control the extrusion per point with just a polyExtrude node...

The extrusion is done twice so that the two different surfaces represent the opposing thread directions. since my geometry (and therefore tears) are in line with the U and V direction, the effect is not obvious in this case.
The .hip file below has a slightly newer shader than in the video and the image above, I removed the part of the shader that created the soft ramp for the alpha edge and used just the thread noise instead; it now looks more like:

The UV space can be transformed after the sim to change the thread direction, the following has the UV space rotated 90ยบ, you can see threads running …

Some SOPs edges and poly line business

Every time I go to extract the border from a mesh I always end up using some strange combo of Group unshared edges, delete and dissolve, I came across a good way of getting unshared edges that I haven't thought of before, and now it seems really obvious ... using the polycap node to trace the border and then deleting all of the source prims, works like a charm!

I have also usually had trouble with splitting up a line into multiple primitives, here is a way to create a primitive per edge. This example only works if every point has 2 neighbours but could easily be modified with a copy SOP to allow a dynamic amount of neighbours. (instead of 2 vopsops and a merge to duplicate the points).
It works like this:
The point number is stored in an attribute to create a unique number for each pointThe whole mesh goes into 2 streams to duplicate every point.For the first set of points, each point gets the point number of the first neighbour and applies a cantor function to create a unique numb…

Sop solver cloth tearing

Finally back to doing some Houdini at home! woo!

I was going to do some cloth shading but got sidetracked and started playing around with some cloth tearing instead. I went back to H12.5 as 13 wasn't working for fracturing ... or I was missing something obvious!

The idea is to cusp edges perpendicular to edges that are stretched beyond the threshold:

For each point (currently A), each neighbor is tested to see if it is stretched beyond its rest length. In the diagram edge B is stretched. The neighbors are looped through again to find edges that are most perpendicular the edge B (which is C and one of D and E) . Those points are added to the "toCusp" Group. The group is promoted to and edge group and the edgeCusp break the edges.

There are a bunch of other tests as well:

If some neighbors have already been split, it will use a lower tear threshold so that tears tend to propagate. The average direction of the torn edges need to be perpendicular within a threshold to weaken the …