2024-05-30 Pipeline, Assets & I/O Meeting

Everyone is welcome on the Google Meet linked below every other Thursday, at 17:00 CEST.

Present: Bastien Montagne, Brecht Van Lommel, Charles Wardlaw, Jesse Yurkovich, Micheal Kowalski, Sergey Sharybin, Vincent Brisebois

The meeting covers the pipeline & I/O module in a broader sense, including some topics hosted in other modules (e.g. some I/O python add-ons, or overrides and .blend file I/O from the Core module).



Vincent Brisebois joined the meeting for the first time. He is a product marketing manager at NVidia.


Targets for Blender 4.2

  • USD will be updated to 24.05 version.
  • Import UsdGeomPoints as Point Clouds: has been merged in main.
  • The import/export of USD Dome as Blender World will likely land in main in the coming days.
  • The remaining targets (Scene unit scaling on import, Scene graph instancing export, Point instancing export, Point cloud to UsdGeomPoints export and Specify material purpose on import) are now rescheduled for Blender 4.3.
  • Jesse is still working on adding Unicode support (related to the updated USD library).
  • Jesse also still plans to address some UI refactor in the USD importer soon.
  • The changes required to fully support Eevee Next have been done.
  • The contribution from Apple to help finish the MaterialX export for the USD exporter is in unclear status currently. It is now running (very) late, and not likely to make it into 4.2.

Other Potential 4.3 Targets.

Charles mentions texture resizing for export. Currently pending more design, could be part of a more generic pipeline to edit data for export (geometry simplification, etc.). But if it’s fairly simple and straightforward, could also go as-is for the time being.

Micheal will create the targets task for 4.3.

Improved Integration of USD in Blender

See also the synthetic task.

Collection Export

See also the design task.

There is still one point that could use some work before 4.2 release:

  • Linked collections in ViewLayer have collection export settings visible and active. Suggestion is to hide them, and never use a linked collection as ‘trigger’ for export (i.e. only export linked collections when they are part of the hierarchy of a local ‘export-enabled’ collection). Still pending.
  • gltf: new panel system breaks possibility to extend UI by other addons, pending solutions.

Design Discussion About Next Steps

Meeting identifies two main potential topics for further expanding Blender’s integration of USD.

Readonly Instancing

Charles has been experimenting with direct instances of USD data into Blender (as some sort of ‘USD viewer’ object, without any editing feature). The current prototype can create an object, and display its ‘virtual content’ (USD data hierarchy) in the Outliner. Rendering in the viewport is hitting roadblocks.

Meeting agrees that the first stage of the project should be drawing such instances in Blender without converting the USD data to Blender data, with very few editing possibilities (maybe only global transform?).

Main design challenges:

  • Where to integrate this virtually-loaded USD data? At Object level, or Collection level?
  • Meeting agrees that using collection as base makes more sense from a general data layout point of view. Such a collection can then be instantiated in the Viewlayer, or as an Empty Object.
  • Will need some Outliner work (show collection hierarchy in object instances).
  • More useful access to Collection data in the Properties editor.
  • Drawing is a complex topic. There are three main approaches possible:
  • Make Blender own render engine able to load and display USD data (at least the Workbench one).
  • Render the whole scene in through Hydra (implies exporting all of rendered Blender data to USD).
  • Mix (overlay) the results from Hydra for USD instantiated data, and Workbench for Blender native data.
  • This needs to also be discussed with the viewport team.
  • Complex modes (edit, sculpt) most likely need to be kept drawing fully by Blender?
  • In case of mixed renderers, there would not be interaction between Blender and USD data (shadows, global illumination, etc.). In Workbench case, this is probably not a critical issue. ‘Final look’ renderers (Cycles, EEVEE) would need to be able to process the whole data though, but these are not a target for this project, at least for now.

Charles will create a demo video of his current prototype, and start working on some more refined design proposals.

Content Generation for USD

This would improve Blender capacities to generate data compatible with more USD features. E.g. create variants, define layers, etc.

This would likely requires first implementing these concepts in Blender native data., in particular variants.

Next Meeting

The next meeting will be on Thursday 13th June, 17:00 CEST/Amsterdam time (your local time: 2024-06-13T15:00:00Z).

The provisional meeting agenda will be linked in the #pipeline-assets-io-module channel before the meeting.