GPUOpen-LibrariesAndSDKs / BlenderUSDHydraAddon

This add-on allows you to assemble and compose USD data with Blender data and render it all using various renderers via Hydra.
Apache License 2.0
362 stars 37 forks source link

Node-based edit workflow confusion #254

Open bitinn opened 2 years ago

bitinn commented 2 years ago

Hi,

First of all, fantastic work on making a non-destructive USD import/export addon!

While using it to edit/render a few scenes, I came to some issues that I hoped to get a sense of future directions:

  1. Every time we reconnect a USD File output to Render USD node, the system would source the USD file again, so unsaved change to the imported USD hierarchy is lost. This can happen in other situations as well.

  2. Write USD File node always saves its input on reconnection, but when connected, update to imported USD hierarchy doesn't appear to save automatically.

  3. We can point both USD File and Write USD File nodes to the same USD file, allowing us to save local changes to USD file. But in such context it is unclear when the graph should reload itself (or when it is safe to reload without losing local changes).

  4. If we point Write USD File to a different file, then local changes can easily reset due to (1), and unintended change can flush to export USD due to (2).

  5. I also find out that once a Blender scene has been exported to USD via Merge node, we can no longer control much of its original settings (Light intensity, for example).

All in all, I think it depends on whether this system is designed with USD editing in mind, or mainly targeting multi-scene composition.

Thx, and look forward to your response.

DagerD commented 2 years ago

Hi.

Thank you for your nice words.

You allowed to modify imported USD scene via USD nodes (e.g. transform, instancing, filter etc.)

Yes, all USD nodes recomputes if there is changes in scene happen, so they return up to date USD stage.

  1. What kind of unsaved changes? USD File node recomputes (reads pointed file) on changing input, output or its modifiers (e.g. import animation).
  2. Write USD File node also recomputes when you modify node tree (add new nodes, modify existing).
  3. It doesn't sound like a valid workflow - you can't be sure in what order nodes are updated.
  4. In any case to be sure that you export up to date USD stage, better to just reconnect Write USD File after all.
  5. Seems like you have Blender Data node with checked "import animation", in this case you have to either uncheck it or click Update animation button to make this node recompute changes. It works this way due to infinity loop on animation update. I approve that you able to modify scene and node tree will be recomputed with new data immediately.