2020-06-05 Tangent Animation/Labs & Blender: Universal Scene Description

Present: Robert Pringle, Blazej Floch, Benjamin Skinner, David Hearn (Tangent), and Brecht van Lommel, Sybren Stüvel (Blender).

The goal of this meeting was for Tangent to talk about their work on Blender’s USD code, to look at possible future avenues of development, and to look at concrete short- and long-term goals

Current & Future USD use in Blender

We talked about the current state of USD support in Blender, and discussed future ways in which both Tangent and Blender would like to see this grow. As it happens, both parties have fairly similar ideas. The ease of switching between cached and editable data was described as one of the major targets (in contrast to explicit “export this”, “now import that” workflows). Tangent will be looking into a way to share more concrete technical & workflow details about their USD-based pipeline. This will happen as openly as possible, but of course aspects (or everything, if really necessary) can be kept private by Tangent & Blender.

Exporter & Importer implementations

Tangent have worked on extensions to Blender’s USD exporter, which they will publish on their GitHub repository next week. Given their short description, Sybren suspects that these changes will be relatively easy to integrate with Blender’s master branch.

Similarly Tangent have created a USD importer based on Blender’s Alembic importer code. Since the Alembic importer will be restructured in not-so-far future to resolve certain inherent limitations, so the practical value of that importer is limited. However, they still will publish it on their GitHub repository as, even though the Blender side of the code will change, the USD side of the code will be interesting to look at and could serve as an example for a future USD importer. As a technical wish, Tangent expressed a desire for a post-import hook that can run custom Python code to further process the imported data.

USD support in Cycles

Tangent have also created a Hydra Delegate for Cycles, making it possible to directly render USD files with Cycles without having to convert all data to Blender-native data first. Brecht indicated that he is open to including such a system with Cycles, even though it probably would not be used by Blender itself.

USD Libraries

Tangent also indicated that in the future it will be desirable to have a larger subset of the USD libraries (most notably the Imaging library for rendering) included with Blender. Sybren noted that this may make the Blender executable rather large, as currently everything is statically linked. There are discussions within the Blender development team about switching to dynamic linking, but this is not something that can be resolved in the short term.

Conclusion

Finally we agreed that such meetings can be fruitful to have on a regular basis in the future. Sybren noted that most discussions should be had in the open, especially when it comes to code reviews and decisionmaking, but that of course a regular voice/video chat can have its benefits as well.

32 Likes

Hi guys.
In the co-spirit of transparency I want to mention a related project we (AMD) are working on. Simply put:
An addon that allows USD / Hydra rendering as a Render Engine, as well as a nodegraph for USD scene composition.

EDIT: Move details to this thread: A out the Tangent Animation meeting, a proper place to talk about it please discuss there.

Please include us in future meetings if this work is of interest! Otherwise our plan is to release an addon enabling this externally later this year.

Brian

6 Likes

Please please cross pollinate these ideas. USD scene graph and management in Blender with a hydra viewport will put blender smack bang in the middle of modern VFX pipes.

A USD graph would solve/help with scaling shot and sequence complexity, something blender currently doesnt do very well.

This is very exciting!

1 Like

As far as I know this thread is just an archive of meeting notes. Discussions can continue here:

Is it possible to pin this link in the first post @sybren if it makes sense?

Sorry for the threadjack if that’s the case. I’ll move my post there.

1 Like