Duh. Got the order of the 3 points wrong there, but I’m sure you figured that 
out ;)

> On 7 Apr 2017, at 20:02, Andy Nicholas <a...@andynicholas.com> wrote:
> 
>>> So now we have 'compounds' with custom port names, now how/why are we not 
>>> seeing dozens of those everywhere?
> 
> 
>>> And in you opinion, what could be preventing that, or what could be 
>>> streamlined to promote that.
> 
> 
> TLDR; Sharing HDA’s properly in a way that doesn’t cause screw ups is hard, 
> and most people are scared to start trying.
> 
> In more detail:
> 
> Basically there are three barriers of entry:
>       1) The process of making an HDA is a fairly technical and involved 
> process if you want to do it right.
>       2) It also requires a level of understanding as to what you’re doing 
> with versioning and operator naming.
>       3) If you want to have ease of re-use of HDAs, then you need to store 
> them on disk rather than embedding them purely within a scene. That means 
> that you really need to have a well organised and tightly managed 
> environment. 
> 
> 
> Okay, so looking at Barrier 1, there are basically two ways to name an HDA:
>       Option 1) Call it something like “my_vop_node” and give it a version 
> number in the Type Properties: Version parameter. There can only ever be ONE 
> version present in your scene. But believe it or not, the way Houdini decides 
> which version to use by default, is to pick the version with the latest 
> modified date on disk, **regardless of the version number you entered**! 
> Yeah, I was quite taken aback by that, but that’s what it does. So in my 
> book, that’s really not ideal. In a complex pipeline, there are just too many 
> ways a file may have it’s modified date changed at any time. Imagine if that 
> happens halfway through your render. No thanks!
>       Option 2) Call it “com.silib::my_vop_node::1.0.0” which is the more 
> recent "namespacing" format. This is much better, as now Houdini at least 
> respects the version number in the name properly (it now ignores the one in 
> the Type Properties: Version parameter). It also means that Houdini allows 
> you to have multiple versions of the same node in your scene, yet it still 
> sees them all as having the same type name “my_vop_node”. The namespacing 
> helps avoid name clashes with HDAs that are built-in or in other libraries. 
> All very handy. 
> 
> So number 2 is obviously the way to go, but I always have to look the details 
> up with how it handles versioning.
> 
> 
> For Barrier 2: 
> Let’s say you’ve written a SOP HDA to process some geometry in some way. 
> There are potentially a lot of things you need to handle to make it feel like 
> a proper Houdini node, some examples:
> * Does it tidy up the temporary attributes and groups you created in the 
> process? 
> * Does it preserve the original attributes and groups in an intuitive way 
> through to the result? 
> * Does it support Polygon Soups? 
> * What happens if I pass in NURBS, a volume, or packed primitives? Does it 
> ignore them, delete them, or error? 
> * Did you remember to write python code for doing the proper picking in the 
> UI for your “Group” parameter you created?
> * Have you hooked up the handles for the UI?
> * Don’t forget to write your help card! 
> 
> It’s nowhere near as quick and easy as in ICE.
> 
> For Barrier 3:
> Let’s say you make a new HDA. You might start with putting it in your local 
> user preferences. That’s fine for about 10 minutes until your mate Johnny 
> wants to use it. So you email him the HDA (eeek!) and he puts it in his user 
> preferences too. Great. So that all works fine until Johnny decides to change 
> your HDA and forgets to tell you. Now his scene behaves differently to yours! 
> Okay, so not a good strategy. 
> 
> Maybe we put it in a central location where everyone can access it? Much 
> better, right? Yep, as long as you remembered to write protect the file after 
> so someone doesn’t accidentally unlock it, make changes and save over the 
> top, thereby affecting everyone’s scene.
> 
> So that’s okay until someone wants to have a job specific version. Or even a 
> shot specific version. So this situation should be familiar, and it’s not 
> really that hard to manage an environment so that your paths are set up to 
> resolve the correct HDA based on which shot or job you’re on. Although in my 
> experience, many (if not most) VFX companies involved in commercials don’t 
> have this mechanism in place unless they have a film department too.
> 
> So let’s now say that all of this is done and our paths are set up to resolve 
> the correct HDA. We still have to have some sort of system to manage the 
> versions of the HDAs properly. Otherwise what’s to stop two people unlocking 
> the HDA at the same time and saving back over? Even if they remember to 
> increment the version number, it’s still not infallible. Confusion reigns!
> 
> That means, in an ideal world, we need an SVN style version management, 
> sandboxing system to retrieve, test and publish the HDAs back to the correct 
> location on the server. I’m pretty sure that Digital Domain had something 
> like this, and probably aren’t unique, but that’s a tonne of work to 
> implement.
> 
> 
> Being a bit more pragmatic and a little less OCD about it… Personally, I 
> would definitely recommend having all your HDAs local to the project/job. 
> That way, all the versions you need, are kept with your project in case you 
> ever need to resurrect it. It means that you don’t have to have all the 
> versions that ever existed of your HDA stored centrally in your HSITE 
> (Houdini’s Workgroup equivalent) on the server, as it would probably cause 
> Houdini load times to slow down. For the most part, just manually copying and 
> managing them by hand there will be fine. You just strike up an agreement 
> that the only person to modify an HDA should be the author.
> 
> But that’s essentially why HDAs are a bit of a pain, and we didn’t even get 
> into discussing having HDAs within HDAs! 
> 
> In most cases, where you just want to have the ability to reuse work, 
> galleries and/or presets are for me the preferred option. They don’t have 
> versioning issues, as once you’ve instantiated the node, that’s it. There’s 
> no link kept with the original definition.
> 
> Cheers,
> Andy
> 
> 
> 
> 
>> On 7 Apr 2017, at 18:19, Jason S <jasonsta...@gmail.com 
>> <mailto:jasonsta...@gmail.com>> wrote:
>> 
>>    "So now we have 'compounds' with custom port names, now how/why are we 
>> not seeing dozens of those everywhere?"
>> 
>> (also with multiple nesting levels)
>> 
>> 
>> On 04/07/17 13:08, Jason S wrote:
>>> Hi Andy,
>>> just wanted to say thanks for the example showing possibilities for port 
>>> names.
>>> 
>>> And I also noticed you can also name the regular subnet port names!
>>> 
>>> 
>>> <Mail Attachment.jpeg>   <Mail Attachment.jpeg>
>>> 
>>> Titles have to be short, but are more than enough to give good clues.
>>> 
>>> Also because I think I can recall reading that paramerters inside subnets 
>>> involves extra compilation time? (dont know specifics)
>>> 
>>> 
>>> So now we have 'compounds' with custom port names, now how/why are we not 
>>> seeing dozens of those everywhere?
>>> 
>>> In the many setups I opened from either example files or from forum users 
>>> posting methods,
>>> I haven't come across a single Vop net that had one. (or maybe I just didnt 
>>> notice them?)
>>> 
>>> (always Vops making everything from scratch with factory low level nodes, 
>>> or wrangle code )
>>> 
>>> 
>>> There are experienced users asking if nested HDAs are possible, and 
>>> responses have pointed to certain factory nodes.
>>>     Is it common for Digital Assets to use Digital Assets? 
>>> <https://www.sidefx.com/forum/topic/43014/>
>>> 
>>> While I was surprised it was even a question, and think it should be much 
>>> more common.
>>> 
>>> 
>>> Perhaps is it in regards to saving or retrieving custom nodes ? or is 
>>> management difficult?
>>> 
>>> Could what is outlined in this thread be related?
>>>    My Digital Assets aren't loading with the project 
>>> <https://www.sidefx.com/forum/topic/42113/>
>>> 
>>> I guess what I'm wondering is -- despite libraries and HDA's -- how/why 
>>> isn't encapsulation and distribution more common-ground, 
>>> especially after how long Houdini has been around, 
>>> or why are we not everywhere seeing within scenes, processes made of 
>>> processes made by everyone?
>>> 
>>> And in you opinion, what could be preventing that, or what could be 
>>> streamlined to promote that.
>>> 
>>> Thanks!,
>>> J
>>> 
>>> 
>>> On 03/31/17 5:35, Andy Nicholas wrote:
>>>> Hi Jason,
>>>> You can explicitly define VOP inputs and outputs if you make a digital 
>>>> asset, but you can also do it on a regular subnetwork. You just need to 
>>>> use a Subnet Input VOP for the input connections, and then use a Null VOP 
>>>> to name the output. You can use a Parameter VOP to expose inputs in the 
>>>> UI. (You can also use it to define inputs by changing the drop down at the 
>>>> top to "Subnet Connector", but I think it's clearer to use Subnet VOPs).
>>>> 
>>>> I've made an example for you implementing a push along normals operation 
>>>> and attached it to this email. See the images below too:
>>>> 
>>>> How the Subnet looks without connections:
>>>> <Mail Attachment.png>
>>>> 
>>>> Inside the Push_VOP subnet:
>>>> <Mail Attachment.png>
>>>> 
>>>> 
>>>> 
>>>> 
>>>> ------
>>>> 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.
>>> 
>> 
>> ------
>> 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.
> 
> ------
> 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