Page MenuHome

Universal Scene Description
Confirmed, NormalPublicDESIGN

Description

Status: DRAFT
Name: Universal Scene Description (USD)
Commissioner:
Project leader: @Sybren A. Stüvel (sybren)
Project members: -
Big picture: Animation studio pipelines are using USD more often; import and export is important for them and could be useful for Blender Studio as well.

Use cases:

  • Export animated meshes and objects to USDA and USDC (textual resp. binary representations of the same data), with minimal support for materials. This is covered by D6287.
  • Asset transfer from Blender to other DCCs. Basically this entails what is implemented in D6287, with added support for instancing and possibly material/shading related data.
  • Export of skeletal animation from Blender to USD to support game engines (like Unreal Engine). This will probably not be possible in the generic case (where Blender rigs may support features that either the game engine or USD do not support), but should at least support the export of skeletal-animated meshes that were created for this specific purpose.
  • Import of USD files. This likely depends on T69046: Cache loading via animation system.

Design:

  • Initial implementation of an exporter in D6287: USD: Introducing USD support.
  • Import should be possible to Blender datastructures, as well as 'stream' without saving to blendfile DNA.
  • Longer-term goal: export USDZ in Y=up orientation for some Apple AR applications. Conversion from USDC to USDZ can be done with an external tool, though.

Engineer plan:

  • Document the approach taken by the AbstractHierarchyIterator, which maps the Blender object hierarchy to a hierarchy suitable for exporting to USD.
  • Get D6287 into master
  • Apply the changes described in T71246: Mesh normals handling in Alembic to the USD exporter as well.
  • Improve USD error reporting by using TfErrorMark and UsdUtilsCoalescingDiagnosticDelegate as mentioned in D6287 by @superfunc.
  • Improve Alembic exporter based on the USD exporter. The latter uses a better way to export transforms, meshes, and hierarchies, than the current Alembic exporter.

Time estimate: ??
Note: First blog post about USD: First steps with Universal Scene Description

Event Timeline

i am so hypped about:

Import should be possible to Blender datastructures, as well as 'stream' without saving to blendfile DNA.