<div dir="ltr">Hello Blender users and fellow USD enthusiasts.  We'd like to propose a new project from us at AMD and get some feedback before we start working on it.  And hopefully get some approval from the Blender Foundation.<div><br></div><div>We recently released our "Blender Hydra Radeon ProRender" addon and think this could have some real value being added directly into Blender.  <a href="https://github.com/GPUOpen-LibrariesAndSDKs/BlenderUSDHydraAddon">https://github.com/GPUOpen-LibrariesAndSDKs/BlenderUSDHydraAddon</a> Or if you want watch a video on it:  <a href="https://www.youtube.com/watch?v=T7l8rVUvMbs">https://www.youtube.com/watch?v=T7l8rVUvMbs</a><br clear="all"><div><br></div></div><div>In terms of benefits to users, we see a few.  </div><div>1.  Allow an easy way for renderers to integrate to Blender via Hydra.  Currently every single render addon duplicates export code, this uses Hydra as the middle layer so that could be skipped.</div><div>2.  Enable USD scene composition via a node tree.  We heavily borrowed this idea from Houdini, but in the same lines as geometry nodes. </div><div>3.  Imported USD data is kept in references that are only brought in at render time.  This has obvious benefits for memory.  But we do copy the USD nodetree into the outliner via "Empty" objects, which allows users to transform, etc the USD objects in the normal Blender way. </div><div>4.  MaterialX nodetree.  One problem with all renderers in Blender is there is no standard way to describe material nodes.  We tried to solve this by making a MaterialX nodetree which is becoming the open standard in other products like Houdini, Autodesk, substance etc.  </div><div><br></div><div>Some todo's I see for bringing this into mainline. </div><div>1.  Aligning with the current import / export USD work that is being done.  We currently translate the blender data via python and the USD python binding but obj.  Moving this directly into blender's code where it could use the internal C api would be advantageous.</div><div>2.  Writing a proper scene delegate for Blender's data to Hydra.</div><div>3.  Making the MaterialX workflow a bit simpler.  It might/should be possible to just use blender's nodes and translate them at render time to MaterialX nodes.  </div><div>4.  Integrating the USD data representation in Blender a bit more tightly.  Using the empty objects for each USD prim is a bit awkward.  </div><div><br></div><div>We think this workflow would have a great benefit for users, both in the interop with other apps, and allowing a more "industry standard" USD workflow.  Comments, thoughts?</div><div>Brian and the AMD team.</div></div>