Thanks Andy, it's good to hear that a modular approach of discrete functions makes sense programmatically too.
I tend to do it so I can annotate my work as I go along which makes it easier for me to remember when I've solved something before and can reuse it again. On 2 March 2017 at 16:31, Andy Nicholas <[email protected]> wrote: > > I've found working with Wrangles to be easier > > That's great to hear! Yep, as you've obviously found for yourself, there's > really nothing to be intimidated by. Most people are aware of the various > concepts intuitively, it's just that I've noticed the syntax can scare > people off. > > > However I had wondered whether splitting things up into lots of separate > Wrangles > > was less efficient programmatically. Do you have a view on this Andy? > > No, I've not noticed any performance hit, but I've not tried profiling it. > > Each time you do put a Wrangle of some sort down, Houdini will generally > need to create a new copy in memory of the geometry so that you're able to > write your attributes to the new version of the data. But that happens with > most nodes I would have thought, so minimising the number of nodes is > generally a good idea. It would only need one copy in memory each time > though, so there should be efficiency of re-use. Kind of like a double > buffering system where it swaps the buffer each time. The new SOP compiling > feature (http://www.sidefx.com/docs/houdini/model/compile) would in > theory limit any overhead by combining all the compilable nodes before > running. > > Anyway, these are all just educated guesses based on my understanding of > the mechanics of Houdini, so take with a pinch of salt! > > From a stylistic point of view, I much prefer to seperate VEX code into > separate Wrangle nodes so that each node does *one* thing only. It makes it > more robust and easier to manipulate and debug. It's exactly analogous to > coding functions. Big functions that do a lot of things are generally nasty. > > I also find that some operations need to be split, for any/all of the > following reasons: > * For architectural/re-use reasons. E.g. An "initialisation" Wrangle, > a "loop operation" Wrangle, and a "tidy up" Wrangle. > * If I've adjusted the geometry (e.g. by adding points) and now I need > to iterate over all the points again including the new ones. > * If I need to do another operation but looping over a different > entity e.g. a per-point wrangle followed by per-primitive or detail > operation. > > A > > > On 02/03/2017 15:33, Jonathan Moore wrote: > > 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... > > > Funnily enough I don't consider myself a programmer. Before Houdini I > generally hacked around with scripts but I'd never attempted anything C > like. > > I've found working with Wrangles to be easier than my preconceptions led > me to fear. I can't say that I'm overly ambitions with VEX but the > motivation of multithreaded optimisations keeps me pushing forward. Plus > lots of bespoke reusable 'subroutines' helps me compartmentalise VEX in a > very digestible manner. > > However I had wondered whether splitting things up into lots of separate > Wrangles was less efficient programmatically. Do you have a view on this > Andy? > > On 2 March 2017 at 15:08, Andy Nicholas <[email protected]> wrote: > >> 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 >> >> > > ------ > 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.

