Tips for working with the Configure Stage LOP

   925   6   1
User Avatar
Member
25 posts
Joined: May 2019
Offline
Hey guys,

I’m looking at the Configure Stage LOP right now. Trying to use this to mute layers, for example, I load my asset onto the stage, which has a lookdev layer as part of it, and I want to mute that layer, since I’m going to be reauthoring a new version of this layer in my current session (I have no idea if this is the correct workflow, any tips are welcome )

I’m just a bit stumped about how unwieldy working with the Configure Stage LOP seems to be, and I’m wondering (hoping) that there’s a trick to it…

Looking at the Mute Layers section first:
- I set Mute Layers to “Set layers to mute” and then I need to give a path to the layer I want to mute. So I look into my Scene Graph Layers pane, find the layer, and right click > copy paths.
- This gives me a relative path. I past this into the Mute Paths parm. And nothing happens.
- So I go outside of houdini, and do some gymnastics to turn the relative path into an absolute path. I put that absolute path in there. It works!

Surely the workflow loop here isn’t to leave houdini to get the path in a format that I want it? Is there some other way for me to define the layers I want to mute without giving an absolute path?

Looking at the Load Primitives Section:
- This is not as confusing to me, and more related to general USD workflow that I was hoping to confirm - am I right in assuming that payloads are always loaded by defining the *prim*, which in turn decides which payloads to load/unload? So, even if I have multiple payloaded files contained beneath a target prim, I can only ever switch all payloads on/off together, since they’re all attached to the same prim? Is this how it works?


Thanks in advance for any help!
Edited by mrSmokey - June 18, 2024 13:10:08

Attachments:
usd_configurestagelop_001.jpg (48.3 KB)

User Avatar
Member
16 posts
Joined: March 2015
Offline
Looking into this as well. Would be great if we could mute the layer relative to the parent layer.
User Avatar
Member
322 posts
Joined: Nov. 2013
Offline
What we’ve found internally is it’s sometimes necessary for generalized layer mute functionality to allow wildcards, mainly to handle flexible matching of the path portion, and potentially variations in usd,usdc,usda suffixes. I tried quickly and it doesn’t look like wildcards are supported right now unfortunately.
User Avatar
Staff
4493 posts
Joined: July 2005
Offline
No, wildcards and relative paths are not supported right now for muting because the USD layer muting feature requires full path matches to the identifiers of the layers that are to be muted. So for wildcards, Houdini would need to turn the pattern into an explicit list of full paths. But Solaris doesn't know what layers are loaded by a stage, and traversing a stage to find all these layers is very expensive. So we have no idea what layers to match against the pattern to turn into the hard coded list. We'd also have to load all the layers onto the stage to know what layers to mute, which defeats (part of) the purpose of muting - namely never loading the layer in the first place.

Relative paths don't work because of the old problem of "relative to what". A layer may be sublayered by layer A using "../../foo.usd", and referenced by some other layer as "./foo.usd". These can both refer to the same layer. At the same time another layer may refer to "../foo.usd" or "./foo.usd", but that could be a totally different layer. So if you muted "./foo.usd", which one do you mean? There just isn't enough information in a realtive path for Solaris to know what layers you mean. If we wanted to treat "./foo.usd" as "**/foo.usd", which could be a reasonable approach in many situations, then we're back to the wildcard problem described above...
User Avatar
Member
25 posts
Joined: May 2019
Offline
Thanks for the detailed rundown of the “why” mtucker, this answers my question
User Avatar
Staff
4493 posts
Joined: July 2005
Offline
To be clear, I'm not trying to weasel out of the problem completely I understand the current system is frustrating, and we would like to make it better. I just wanted to explain why it's not an easy problem with an obvious answer.
User Avatar
Member
322 posts
Joined: Nov. 2013
Offline
I should have mentioned that the strategy we use is to load the stage without payloads, mute whatever layers are available at that point based on whatever set of patterns, and then load the stage. It's not a super great solution but mostly works for what we need.
  • Quick Links