Ah, I see, understood! :)

On 22/03/2017 09:03, Jonathan Moore wrote:

Andy, I meant nothing more than that last Cheat Sheet was published back in 2011. I’m sure a bunch of folk would be interested to see what your 2017 Cheat Sheet looks like. 😊

*From:*[email protected] [mailto:[email protected]] *On Behalf Of *Andy Nicholas
*Sent:* 21 March 2017 23:09
*To:* Official Softimage Users Mailing List. https://groups.google.com/forum/#!forum/xsi_list <[email protected]>
*Subject:* Re: Random Thoughts about H.

Yep! Still reading :) Here’s the link to the cheat sheet as it didn’t come through in your email: http://www.andynicholas.com/?p=1344

    I think it would be brilliant if he updated his Cheat Sheet for
    these post HScript days.

They're expressions, not HScript, or am I misunderstanding what you’re getting at?

Anyway, if you have suggestions about what you’d find useful from an updated cheat sheet, then by all means let me know.

I did start looking at making an update, and made a couple of mind maps breaking down the most popular SOPs and expressions into categories. I'll can post that when I next get a chance.

A

    On 21 Mar 2017, at 19:07, Jonathan Moore
    <[email protected] <mailto:[email protected]>> wrote:

    I think Andy covered off most stuff. The only thing I can
    reiterate is the importance of VEX. I shared a link the other day
    to the VEX masterclass with Jeff Wagner and had positive feedback
    from other XSI alumni on this list. If you haven’t watched it yet,
    you should. It makes sense of many of SideFX’s design decisions.

    Ultimately Houdini is an operating system for 3d and becoming
    comfortable with VEX and Python within Houdini are mandatory
    things. SideFX might like to market Core as a replacement for XSI
    but VEX in particular and Python (if you want create portable
    assets) are essential ingredients in getting the most out of Houdini.

    I came to Houdini with a hackers knowledge of Python scripting and
     competent Processing (which I suppose is Java) skills. Never
    learnt C++ and I certainly wouldn’t classify myself as a
    programmer; and I find I’m comfortable with VEX. Sure I have the
    help browser opened permanently on my second browser the check my
    function arguments, but I muddle along without pain most of the time.

    If Andy’s still reading, I think it would be brilliant if he
    updated his Cheat Sheet for these post HScript days. When I was
    first learning Houdini it was a huge help. And funnily enough even
    though HScript has mostly been discarded, the list of ‘essential’
    SOP operators Andy listed back in 2011 are just as relevant in
    2017. 😉

    *From:*[email protected]
    
<mailto:[email protected]>[mailto:[email protected]]*On
    Behalf Of*Jason S
    *Sent:*21 March 2017 18:36
    *To:*Official Softimage Users Mailing
    List.https://groups.google.com/forum/#!forum/xsi_list
    
<https://groups.google.com/forum/#%21forum/xsi_list><[email protected]
    <mailto:[email protected]>>
    *Subject:*Re: Random Thoughts about H.


    Hi Andy,

    Thanks for the feedback!

            - Can handle lots of objects or elements and a few things
            became very much faster in recent versions (multi-threaded
            or openCL)
               (SI  is still is king for sheer high-poly-count on
            fewer objects, which includes *tons* of island transforms)


        Have a look at packed primitives. You can chunk your geometry
        into sections and get excellent performance there along with
        deferred rendering.

        For island management, then there are workflows that use the
        "name" string primitive attribute to differentiate between
        pieces. Some SOPs support this (see clustering and fracturing
        for example).


    Indeed I'm aware of packed prims, and I already agreed with you
    there (was in the "Good!" section :P )



            *Elements seem to be either inside OR outside, or object
            level elements (where regular parenting happens) are
            almost like separate scenes*


        Not sure I completely understand your point. I've not had an
        issue with referencing data or geometry. You can use the
        Object Merge SOP to pull geometry from anywhere though, and
        you can use expressions and VEX to pull info from other
        objects too (although I'd generally recommend object merging
        them for clarity). The convention (as you've probably seen) is
        to use a Null SOP called something like "OUT_Geometry" for
        example, or to use an Output node, and then reference those
        from another object. That has the advantage of being able to
        insert more nodes before the referenced node, so you don't
        have to update all your references.


    I know about merge sop, but is it possible to refer to outputs or
    elements located in other object level networks?
    (or having object level items used as inputs for multiple other
    object level networks?)



            *-**ICE**equivalence* (personally my biggest gripe)
            Wished for one thing, that Vop nets allowed for
            subnetworks with custom port names,


        This is possible, but you need to create a digital asset to do
        it. Kinda painful as a workflow, but it is there.



            If that's  at-all realistic, as it would probably involve
            very systemic changes, like how/when compilation happens (?)
            (to allow time dependancy  inside vops, but I don't know)


        You can have time dependancy inside VOPs, you just need to use
        the Time input from global variables, rather than use $FF
        inside expressions.

    Thanks, also I think promoting parameters allows for time dependency?
    But I was referring to time dependency as what could prevent
    entire processes to be self contained inside a  single VOP net.
    (or one of the things)



            everything (such as different settings  or where to adjust
            different things) is all over the place

        Yes, it can be, which is why it's crucial to try to be as
        organised as possible and work in a consistent way. If there's
        an occasion you can't be consistent, then put down a post-it
        note in your network to document it for when you or someone
        else comes back to the scene.



            --- expressions ::
                     even if often very simple, driving values with
            more elaborate procedures,
                     requires equally more elaborate expressions with
            often somewhat cryptic and sensitive syntax
                     with single or two letter functions that can be
            easy to remember for the more common ones like 'F' or 'P',
                     but otherwise involves having the doc open at all
            times.


        You get used to it quickly, but you'll probably find you move
        more towards Vex, which will make most expressions redundant.


    Perhaps I could get used to it, like I could also get use to C++,
    but the point was that it's not what I would want to deal with
    under tight deadlines (or where I would like to spend most of my time)

    I've done my fair share of scripting, even some quite elaborate
    ones, but always commenting the heck out everything and having
    extra descriptive variable names to not have to decipher myself
    even the next day, but I couldn't say I could decipher half the
    scripts I come across, and such things remain quite difficult for
    me  (as for many artists).



                 To simply -- say randomizing something with range
            that changes in time, is comparatively quite something,
                     involving creating attributes (set or bind data)
            and float parameters,
                     then processing these references in expression
            strings,  spread over a couple of nodes...


        Yep, completely pain in the ass. Unless you do it in Vex
        Wrangles, where it's super simple and fast (highly recommend
        learning the basics).

    Thanks, I guess simple and fast can be very relative.



               ---- and in general, string references to elements,
            attributes, or to things defined in one of the 10 other
            Xops (all over),
                *** following dataflow, (or getting an impression of
            what is happenning) can be very -convoluted-.
                          often requiring great scrutiny or finding
            sources of references to discover what different nodes
            actually do.

        Agreed. There's a definite need for programming-like
        strategies to cope, e.g.: Compartmentalise where possible into
        small blocks of nodes that do one simple task is a very
        similar argument to programmers not writing long functions.



            *- lots of Cryptic or non-self-explanatory nomenclature.*

        Yes, there's a definite learning curve here. Probably not
        going to change now as it's so embedded in the software and
        documenation.

        You brought up quite a few other points, but thought I'd just
        address those for now as I don't have much time. Feel free to
        ask back questions though if you need clarification.

        Cheers,
        Andy


    Again thanks for the pointers Andy!
    -J




    ------
    Softimage Mailing List.
    To unsubscribe, send a mail
    [email protected]
    <mailto:[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.

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

Reply via email to