Material X Standard Surface Material->.mtlx file->Reference

   Views 1541   Replies 2   Subscribers 2
User Avatar
Member
170 posts
Joined: July 2010
Offline
Hello,
I'm trying to write a Python script for Maya 2025 to convert Arnold standard surface shaders (aiStandardSurface) to Material X standard surface.
https://materialx.org/ [materialx.org]
i.e. a Material X shader compatible with USD hydra render delegates such as SideFX Houdini Karma.
NOT the Arnold Renderer flavor of Material X.

I'm making some progress on the Maya side, however, I wanted to do a reality check on the Houdini side:

In Houdini Solaris, in a Material Library LOP, I created a MtlX Standard Surface VOP, linked to a MtlX Surface Material VOP.
As per this tutorial...
https://www.youtube.com/watch?v=RpShFmwjMzg [www.youtube.com]
... with the mouse over the MtlX Material VOP, I right mouse selected Save->MaterialX...
I then reference the .mtlx file back into the Solaris context using a Sublayer LOP.
I then use an Edit Material Network LOP to try to reconstruct the referenced .mtlx shader network.
However, the result is a generic shader inside a subnetwork.
I would expect it to reconstruct the network with MtlX Standard Surface VOP, linked to a MtlX Surface Material VOP.
What am I missing?
Thanks
Edited by syntheticperson - Sept. 2, 2024 19:04:48

Attachments:
Solaris_SaveMaterialX.png (241.1 KB)
SubnetworkContainingGenericShader.png (260.6 KB)
GenericShaderInsideSubnetwork.png (304.9 KB)

User Avatar
Member
170 posts
Joined: July 2010
Offline
As an alternative test, I tried to export the Material Library containing the source Material X Standard surface & material to a USD file.
When I reference the USD file, and try to reconstruct it I end up with a Mtlx Displacement shader, a generic shader, and a USD Preview Surface VOP, each feeding into a collect VOP.
A little closer, but I expect a MtlX Standard Surface VOP, instead of a USD Preview Surface VOP.

Attachments:
ExportMaterialX_to_USD.png (187.1 KB)
USD_Preview_Surface_collection.png (251.9 KB)

User Avatar
Member
170 posts
Joined: July 2010
Offline
This problem has been resolved.
I started over with a clean Material Library LOP, and inside that a clean MaterialX->USD MaterialX Builder mtlxmaterial subnetwork.
When I wrote this out to a USD file and read it back in again, I was able to reconstruct the shader network successfully.
Thanks
  • Quick Links