Importing MaterialX USDs from Houdini

Hello there,

I’m just wrapping my head around USD and transferring my assets properly from Houdini to Omniverse Create ( while the dedicated connector app is still in the making :-) )

I’ve finally been able to import a USD asset into Create that has all the right materials and texture links intact and on the surface it looks like the stage inside Create is correct.

However, I quickly realised that the metallic map wasn’t showing and - upon closer inspection in the Material Graph - I came to the conclusion that all I was seeing was some kind of preview, based on the albedo map only.

So first of all, it’s great that things even go that far, but I’m a bit stumped, as the material seems to have imported with all its ‘channels’ correctly, i.e. metalness, roughness and the other channels are showing up in Create’s “Stage” panel. Why isn’t it interpreting things properly then? Or am I actually mistaken and what I’m seeing is just a jumble of data that Create can’t make sense of?

I wonder, what would be the best material setup to export assets from Houdini with all things intact? Is MaterialX the way to go? I’ve definitely had more success with that than using Houdini’s standard Principled Shader.

I came across this discussion here: https://forums.developer.nvidia.com/t/houdini-mdl-shader/172755/5
But the “MDL_Node” HDA that Omer is suggesting, doesn’t quite make sense to me yet (the readme file is also a bit too vague). Are there any resources that deal with exporting materials properly from Houdini for Omniverse Create, because I couldn’t find any.

Any hints would be much appreciated :-)

For reference, this is how things look like inside Houdini’s Karma renderer, when using this MaterialX setup:

Hello @Ferdinand13! I reached out to the development team for help on this. I’ll post back here when I have more information!

Thanks a lot Wendy!

Just as an FYI, I have been pulling my own hair out trying to decide between using a Material X pipeline (which I greatly prefer) or using an MDL pipeline. Omniverse Create supports the USD Preview Surface, but does not appear to support Material X. (Wendy, feel free to correct me here if I’m wrong.)

Hello All! Correct, Material X is not currently supported in Create yet, but it is something we are looking into.

Here is a possible work around suggested by the dev team:

There’s a difference in the setup of how Karma interprets the materialx representation within solaris in LOPs, if they want to transport that they could also have a fall back to a usdpreviewsurface type that will work within create. They can also use the materialx API via source to convert the materialx shader/look to and MDL, then try to layer that back into create as a new material/layer opinion. They could also layer this back in solaris as an additional material variant.

AcademySoftwareFoundation/MaterialX

MaterialX/ShaderGeneration.md at main · AcademySoftwareFoundation/MaterialX · GitHub

MaterialX: source/MaterialXGenMdl/MdlShaderGenerator.h Source File

We are also looking into creating a utility that will take a USD file with Material X materials and adds MDL outputs to those materials.