Page MenuHome

USDProject
ActivePublic

Details

Description

This project tracks the integration of the Universal Scene Description package.

Progress report, calls for contribution, design proposal are communicated on the bf-usd mailing list.

The roles (and responsibilities) from the Blender team are:

  • Sybren Stüvel: project coordinator
  • Brecht van Lommel: lead engineer (technical design)
  • Francesco Siddi: lead product (functional specs & requirements)

Dalai Felinto is general development coordinator and will keep track of resource planning.
Michael Kowalski (NVidia) is actively contributing in the temporary USD branch

Meeting Notes and Announcements

Resources

Planned Features

Note: each item of this list will be referencing a patch or a design task.

  • Instancing import: Import USD scene instances as Blender collection instances.
  • Instancing export: Extend the existing instancing option to support exporting arbitrary object hierarchies as USD scene instances. Additional support for exporting Blender particle systems as USD point instancers.
  • Environment map IO: Logic to convert between USD dome lights and Blender world materials, including environment textures.
  • Unit conversion scene scale: Automatically scale the scene for unit conversion on import and export (e.g., scale the imported objects based on the USD’s meters per unit value).
  • Curve export.
  • Armature export: Export armatures and skinned meshes to USD skeletons and skeletal animations.
  • Light unit conversion: Experimental code to convert between light intensity units in Nits and Blender’s light energy units, on import and export.
  • Transform operator options: Option to save transforms to USD as the combination of scale, rotate and translate operators, where the rotation can be expressed as Euler angles or a quaternion.
  • Export to USD shader nodes: Convert Blender shader nodes to UsdPreviewSurface nodes, MDL material nodes or a custom USD representation of Cycles shaders.
  • Import MDL materials: Convert MDL materials to Blender shader networks.
  • Texture export: An option to save textures to a directory relative to the USD being exported, using either absolute or relative asset paths. This feature works with UDIM tiles as well as packed and in-memory “baked” textures.
  • Option to specify a default primitive on export.
  • Option to add a root primitive on export. This option adds a single prim as the parent of all exported prims.

Near term work in progress includes:

  • Option to export meshes as individual USD “prop” files that are referenced in the scene.

Recent Activity

Tue, May 17

Kévin Dietrich (kevindietrich) updated the diff for D11592: Alembic/USD: use geometry sets to import data.
Tue, May 17, 3:57 PM · Pipeline, Assets & I/O, USD, Alembic
Hans Goudey (HooglyBoogly) added a project to T96721: Exporters (add-ons and compiled) need to be updated to support new fully dynamic material assignment possible from Geometry Nodes: Geometry Nodes.
Tue, May 17, 9:18 AM · Geometry Nodes, Collada, USD, Alembic, Add-ons (Community), Add-ons (BF-Blender), Pipeline, Assets & I/O, Nodes & Physics, Import/Export, BF Blender

Sat, May 14

Scurest (scurest) added a comment to T96721: Exporters (add-ons and compiled) need to be updated to support new fully dynamic material assignment possible from Geometry Nodes.

This is what the Python OBJ exporter does to get the materials

Sat, May 14, 12:28 AM · Geometry Nodes, Collada, USD, Alembic, Add-ons (Community), Add-ons (BF-Blender), Pipeline, Assets & I/O, Nodes & Physics, Import/Export, BF Blender

Fri, May 13

Bastien Montagne (mont29) updated the task description for T96721: Exporters (add-ons and compiled) need to be updated to support new fully dynamic material assignment possible from Geometry Nodes.
Fri, May 13, 5:35 PM · Geometry Nodes, Collada, USD, Alembic, Add-ons (Community), Add-ons (BF-Blender), Pipeline, Assets & I/O, Nodes & Physics, Import/Export, BF Blender
Bastien Montagne (mont29) added a comment to T96721: Exporters (add-ons and compiled) need to be updated to support new fully dynamic material assignment possible from Geometry Nodes.

I am not sure yet, I would hope that doing that on evaluated objects should give you the 'final' list of materials... But this needs to be investigated. Also need to check OBJ to understand why it's working there.

Fri, May 13, 5:34 PM · Geometry Nodes, Collada, USD, Alembic, Add-ons (Community), Add-ons (BF-Blender), Pipeline, Assets & I/O, Nodes & Physics, Import/Export, BF Blender
Scurest (scurest) added a comment to T96721: Exporters (add-ons and compiled) need to be updated to support new fully dynamic material assignment possible from Geometry Nodes.

So what's the correct way to fetch materials now? The old way was to read ob.material_slots[n].material.

Fri, May 13, 4:22 PM · Geometry Nodes, Collada, USD, Alembic, Add-ons (Community), Add-ons (BF-Blender), Pipeline, Assets & I/O, Nodes & Physics, Import/Export, BF Blender
Bastien Montagne (mont29) moved T96721: Exporters (add-ons and compiled) need to be updated to support new fully dynamic material assignment possible from Geometry Nodes from Backlog to Long-Term - Official on the Pipeline, Assets & I/O board.
Fri, May 13, 3:28 PM · Geometry Nodes, Collada, USD, Alembic, Add-ons (Community), Add-ons (BF-Blender), Pipeline, Assets & I/O, Nodes & Physics, Import/Export, BF Blender
Bastien Montagne (mont29) updated the task description for T96721: Exporters (add-ons and compiled) need to be updated to support new fully dynamic material assignment possible from Geometry Nodes.
Fri, May 13, 3:28 PM · Geometry Nodes, Collada, USD, Alembic, Add-ons (Community), Add-ons (BF-Blender), Pipeline, Assets & I/O, Nodes & Physics, Import/Export, BF Blender
Bastien Montagne (mont29) renamed T96721: Exporters (add-ons and compiled) need to be updated to support new fully dynamic material assignment possible from Geometry Nodes from Apply modifier on export breaks geonodes materials to Exporters (add-ons and compiled) need to be updated to support new fully dynamic material assignment possible from Geometry Nodes.
Fri, May 13, 3:25 PM · Geometry Nodes, Collada, USD, Alembic, Add-ons (Community), Add-ons (BF-Blender), Pipeline, Assets & I/O, Nodes & Physics, Import/Export, BF Blender

Wed, May 11

Philipp Oeser (lichtwerk) closed T97947: USD will fail to export without file extension as Resolved by committing rB06a7afb528d8: Fix T97947: USD will fail to export without file extension.
Wed, May 11, 4:49 PM · User Interface, USD, Pipeline, Assets & I/O, BF Blender
Philipp Oeser (lichtwerk) closed D14895: Fix T97947: USD will fail to export without file extension.
Wed, May 11, 4:49 PM · USD, Pipeline, Assets & I/O
Michael Kowalski (makowalski) added a comment to D14895: Fix T97947: USD will fail to export without file extension.

This looks good to me, as well, and works nicely in my quick test. Thank you, @Philipp Oeser (lichtwerk)!

Wed, May 11, 3:45 PM · USD, Pipeline, Assets & I/O
Bastien Montagne (mont29) updated subscribers of D14895: Fix T97947: USD will fail to export without file extension.

@Michael Kowalski (makowalski) might also be interested to check here.

Wed, May 11, 11:38 AM · USD, Pipeline, Assets & I/O
Bastien Montagne (mont29) accepted D14895: Fix T97947: USD will fail to export without file extension.

LGTM

Wed, May 11, 11:37 AM · USD, Pipeline, Assets & I/O

Tue, May 10

Omar Emara (OmarSquircleArt) added a project to T97362: USD export texture path formatting causes problems on MacOS: Platform: macOS.
Tue, May 10, 3:52 PM · Platform: macOS, USD, BF Blender

Mon, May 9

Philipp Oeser (lichtwerk) requested review of D14896: USD: Enable operator presets when exporting.
Mon, May 9, 3:33 PM · USD, Pipeline, Assets & I/O
Philipp Oeser (lichtwerk) added a revision to T97947: USD will fail to export without file extension: D14895: Fix T97947: USD will fail to export without file extension.
Mon, May 9, 3:32 PM · User Interface, USD, Pipeline, Assets & I/O, BF Blender
Philipp Oeser (lichtwerk) added a task to D14895: Fix T97947: USD will fail to export without file extension: T97947: USD will fail to export without file extension.
Mon, May 9, 3:31 PM · USD, Pipeline, Assets & I/O
Philipp Oeser (lichtwerk) requested review of D14895: Fix T97947: USD will fail to export without file extension.
Mon, May 9, 3:31 PM · USD, Pipeline, Assets & I/O
Philipp Oeser (lichtwerk) changed the status of T97947: USD will fail to export without file extension from Needs Triage to Confirmed.

The user expected behavior is that it would work like the file save window, and add the extension automatically

Mon, May 9, 9:40 AM · User Interface, USD, Pipeline, Assets & I/O, BF Blender

Sat, May 7

Michael Kowalski (makowalski) updated the summary of D14869: T90535: Handle material name collisions on USD import.
Sat, May 7, 1:29 AM · USD
Michael Kowalski (makowalski) added a comment to D14869: T90535: Handle material name collisions on USD import.

Thanks for the review, @Sybren A. Stüvel (sybren). I made the changes.

Sat, May 7, 1:26 AM · USD
Michael Kowalski (makowalski) updated the diff for D14869: T90535: Handle material name collisions on USD import.
  • USD import: rename material collision option.
  • USD import: material collision code fixes.
Sat, May 7, 1:11 AM · USD

Fri, May 6

Sybren A. Stüvel (sybren) closed D14193: USD volume export.
Fri, May 6, 11:46 AM · USD
Sybren A. Stüvel (sybren) updated the diff for D14193: USD volume export.
  • Adjust #include formatting, so that it's consistent with other Blender code and make format
  • Remove unused bmain parameter
  • Remove trailing whitespace
Fri, May 6, 11:37 AM · USD
Sybren A. Stüvel (sybren) added a comment to D14193: USD volume export.

ps: please before sending in a patch, run make format to ensure it's formatted correctly.

Fri, May 6, 11:36 AM · USD
Sybren A. Stüvel (sybren) accepted D14193: USD volume export.

Not using bmain is a good thing, but the warning could be removed too ;-)

blender/source/blender/io/usd/intern/usd_writer_volume.cc:91:74: warning: unused parameter ‘bmain’ [-Wunused-parameter]
   91 |                                                              const Main *bmain) const
      |                                                              ~~~~~~~~~~~~^~~~~
Fri, May 6, 11:32 AM · USD
Sybren A. Stüvel (sybren) requested changes to D14869: T90535: Handle material name collisions on USD import.

LGTM, found a few tiny things, see the inline notes.

Fri, May 6, 11:17 AM · USD
Michael Kowalski (makowalski) retitled D14869: T90535: Handle material name collisions on USD import from T90535: Handle USD material import name collisions. to T90535: Handle material name collisions on USD import.
Fri, May 6, 5:59 AM · USD
Michael Kowalski (makowalski) added a reviewer for D14869: T90535: Handle material name collisions on USD import: Sybren A. Stüvel (sybren).
Fri, May 6, 5:58 AM · USD
Michael Kowalski (makowalski) updated the summary of D14869: T90535: Handle material name collisions on USD import.
Fri, May 6, 5:57 AM · USD
Michael Kowalski (makowalski) retitled D14869: T90535: Handle material name collisions on USD import from USD Import: Handle material name collision. to T90535: Handle USD material import name collisions..
Fri, May 6, 5:39 AM · USD

Thu, May 5

Piotr Makal (pmakal) added a comment to D14193: USD volume export.

Regarding last compilation fail - it turns out that since 22.03 USD version there has been a change to UsdVolFieldBase class inheritance (UsdGeomBoundable is no longer a parent). For whatever reason running make update wasn't updating my USD lib version, so I was sitting on 21.02 and couldn't see this error. Thanks for the heads up!

Thu, May 5, 10:23 PM · USD
Piotr Makal (pmakal) updated the diff for D14193: USD volume export.
  • Fixed compilation issue for USD 22.03 version related to removed extent attribute for volume fields.
  • Updated D14193TestFiles.zip (in patch description) with new test.usda file reflecting the change mentioned in previous point.
  • Improved if logic in USDVolumeWriter::resolve_vdb_file method.
  • Added comment in USDHierarchyIterator::get_export_file_path method, further explaining what it does.
Thu, May 5, 10:22 PM · USD

Thu, Apr 28

Bastien Montagne (mont29) moved T96458: USD Importer - not respecting output channels from Bugs to Under Discussion on the Pipeline, Assets & I/O board.
Thu, Apr 28, 5:36 PM · Pipeline, Assets & I/O, USD, BF Blender
Bastien Montagne (mont29) moved T96458: USD Importer - not respecting output channels from Backlog to Bugs on the Pipeline, Assets & I/O board.
Thu, Apr 28, 5:35 PM · Pipeline, Assets & I/O, USD, BF Blender
Sybren A. Stüvel (sybren) closed D14792: CMake: Reduce dependencies of USD to what's actually needed by Blender.
Thu, Apr 28, 5:18 PM · Platforms, Builds, Tests & Devices, USD, BF Blender (3.2)
Ray molenkamp (LazyDodo) accepted D14792: CMake: Reduce dependencies of USD to what's actually needed by Blender.
Thu, Apr 28, 4:38 PM · Platforms, Builds, Tests & Devices, USD, BF Blender (3.2)
Michael Kowalski (makowalski) added a comment to D14792: CMake: Reduce dependencies of USD to what's actually needed by Blender.

yeah but by that logic, we're using none of the imaging module right now, you want to disable the whole thing?

I'd like to see @Michael Kowalski (makowalski) chime in here and determine "is it useful to us and may we use it in the near future" lets not base it on if it's currently being used.

I've updated the description to read:

However, since [the Imaging] module was included for its support for converting primitive shapes (sphere, cube, etc.) to geometry, OSL is not necessary.

Earlier it read "..., it's not necessary", where it was ambiguous what "it" referred to. Support for USD primitives is a concrete use case.

Thu, Apr 28, 4:23 PM · Platforms, Builds, Tests & Devices, USD, BF Blender (3.2)
Sybren A. Stüvel (sybren) added a comment to D14792: CMake: Reduce dependencies of USD to what's actually needed by Blender.

yeah but by that logic, we're using none of the imaging module right now, you want to disable the whole thing?

I'd like to see @Michael Kowalski (makowalski) chime in here and determine "is it useful to us and may we use it in the near future" lets not base it on if it's currently being used.

Thu, Apr 28, 3:36 PM · Platforms, Builds, Tests & Devices, USD, BF Blender (3.2)
Sybren A. Stüvel (sybren) updated the summary of D14792: CMake: Reduce dependencies of USD to what's actually needed by Blender.
Thu, Apr 28, 3:34 PM · Platforms, Builds, Tests & Devices, USD, BF Blender (3.2)
Brecht Van Lommel (brecht) accepted D14792: CMake: Reduce dependencies of USD to what's actually needed by Blender.

yeah but by that logic, we're using none of the imaging module right now, you want to disable the whole thing?

I'd like to see @Michael Kowalski (makowalski) chime in here and determine "is it useful to us and may we use it in the near future" lets not base it on if it's currently being used.

Thu, Apr 28, 3:27 PM · Platforms, Builds, Tests & Devices, USD, BF Blender (3.2)
Sybren A. Stüvel (sybren) added projects to D14792: CMake: Reduce dependencies of USD to what's actually needed by Blender: BF Blender (3.2), USD, Platforms, Builds, Tests & Devices.
Thu, Apr 28, 3:26 PM · Platforms, Builds, Tests & Devices, USD, BF Blender (3.2)
Sybren A. Stüvel (sybren) added a comment to D14193: USD volume export.

When uploading a patch, please follow the guidelines on the wiki. That'll prevent the "Context not available" between modified chunks of code. No need to reupload this patch that way, but when updating it, please include more of the context (-U1000).

Thu, Apr 28, 11:50 AM · USD
Michael Kowalski (makowalski) accepted D14193: USD volume export.

Your changes look good to me, @Piotr Makal (pmakal), and I like your solution of having the File References option in its own box in the UI.

Thu, Apr 28, 4:05 AM · USD

Sat, Apr 23

Piotr Makal (pmakal) updated the diff for D14193: USD volume export.
  • Renamed "Assets" to "File References" and moved this option to separate UI box. As shown in the figure below:

Sat, Apr 23, 10:34 PM · USD

Apr 18 2022

Brecht Van Lommel (brecht) added a comment to D14537: WIP: USD cycles procedural.

You can close it if you want. It would still be good to add a USD procedural at some point, but the implementation would be quite different than this patch.

Apr 18 2022, 8:34 PM · USD, Render & Cycles, Cycles
Charles Flèche (charlesf) added a comment to D14537: WIP: USD cycles procedural.

That's great. I suppose that makes this diff redundant. Should I just close it ?

Apr 18 2022, 8:28 PM · USD, Render & Cycles, Cycles
Brecht Van Lommel (brecht) added a comment to D14537: WIP: USD cycles procedural.

I implemented direct rendering of USD files with the cycles executable in rC1a5f4932b481: Add USD as a file format for Cycles standalone rendering. The implementation itself ended up relatively straightforward.

Apr 18 2022, 2:35 AM · USD, Render & Cycles, Cycles

Apr 17 2022

Davis Jones (SwingingLantern) removed a watcher for USD: Davis Jones (SwingingLantern).
Apr 17 2022, 2:00 AM