Import MaterialX from USD

When I tried importing a usd file, with MaterialX references or MaterialX nodes, through the Interchange system into Unreal 5.7, the process added USDPreviewSurface Material Instances instead of creating the Substrate materials, in this case OpenPBR shaders. If we export the materials to a mtlx file and import that file separately, the substrate material gets imported correctly.

[Attachment Removed]

Steps to Reproduce
Add a MaterialX shader inside a USD file, or reference a materialX file from a USD file.

Import that USD file in Unreal

See that the shaders are not imported through MaterialX but USDPreview material instances.

[Attachment Removed]

Greetings Diego,

When importing your file, did you select the ‘mtlx’ render context in the translator’s settings?

In Unreal Engine 5.7.4, you can select it from the import dialog before clicking on the ‘Import’ button.

To open the translator’s settings click on the 3 vertical dots at the end of the ‘Import Source’ path. Circled in green in image below:

[Image Removed]The translator’s settings dialog will pop up. Then select the ‘mtlx’ render context as underlinedd in green below:

[Image Removed]That done, the materials should be Substrate ones using one of the predefined OpenPBR substrate slabs.

Let me know how it goes for you.

Regards,

Jean-Luc

[Attachment Removed]

Hello Jean-Luc!

I am going to give it try to make sure that I have selected those options.

I am importing these assets through python code and I think I select all the render contexts, but I have to double check and do some manual tests to make sure.

I’ll let you know about the results.

Thanks!

[Attachment Removed]