-
-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Composition: SubLayers management #207
Comments
Thanks! Composition arcs in TinyUSDZ are not complete, so your contribution is very helpful. Let me give some time to investigate the logic of Sublayers in USD spec and its implementation in TinyUSDZ. |
Where can I find the info of the logic of Sublayers in OpenUSD? |
I generally prefer the docs from remedy-entertainment: https://remedy-entertainment.github.io/USDBook/terminology/local_sublayer.html But even the houdini docs are useful: https://www.sidefx.com/docs/houdini/nodes/lop/sublayer.html In pixar docs i think the LayerStack paragraph has the best description |
@rdeioris After some investigation on subLayers' behavior, I have prepared pseudo code of subLayer composition: https://github.com/lighttransport/tinyusdz/wiki/Composition-arcs#sublayerslayerstack I think this pseudo code exactly matches your description:
|
👍 |
Hi, i am working with composition arcs and i am tracking the various differences between openusd and tinyusdz.
This issue is about the sublayers side. Note that tusdcat is currently broken in the last step (where it converts the final layer to a Stage) so the output i am taking into account is the last composition step printed on stdout by tusdcat and compare it to usdcat.
Given the following 4 layers:
levels.usda:
level000.usda:
one.usda:
two.usda:
OpenUSD usdcat returns:
While tusdcat:
The "/Root/Child" PrimSpec is probably the most interesting here.
The sublayers logic (by Pixar specifications) is the following:
The highest layer in the chain has priority, so every new PrimSpec with matching name (independently by the specifier) does NOT override the parent one, but just append non-existent properties and children. Non matching PrimSpec are blindly added (along their children). The only Layer metas applied are the one from the Root Layer (this part is correct in tinyusdz).
The current main issue is the lack of recursiveness in the process. I have prepared a patch for it, Pull Request will follow.
The text was updated successfully, but these errors were encountered: