BabaJ
2021年6月16日 11:50:01
Before I send this in as a bug, anyone know why this graft node changes the position of the lights?
(In Red colored lopnet network node.)
toadstorm
2021年6月17日 14:55:08
I'm still figuring all this USD stuff out myself, but I believe the issue is that the default Graft settings are trying to parent your /lights primitive from merge1 to /`opinput(".", @input)`, which is evaluating to /Light_CornerPt_3. That object has its own transform, and your lights are now inheriting it. If you change the Primitive Path to something else, like /lights, this will import your lights to the right location. However, because you're grafting and not sublayering or merging, that will entirely overwrite the /lights primitive from your other branch. Grafting is a referencing operation, and what you likely want is sublayering so that you combine any unique data underneath each branch. A Merge LOP is essentially a sublayering option for in-memory primitives like what you have here, which is why it works the way you'd expect.
tl;dr keep your scene graph tree open at all times and sublayer/merge if you want to combine things under the same xform
robp_sidefx
2021年6月20日 14:38:23
For your use-case, you might consider using Graft Branches rather than Graft Stages, which supports "Keep Position". See a modified version of your original scene, attached.