2024-08-29 Pipeline, Assets & I/O Meeting

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

Present: Bastien Montagne, Jesse Yurkovich, Micheal Kowalski

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

Links

USD

Targets for Blender 4.3

  • Jesse: Published a PR for Point cloud to UsdGeomPoints export.
  • Jesse: Bone Length: Add a custom property to ensure a full round trip from Blender works. Will make a PR.
  • Jesse: Reminder to check on two design tasks:
  • Micheal: Created a design task for Scene graph instancing export.
  • Bugs that need further investigation:
    • Loading Blender-exported USD geometry in the latest version of Houdini gives invalid normals.
    • On Linux, USD library initialization seems to lead to a deadlock or race condition with some audio backends (#126661).

Improved Integration of USD in Blender

See also the synthetic task.

USD Instancing, Collection Import & Beyond

Display and very basic interaction/editing of USD data without actually importing it in Blender.

Charles created a doc for his proposal:

Blender Data and USD Instancing

Bastien and Sergey had a pre-design discussion. General approach and UI/UX proposed by Charles looks good. Using the Outliner to navigate and select the active root prim to instantiate seems to be the right way to go, and also aligns with Blender goals to improve usability of the Outliner.

The Owner of the USD instance should rather be a Collection than an Object though, as this fits better in Blender data designs. The collection can then be instanced in Empty objects, or in the ViewLayer. For the time being, the ViewLayer system is the equivalent of a Scene graph in Blender.

Furthermore, the USD instancing feels like a good candidate as an initial step towards a more complete Collection Import feature.

Bastien also wrote some rough notes about what CollectionImport could look like, and how it could integrate with other improvements to blender external data handling (including its own Library system). This needs to be refined and structured into actual designs though.

USD Instancing Rendering.

Bastien, Sergey and Jeroen Bakker had a quick talk about how USD instancing could be integrated in Blender viewport rendering. General agreement is that some compositing of Blender render (mainly Workbench) and Hydra renders (for the USD instances) seems to be the most reasonable and doable idea.

The general idea is to use the Z buffer to compose the two renders, this should give acceptable results for the current target (which is fast usable rendering while working on the shot, not final, good-looking rendering).

  • There will be no (light) interaction between Blender data and USD instantiated data.
  • This will be a good opportunity to kickstart improvements of our rendering API in general.
  • There will also be no (viewport) selection available at first for USD instances. Later we may consider adding support to mix several ‘selection engines’ into our selection queries, but this will not be a short-term target.

Next Meeting

The next meeting will be in three weeks, not two as usual.

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

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

3 Likes