[Bf-usd] USD experimental development branch proposal

Michael A Kowalski makowalski at nvidia.com
Fri Aug 6 02:30:12 CEST 2021


Hello everyone,

As part of the ongoing USD development effort, I would like to propose establishing a USD experimental branch on git.blender.org, initially based on the design and feature list described below.

Feedback and comments are welcome!

Thank you.

Best Regards,
Michael



USD BRANCH DESIGN AND FEATURES

The proposed experimental USD branch will contain enhancements to Blender's USD importer and exporter, including support for MDL material conversion through a Universal Material Mapper (UMM) addon.

The extensions to the USD importer and exporter adhere closely to the current USD IO module design, implemented as a collection of USD reader and writer classes which handle converting between USD primitives and Blender objects.  This design will be compatible with plans to implement collection-based IO in Blender in the future.

The implementation consists of source code which originated in branches open-sourced by Tangent Animation, combined with contributions from NVIDIA.  The modifications in this branch are incremental to the Blender 3.0 release, with updates pulled from the master branch on a regular basis.

The following is a list of new IO features and improvements supported in this branch:

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


UNIVERSAL MATERIAL MAPPING (UMM) SUPPORT

Conversion to and from MDL materials is accomplished using the UMM addon.  UMM is a tool developed by NVIDIA that allows users to specify custom rules for converting between arbitrary shader networks.  Although it's currently used for translating MDL shaders, it could potentially be used to convert any material type.  The UMM addon Python module provides an API for the conversion which is invoked by the USD exporter using the C Python API.  This addon is GPL compatible open source and is implemented purely in Python, with no dependencies on additional libraries or modules.  It could potentially be distributed as part of the Blender build, or it could be provided separately, to be installed by the user.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.blender.org/pipermail/bf-usd/attachments/20210806/4d269a68/attachment.htm>


More information about the Bf-usd mailing list