Just to confirm how I'm thinking about this, a strand in Houdini is typically made up of point positions, not points with arrays as attributes. You can manually add an attribute to each point position to say which strand it's part of, there's a node that generates lines that will then understand this?

What I'm saying is that's something you can implement yourself. There are no nodes in Houdini that understand a point with a vector array is a strand, and no shaders that will do that automatically either. Again, you can build that yourself if you like, but it's quite advanced if you're going to be delving into procedural geometry shaders.

Otherwise you can create polyline primitives and feed point IDs into it. This will generate a polygon line (polyline) between the vertices in the primitive, and in some ways this is just like the point[pointarray] technique.

Yep. A polyline is nothing special. Just an unclosed polygon. As others have pointed out, you can apply attributes to the points to set things like width and color. Or you can use something like the PolyWire SOP to generate your own rendertime geometry.

The key is how do you create these point clusters and the order. In ICE I would make strands using a build linearly interpolated array with two vectors feeding into it. I guess I could try and recreate this using vex/vops, and maybe that's what I'm after, I just need to find a way to manipulate all these points in the right order.

Easiest way (assuming you already have some animated points) is to use the Trail SOP with it set to "Connect as Polygons", turn "Close rows" off, and set "Trail Length" to something like 10. Next stop after that is to take a look at the Resample SOP. Especially the "Treat Polygons As" parameter, as that'll let you create interpolated shapes to your trails which is kind handy.

A




On 02/03/2017 12:58, Tim Bolland wrote:

That's a good point Andy, and in my mind this would make the most sense! But like you say maybe not the most supported.


Just to confirm how I'm thinking about this, a strand in Houdini is typically made up of point positions, not points with arrays as attributes. You can manually add an attribute to each point position to say which strand it's part of, there's a node that generates lines that will then understand this?


Otherwise you can create polyline primitives and feed point IDs into it. This will generate a polygon line (polyline) between the vertices in the primitive, and in some ways this is just like the point[pointarray] technique.


The key is how do you create these point clusters and the order. In ICE I would make strands using a build linearly interpolated array with two vectors feeding into it. I guess I could try and recreate this using vex/vops, and maybe that's what I'm after, I just need to find a way to manipulate all these points in the right order.

I'm rambling a bit here, but hopefully getting somewhere!

Cheers,

Tim

------------------------------------------------------------------------
*From:* [email protected] <[email protected]> on behalf of Andy Nicholas <[email protected]>
*Sent:* 02 March 2017 12:27
*To:* [email protected]
*Subject:* Re: [Houdini] Working with strands the Softimage way
Hi Tim,
Did you notice that you can do per-point array attributes in VEX? There's nothing stopping you setting up position vector arrays on each point, just like in ICE, and then using a Point Wrangle at the end to use that array to generate a polyline. The problem is that you then have to write all those handy ICE nodes like "Simulate Strands", etc. yourself.

That's why generally, you're better off just trying to use polylines as a primitive as they're more supported by Houdini's other frameworks (e.g. wire solver) and constraints.

A


------
Softimage Mailing List.
To unsubscribe, send a mail to [email protected] with 
"unsubscribe" in the subject, and reply to confirm.

------
Softimage Mailing List.
To unsubscribe, send a mail to [email protected] with 
"unsubscribe" in the subject, and reply to confirm.

Reply via email to