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!
Tips for working with the Configure Stage LOP
1186 6 1- mrSmokey
- Member
- 25 posts
- Joined: 5月 2019
- Offline
- ralphymeijer
- Member
- 16 posts
- Joined: 3月 2015
- Offline
- antc
- Member
- 335 posts
- Joined: 11月 2013
- Online
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.
- mtucker
- スタッフ
- 4523 posts
- Joined: 7月 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...
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...
- mrSmokey
- Member
- 25 posts
- Joined: 5月 2019
- Offline
- mtucker
- スタッフ
- 4523 posts
- Joined: 7月 2005
- Offline
- antc
- Member
- 335 posts
- Joined: 11月 2013
- Online
-
- Quick Links