MaterialX in Houdini vs everywhere else?

   610   5   3
User Avatar
Member
357 posts
Joined: Nov. 2015
Offline
Hello, so I've been setting some cool materials using MaterialX inside Houdini, using different patterns, noises, composition nodes etc. They work great for Karma of course (both CPU and XPU) however, bring them in omniverse or unreal (which both claim to have materialX conversion for imported assets) will only acknowledge changes to the base mtlxstandard material. Not even mtlximage doesn't seem to be recognized in those applications.

My questions:

1. are those applications just lacking in proper materialX support? (which I really hope is the case lol)
2. Are any of MaterialX nodes using things outside the materialX specifications such that they will only work in houdini?
3. Are there any open source applications out there that supports USD and the full materialX spec where I can test my assets?
hou.f*ckatdskmaya().forever()
User Avatar
Member
711 posts
Joined: July 2005
Offline
From my understanding of it, there are a couple of ways that applications and renderers can support MaterialX: .mtlx documents and/or through USD.

From the Houdini docs: "Solaris and Karma utilze MaterialX through UsdMaterialX". Unless you go through the process of exporting and hand-editing .mtlx documents out of VOPs, MaterialX out of Houdini ends up as UsdShade networks. I think in order for other apps/renderers to faithfully recreate complex MaterialX mats from Houdini they would need to have solid USDMaterialX support. I can't speak to Omniverse or Unreal, but from my testing there are a lot of things that don't work right in the latest versions of Renderman and V-Ray. Maybe Arnold does a better job?

At the moment I get the impression that when you hear this or that application has MaterialX support, it's really more in the limited context of textures feeding into Standard Surface. Most of the .mtlx files floating around out there seem to fit that mold.

As far as out-of-spec nodes, Karma subnets have some goodies that will only work for Karma, whereas MaterialX subnets should only allow you to tab in nodes that are part of the spec I believe.


Happy to be corrected if any of that is wonky.
User Avatar
Member
357 posts
Joined: Nov. 2015
Offline
Siavash Tehrani
From my understanding of it, there are a couple of ways that applications and renderers can support MaterialX: .mtlx documents and/or through USD.

From the Houdini docs: "Solaris and Karma utilze MaterialX through UsdMaterialX". Unless you go through the process of exporting and hand-editing .mtlx documents out of VOPs, MaterialX out of Houdini ends up as UsdShade networks. I think in order for other apps/renderers to faithfully recreate complex MaterialX mats from Houdini they would need to have solid USDMaterialX support. I can't speak to Omniverse or Unreal, but from my testing there are a lot of things that don't work right in the latest versions of Renderman and V-Ray. Maybe Arnold does a better job?

At the moment I get the impression that when you hear this or that application has MaterialX support, it's really more in the limited context of textures feeding into Standard Surface. Most of the .mtlx files floating around out there seem to fit that mold.

As far as out-of-spec nodes, Karma subnets have some goodies that will only work for Karma, whereas MaterialX subnets should only allow you to tab in nodes that are part of the spec I believe.


Happy to be corrected if any of that is wonky.


Thanks Siavash, I'll see if I can get info from Nvidia and Epic side about future plans with regard to full materialX support. Having seamless interoperability across these apps with usd is awesome, but throwing in full materialX spec support across the board would just make it a breeze.
hou.f*ckatdskmaya().forever()
User Avatar
Member
432 posts
Joined: Feb. 2012
Online
From what I've seen Houdini MatX and Maya LookDevX (MatX) are the only two places where you can go back and forth without any issues. Everywhere else they do not have full support. Obviously, you have to use as it was mentioned MaterialX subnet and only Matx nodes, not karma ones. The same can be said about Maya and LKDX
User Avatar
Member
8599 posts
Joined: July 2007
Offline
At this point Id assume every implementation has limits, for example last time I checked Karma XPU supported only up to 2 standard surfaces being mixed and did not support building shaders from Bsdf nodes

So its always good to find out the extends of MtlX support in any particular DCC rather than automatically assuming full support
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
12 posts
Joined: May 2014
Offline
it works in unreal, just need to have the actual .mtlx file refrence inside the material for it to work,
sadly i can't seem to get a read back using the reference LOP, anyways I don't think this is good way to work,
either unreal makes a way to read the materialx inside the usd or houdini makes a way to reference Shaders inside usd
or even exporting it properly, now its either usdpreview or unrealMaterial property.
Edited by 0chumpy - May 9, 2024 23:28:20
  • Quick Links