layering references vs sublayer

   682   3   0
User Avatar
Member
34 posts
Joined: July 2015
Offline
In this example i assumed references and sublayer to work the same but seems like it doesnt.

The goal is to have an assembly of grass and then do a sim ontop of that and then retime instance them. When layering them as an asset it breaks. Layering them as sublayer works fine. In this case we would prefer to have it in the reference because we are reusing the asset in different shots.

Wondering if somebody is usd savvy enough to know if this is intended or not



Edited by leoYfver - June 4, 2025 04:11:16

Attachments:
instancer_retime_layerbreak.hip (300.0 KB)
instancer_retime_sublayer.png (359.3 KB)
retime_instances_references.png (291.0 KB)
retime_instances_setup.png (32.9 KB)

cg supervisor @goodbyekansas
User Avatar
Member
258 posts
Joined: Jan. 2015
Offline
Curious about this to.
User Avatar
Member
354 posts
Joined: Nov. 2013
Offline
The warning on usdrop envfx is giving an indication of the problem. The layerbreak1 lop before retimeinstances13 causes the layer_assembly.usd sublayer to be removed from the composition when exporting layer_envfx.usd. This results in a broken composition because prim offset1_0_0 is attempting to reference prim rubbertoy (a side effect of retimeinstances13), which is not present on the stage once the layer the prim is defined in is removed.

The sublayer case works because sublayering layer_assembly.usd "fixes" things, back to the original composition such that prim rubbertoy exists on the stage again and can be referenced by prim offset1_0_0. References however are encapsulated, and unable to "see" the composition of the referencing (outer) stage. So from the perspective of layer_envfx.usd when used as a reference (or just opened as a regular root layer) the prim rubbertoy prototype is missing. Because of the encapsulated nature of references there's not really anything that can be done in the local layer stack (sublayers) to fix things inside the reference.

The easiest thing would be to remove the layer break and reference only layer_envfx.usd, which would now be sublayering layer_assembly.usd, and so correctly work when referenced.
User Avatar
Member
34 posts
Joined: July 2015
Offline
You are probably right and I cant say im an expert in encapsulation. I hoped this would still be considered a composition arc where its a stronger refenrece/layer without messing with the underlying reference and break encapsulation. So In my understanding was that encapsulation was presered and proper overrides strength order was applied.
cg supervisor @goodbyekansas
  • Quick Links