<html><head></head><body><div></div><div><style>body{font-family:Helvetica,Arial;font-size:13px}</style><div style="font-family:Helvetica,Arial;font-size:13px">Hi Michael,</div><div style="font-family:Helvetica,Arial;font-size:13px"><br></div><div style="font-family:Helvetica,Arial;font-size:13px">Thank you for sharing this. I suggest you go ahead and create a branch to present your work.</div><div style="font-family:Helvetica,Arial;font-size:13px">I updated the project description to feature parts of your initial message <a href="https://developer.blender.org/project/manage/118/">https://developer.blender.org/project/manage/118/</a></div><div style="font-family:Helvetica,Arial;font-size:13px"><br></div><div style="font-family:Helvetica,Arial;font-size:13px">As specified there, each item of the list should be presented and reviewed individually, with the goal of having it included in the master branch.</div><div style="font-family:Helvetica,Arial;font-size:13px"><br></div><div style="font-family:Helvetica,Arial;font-size:13px">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.</div> <br> <div class="gmail_signature">
        <title></title>
      
      
        <div>
            <font face="Helvetica, Arial, sans-serif">Regards,</font>
        </div>
        <div>
            <font face="Helvetica, Arial, sans-serif">Francesco</font>
        </div>
        <div>
            <font face="Helvetica, Arial, sans-serif">
                <br>
            </font>
        </div>

        <div>
            <font face="monospace">--------------------------------------------------------------</font>
        </div>
        <div>
            <font face="monospace">Francesco Siddi  -  <a href="mailto:francesco@blender.org">francesco@blender.org</a>
                  -  <a href="http://www.blender.org/">www.blender.org</a>
            </font>
        </div>
        <div>
            <font face="monospace">COO at Blender and Producer at Blender Studio</font>
        </div>
        <div>
            <font face="monospace">Buikslotermeerplein 161 - 1025 ET Amsterdam - The Netherlands</font>
        </div>

      
</div> <br><p class="airmail_on">On 6 August 2021 at 15:10:30, Michael A Kowalski (<a href="mailto:makowalski@nvidia.com">makowalski@nvidia.com</a>) wrote:</p> <blockquote type="cite" class="clean_bq"><span><div lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word"><div></div><div>






<div class="WordSection1">
<p class="MsoNormal">Thanks for the reply, Sybren.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">The UMM addon hasn’t yet been released publicly on github.   We are working on that now, and this source will be available soon.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">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.
</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">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.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Thanks,</p>
<p class="MsoNormal">Michael</p>
<p class="MsoNormal"></p>
<p class="MsoNormal"> </p>
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Bf-usd <<a href="mailto:bf-usd-bounces@blender.org">bf-usd-bounces@blender.org</a>> <b>On Behalf Of
</b>Sybren A. Stüvel<br>
<b>Sent:</b> Friday, August 6, 2021 6:09 AM<br>
<b>To:</b> Blender USD Workgroup <<a href="mailto:bf-usd@blender.org">bf-usd@blender.org</a>><br>
<b>Subject:</b> Re: [Bf-usd] USD experimental development branch proposal</p>
</div>
</div>
<p class="MsoNormal"> </p>
<table class="MsoNormalTable" border="1" cellpadding="0" style="background:#ffeb9c">
<tbody>
<tr>
<td style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><b><span style="font-size:7.5pt;font-family:"Verdana",sans-serif;color:black">External email: Use caution opening links or attachments</span></b><span style="font-size:7.5pt;font-family:"Verdana",sans-serif;color:black">
</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"> </p>
<div>
<div>
<div>
<div>
<p class="MsoNormal">Hello,</p>
</div>
</div>
<p class="MsoNormal"> </p>
<div>
<div>
<p class="MsoNormal">On Fri, 6 Aug 2021 at 02:30, Michael A Kowalski <<a href="mailto:makowalski@nvidia.com">makowalski@nvidia.com</a>> wrote:</p>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">As part of the ongoing USD development effort, I would like to propose establishing a USD experimental branch on <a href="http://git.blender.org">git.blender.org</a>, initially based on the design and feature list
 described below.</p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<div>
<p class="MsoNormal">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.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">UNIVERSAL MATERIAL MAPPING (UMM) SUPPORT</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.</p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<div>
<div>
<p class="MsoNormal">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
<a href="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">
web search</a> for it.</p>
</div>
<div>
<p class="MsoNormal">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).</p>
</div>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.</p>
</blockquote>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
</div>
<div>
<p class="MsoNormal">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?</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">Cheers,</p>
</div>
<div>
<p class="MsoNormal">Sybren</p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"> </p>
<div>
<div>
<p class="MsoNormal">On Fri, 6 Aug 2021 at 02:30, Michael A Kowalski <<a href="mailto:makowalski@nvidia.com">makowalski@nvidia.com</a>> wrote:</p>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hello everyone,</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">As part of the ongoing USD development effort, I would like to propose establishing a USD experimental branch on <a href="http://git.blender.org">git.blender.org</a>, initially based on the design and feature list
 described below.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Feedback and comments are welcome!</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thank you.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Best Regards,</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Michael</p>
<div style="border:none;border-bottom:solid windowtext 1.0pt;padding:0in 0in 1.0pt 0in;border-color:currentcolor currentcolor windowtext">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">USD BRANCH DESIGN AND FEATURES</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">The following is a list of new IO features and improvements supported in this branch:</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   * Instancing import:  Import USD scene instances as Blender collection instances.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   * 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.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   * Environment map IO:  Logic to convert between USD dome lights and Blender world materials, including environment textures.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   * 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).</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   * Curve export.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   * Armature export:  Export armatures and skinned meshes to USD skeletons and skeletal animations.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   * Light unit conversion:  Experimental code to convert between light intensity units in Nits and Blender’s light energy units, on import and export.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   * 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.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   * Export to USD shader nodes:  Convert Blender shader nodes to UsdPreviewSurface nodes, MDL material nodes or a custom USD representation of Cycles shaders.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   * Import MDL materials:  Convert MDL materials to Blender shader networks.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   * 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.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   * Option to specify a default primitive on export.
</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   * Option to add a root primitive on export. This option adds a single prim as the parent of all exported prims.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Near term work in progress includes:</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   * Option to export meshes as individual USD “prop” files that are referenced in the scene.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">UNIVERSAL MATERIAL MAPPING (UMM) SUPPORT</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.</p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> </p>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
Bf-usd mailing list<br>
<a href="mailto:Bf-usd@blender.org">Bf-usd@blender.org</a><br>
List details, subscription details or unsubscribe:<br>
<a href="https://lists.blender.org/mailman/listinfo/bf-usd">https://lists.blender.org/mailman/listinfo/bf-usd</a></p>
</blockquote>
</div>
</div>
</div>


_______________________________________________<br>Bf-usd mailing list<br><a href="mailto:Bf-usd@blender.org">Bf-usd@blender.org</a><br>List details, subscription details or unsubscribe:<br><a href="https://lists.blender.org/mailman/listinfo/bf-usd">https://lists.blender.org/mailman/listinfo/bf-usd</a><br></div></div></span></blockquote></div></body></html>