Heh! Yep, I know exactly what you mean. It's usually a lot faster to write the logic in VEX compared to creating a spaghetti network of group & attribute manipulation to get what you want. The new compilation system for SOPs may help slightly, but it's still a million times faster to prototype and adjust in VEX.

It's worth mentioning that after a job finished last year, I had a look back through the scene. The project involved a lot of creation and manipulation of trail geometry. I'd say that easily 95% of the nodes were Point Wrangles.

Benefits:
    * Super fast and automatically multithreaded
* Each node's function is completely customisable (unlike built in nodes) * Easy to read and understand intention (compared to the equivalent node network)
    * Modularised and reusable code

Disadvantages:
* If someone else can't code and needs to take over the scene, then they're going to have difficulties if they need to fix/change things in an individual Point Wrangle

I'm sure there are others plusses and minusses, but that single disadvantage can easily be negotiated if you make sure that you don't write PointWrangles with hundreds of lines of code, and force yourself to break them up into smaller reusuable components - like subroutines. That way, they can be treated in the same way as any other standard Houdini SOP. If someone else comes in and doesn't like VEX, then it's granular enough not to get in the way.

So personally I'm going to keep with VEX, as I can't find a good reason to stop ;)

A


On 02/03/2017 14:39, Tim Bolland wrote:

That's really helpful Andy, and I'm liking the nod to strand arrays on points. Since starting to learn Houdini I feel I'm spending most of the time in Vex, this isn't a bad thing but I'm constantly wondering if I should be trying to do things via VEX/VOPs or by the prebuilt nodes. I guess there is no hard answer to this, my assumption is embracing a Vex workflow will allow you to customize more down the line.


@Jonathan

Thank you, I didn't know that and I'll try it out. For something like Andy's example I would expect to solve the trails, but for something like a solid mass of non-animating strands I try to keep things in the modelling stack (to borrow an XSI term 😉 ).


Cheers!

Tim

------------------------------------------------------------------------
*From:* softimage-boun...@listproc.autodesk.com <softimage-boun...@listproc.autodesk.com> on behalf of Andy Nicholas <a...@andynicholas.com>
*Sent:* 02 March 2017 14:12
*To:* Official Softimage Users Mailing List. https://groups.google.com/forum/#!forum/xsi_list
*Subject:* Re: [Houdini] Working with strands the Softimage way
Hi Tim,
Here's a VEX example:
http://www.andynicholas.com/download/vex_trail_example.hip

I've kept it super simple to make it easy to expand on. It should be a great way to get familiar with VEX too.

Let me know if you have any questions.

A


On 02/03/2017 13:34, Tim Bolland wrote:

Thank you! Really cool :)


------------------------------------------------------------------------
*From:* softimage-boun...@listproc.autodesk.com <softimage-boun...@listproc.autodesk.com> on behalf of Christopher Crouzet <christopher.crou...@gmail.com>
*Sent:* 02 March 2017 13:25
*To:* Official Softimage Users Mailing List. https://groups.google.com/forum/#!forum/xsi_list
*Subject:* Re: [Houdini] Working with strands the Softimage way
If it can help, here's a basic scene showing one common approach for making strands: https://filebin.net/6ml27y3atb6qd7iq <https://filebin.net/6ml27y3atb6qd7iq>


On 2 March 2017 at 20:17, Tim Bolland <tim_boll...@hotmail.co.uk <mailto:tim_boll...@hotmail.co.uk>> wrote:

    Thank you Andy that's a really helpful summation, I'm going to
    give it a go :)



    ------------------------------------------------------------------------
    *From:* softimage-boun...@listproc.autodesk.com
    <mailto:softimage-boun...@listproc.autodesk.com>
    <softimage-boun...@listproc.autodesk.com
    <mailto:softimage-boun...@listproc.autodesk.com>> on behalf of
    Andy Nicholas <a...@andynicholas.com <mailto:a...@andynicholas.com>>
    *Sent:* 02 March 2017 13:12

    *To:* softimage@listproc.autodesk.com
    <mailto:softimage@listproc.autodesk.com>
    *Subject:* Re: [Houdini] Working with strands the Softimage way

    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:* softimage-boun...@listproc.autodesk.com
    <mailto:softimage-boun...@listproc.autodesk.com>
    <softimage-boun...@listproc.autodesk.com>
    <mailto:softimage-boun...@listproc.autodesk.com> on behalf of
    Andy Nicholas <a...@andynicholas.com> <mailto:a...@andynicholas.com>
    *Sent:* 02 March 2017 12:27
    *To:* softimage@listproc.autodesk.com
    <mailto:softimage@listproc.autodesk.com>
    *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 tosoftimage-requ...@listproc.autodesk.com
    <mailto:softimage-requ...@listproc.autodesk.com>  with "unsubscribe" in the 
subject, and reply to confirm.
    ------ Softimage Mailing List. To unsubscribe, send a mail to
    softimage-requ...@listproc.autodesk.com
    <mailto:softimage-requ...@listproc.autodesk.com> with
"unsubscribe" in the subject, and reply to confirm.
--
Christopher Crouzet /https://christophercrouzet.com/

------
Softimage Mailing List.
To unsubscribe, send a mail tosoftimage-requ...@listproc.autodesk.com  with 
"unsubscribe" in the subject, and reply to confirm.

------
Softimage Mailing List.
To unsubscribe, send a mail to softimage-requ...@listproc.autodesk.com with 
"unsubscribe" in the subject, and reply to confirm.
------
Softimage Mailing List.
To unsubscribe, send a mail to softimage-requ...@listproc.autodesk.com with 
"unsubscribe" in the subject, and reply to confirm.

Reply via email to