[Bf-usd] USD - UMM

Michael A Kowalski makowalski at nvidia.com
Sat Aug 7 01:14:32 CEST 2021


Hi Brian,

Thanks very much for the comment.

UMM is agnostic as to material type, and could be configured to handle data that represents MaterialX nodes.  In this experimental branch, it's used to convert MDL, but it could be extended to convert any other material type as well.

Thanks,
Michael

From: Bf-usd <bf-usd-bounces at blender.org> On Behalf Of Brian Savery via Bf-usd
Sent: Friday, August 6, 2021 2:15 PM
To: bf-usd at blender.org
Cc: Brian Savery <brian.savery at gmail.com>
Subject: Re: [Bf-usd] USD - UMM

External email: Use caution opening links or attachments

Other software vendors (Autodesk, Houdini, Adobe, Pixar) are standardizing on MaterialX as well as USD itself (see latest ASWF discussions)... Can this UMM import and export MaterialX data?  If not, it seems the wrong direction for material interoperability to Blender IMO.

Brian


I suggest to create a separate design task to discuss UMM, as it will
require some feedback and iteration. The task can be part of the USD
project.

Regards,
Francesco

--------------------------------------------------------------
Francesco Siddi  -  francesco at blender.org<mailto:francesco at blender.org>   -  www.blender.org<https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.blender.org%2F&data=04%7C01%7Cmakowalski%40nvidia.com%7C35123e9917934d2c394008d959062d4c%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637638705786977673%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=eurTIoftRXL4gdGKAk29f2EKIT%2Fk0F1LjynOSoeAfUs%3D&reserved=0>
COO at Blender and Producer at Blender Studio
Buikslotermeerplein 161 - 1025 ET Amsterdam - The Netherlands

On 6 August 2021 at 15:10:30, Michael A Kowalski (makowalski at nvidia.com<mailto:makowalski at nvidia.com>)
wrote:

Thanks for the reply, Sybren.



The UMM addon hasn't yet been released publicly on github.   We are working
on that now, and this source will be available soon.



Indeed, the importer/exporter code does not depend on UMM being installed
in order to function.  If the UMM module isn't installed, the import/export
will continue to work, but without the extended functionality that this
addon provides.



Currently, the UMM addon also includes a UI to help users create
pre-defined material templates that are helpful to guarantee lossless
mapping in some cases.  But, if this Python module can be packaged with
Blender some other way that's easily customizable by users, we're very open
to suggestions.  Certainly, it would be ideal if this could be bundled with
Blender.



Thanks,

Michael



*From:* Bf-usd <bf-usd-bounces at blender.org<mailto:bf-usd-bounces at blender.org>> *On Behalf Of *Sybren A. Stüvel
*Sent:* Friday, August 6, 2021 6:09 AM
*To:* Blender USD Workgroup <bf-usd at blender.org<mailto:bf-usd at blender.org>>
*Subject:* Re: [Bf-usd] USD experimental development branch proposal



*External email: Use caution opening links or attachments*



Hello,



On Fri, 6 Aug 2021 at 02:30, Michael A Kowalski <makowalski at nvidia.com<mailto:makowalski at nvidia.com>>
wrote:

As part of the ongoing USD development effort, I would like to propose
establishing a USD experimental branch on git.blender.org<https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit.blender.org%2F&data=04%7C01%7Cmakowalski%40nvidia.com%7C35123e9917934d2c394008d959062d4c%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637638705786977673%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fyU59S03rUfz4hSuIm5kQx%2FPz2Ex4nyqShiZVsCHEks%3D&reserved=0>, initially based
on the design and feature list described below.



For further development of USD features, it's probably better to not have a
single, long-lived branch. It'll be simpler to work on smaller,
feature-specific branches that can be reviewed & merged into the master
branch. Not only will it make the process of reviewing and testing changes
easier, it'll also help in making features available to general Blender
users more quickly.



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.



I'm wondering about the Universal Material Mapping add-on. It is described
as if it's an already-existing tool by NVIDIA, but I can't find it when I
do a web search
<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fduckduckgo.com%2F%3Fq%3DUniversal%2BMaterial%2BMapping%2Bnvidia&data=04%7C01%7Cmakowalski%40nvidia.com%7C0853b3ab33164f5237bf08d958c2538e%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637638414359462943%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=FftW0HatjVNMqw3Ao0zr8Z4fx36A2F3qadzf%2BwtEqXI%3D&reserved=0<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fduckduckgo.com%2F%3Fq%3DUniversal%2BMaterial%2BMapping%2Bnvidia&data=04%7C01%7Cmakowalski%40nvidia.com%7C35123e9917934d2c394008d959062d4c%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637638705786987665%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Sm3U%2FpUwMzDX8c8Lr2EgW2NHcGIBGG8mfj6%2Fr6Bfd6Y%3D&reserved=0>>
for it.

It could be really powerful (for studios) to have such a mapping defined in
Python. However, so far the USD code is purely written in C++, and doesn't
rely on any Python add-on. IF Python code is going to be used in this
process, I would strongly suggest a way to make things work also when the
add-on is disabled or otherwise not available (as in, not crash or disable
the import/export, but just have somewhat more limited functionality).



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.



I don't think it's a good idea to limit Blender's USD import/export
functionality in such a way. If it's so simple (as in, no dependencies),
why wouldn't it be bundled with Blender?



Cheers,

Sybren



On Fri, 6 Aug 2021 at 02:30, Michael A Kowalski <makowalski at nvidia.com<mailto:makowalski at nvidia.com>>
wrote:

Hello everyone,



As part of the ongoing USD development effort, I would like to propose
establishing a USD experimental branch on git.blender.org<https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit.blender.org%2F&data=04%7C01%7Cmakowalski%40nvidia.com%7C35123e9917934d2c394008d959062d4c%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637638705786987665%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=y0l4dB8nrCq3%2B49xBCdplp88g3gD%2F%2BGNtYf9blau7wg%3D&reserved=0>, 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.







_______________________________________________
Bf-usd mailing list
Bf-usd at blender.org<mailto:Bf-usd at blender.org>
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-usd<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.blender.org%2Fmailman%2Flistinfo%2Fbf-usd&data=04%7C01%7Cmakowalski%40nvidia.com%7C35123e9917934d2c394008d959062d4c%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637638705786997663%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=b%2FicnLNC2ct7uUvaxKw0KkfygU%2FZ%2BSZDJIWGq1ku944%3D&reserved=0>

_______________________________________________
Bf-usd mailing list
Bf-usd at blender.org<mailto:Bf-usd at blender.org>
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-usd<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.blender.org%2Fmailman%2Flistinfo%2Fbf-usd&data=04%7C01%7Cmakowalski%40nvidia.com%7C35123e9917934d2c394008d959062d4c%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637638705786997663%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=b%2FicnLNC2ct7uUvaxKw0KkfygU%2FZ%2BSZDJIWGq1ku944%3D&reserved=0>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.blender.org/pipermail/bf-usd/attachments/20210806/7fe40a19/attachment.htm<https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.blender.org%2Fpipermail%2Fbf-usd%2Fattachments%2F20210806%2F7fe40a19%2Fattachment.htm&data=04%7C01%7Cmakowalski%40nvidia.com%7C35123e9917934d2c394008d959062d4c%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637638705787007657%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=X2WvO9ZZhGljX6Q7fEMfHifuF5Cuky3wJCnk7AekATQ%3D&reserved=0>>

------------------------------

Subject: Digest Footer

Bf-usd mailing list
Bf-usd at blender.org<mailto:Bf-usd at blender.org>
https://lists.blender.org/mailman/listinfo/bf-usd<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.blender.org%2Fmailman%2Flistinfo%2Fbf-usd&data=04%7C01%7Cmakowalski%40nvidia.com%7C35123e9917934d2c394008d959062d4c%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637638705787007657%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=R4f%2BqessfMVtnaxeNpprqfKETi7DR6ebpwwnwKSJR54%3D&reserved=0>


------------------------------

End of Bf-usd Digest, Vol 12, Issue 3
*************************************


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


More information about the Bf-usd mailing list