PixarAnimationStudios / OpenUSD

Universal Scene Description
http://www.openusd.org
Other
6.13k stars 1.22k forks source link

Changes in clip files are not rendered when stage is reloaded #2901

Open tylerm-nv opened 10 months ago

tylerm-nv commented 10 months ago

Description of Issue

Changes in clip files are not reflected in the renderer. Some changes are visible in the property window in Usdview, although they're still not rendered. Deleting rims doesn't change the tree, but existing attribute changes are shown in the prop view, but produce no change in the render.

Steps to Reproduce

  1. Download attached scene.
  2. Open in Usdview
  3. Edit Session_1/geometries/Box1_Surface_1MeshGeom.0.000000.usda (removing prims, changing attributes, etc.)
  4. In the interpreter, call usdviewApi.stage.Reload()
  5. Render is unchanged

Package Versions

Observed in 22.11 and on dev

Test scene: Simple_test.zip

tallytalwar commented 10 months ago

Filed as internal issue #USD-9132

spiffmon commented 10 months ago

That's very much unexpected, @tylerm-nv , as UsdStage::Reload() does tell the internal Usd_ClipCache to reload. IF you want to have a go at getting to the bottom of this, we'd be happy to have you do so!

spiffmon commented 10 months ago

Oh, actually, I think there may be a "known" issue, here... even though the ClipCache will reload the clips, I don't think that generates any ObjectsChanged notices for Hydra to hear about... we rely on the composition engine to tell us about what changed, and clips don't participate in composition...

I might expect that if the affected attributes were animated in the clip, that changing frames would get Hydra to update properly, but of course that's not a solution, and a real solution here is going to require some effort, unless we go for the sledgehammer of invalidating all subtrees affected by any changed, loaded clip, which is probably the right place to start, actually!