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.
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.
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.