[Bf-usd] USD - UMM

Brecht Van Lommel brecht at blender.org
Mon Aug 9 23:37:02 CEST 2021


In general I prefer Blender to get MaterialX support and have that be the
primary supported way to import/export materials in Blender. Supporting MDL
as well seems fine, we have many importers/exporters and if they get
independently and actively maintained we generally don't have an issue with
that. But as far as Blender Foundation development goes I think MaterialX
should be the priority.

For UMM we should have a look at the actual library before deciding if that
can be bundled with Blender, it's not fully clear to me what that entails.


On Sat, Aug 7, 2021 at 1:14 AM Michael A Kowalski via Bf-usd <
bf-usd at blender.org> wrote:

> 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   -  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)
> 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> *On Behalf Of *Sybren A.
> Stüvel
> *Sent:* Friday, August 6, 2021 6:09 AM
> *To:* Blender USD Workgroup <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>
> 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>
> 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
> 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
> 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
> 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
> *************************************
>
>
>
> _______________________________________________
> Bf-usd mailing list
> Bf-usd at blender.org
> List details, subscription details or unsubscribe:
> https://lists.blender.org/mailman/listinfo/bf-usd
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.blender.org/pipermail/bf-usd/attachments/20210809/4f885b8e/attachment-0001.htm>


More information about the Bf-usd mailing list