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.