MaterialX graph editor in solaris?

   3151   9   3
User Avatar
Member
355 posts
Joined: Nov. 2015
Offline
Seeing that MaterialX now has native graph editor, is sidefx going to implement this?

Attachments:
D7D8065F-2CD8-4B4F-BBDF-773D7FDA2C46.jpeg (687.0 KB)

hou.f*ckatdskmaya().forever()
User Avatar
Member
7734 posts
Joined: Sept. 2011
Online
traileverse
Seeing that MaterialX now has native graph editor, is sidefx going to implement this?

What would the utility be? Houdini is already node based and can create node graphs using mtlx nodes. It might be tricky to export them as valid mtlx files, but that's more of an export issue.
User Avatar
Member
11 posts
Joined: April 2017
Offline
What WOULD be awesome is the ability to edit the node graphs of existing MaterialX files in Houdini - importing as well as exporting.

The existence of this tool suggests it should be possible to do a 'proper' round trip:

Another DCC -> Import MaterialX graph -> Houdini edit -> Export to MaterialX -> Re-import to Houdini

Adding a 3rd party node editor would not seem sensible, though - agree there!
User Avatar
Member
7734 posts
Joined: Sept. 2011
Online
Scribbler
What WOULD be awesome is the ability to edit the node graphs of existing MaterialX files in Houdini - importing as well as exporting.

The existence of this tool suggests it should be possible to do a 'proper' round trip:

Another DCC -> Import MaterialX graph -> Houdini edit -> Export to MaterialX -> Re-import to Houdini

Adding a 3rd party node editor would not seem sensible, though - agree there!

Yes, proper round tripping and better canonical support for MaterialX in Houdini would be a plus.
User Avatar
Staff
1448 posts
Joined: July 2005
Offline
Solaris revolves around USD. Therefore Karma consumes USD scene rather than .mtlx files. And therefore the primary focus is USD rather than MaterialX.

However, Karma is extremely closely related to MaterialX, because the (internal) Karma shader nodes were originally 1:1 with MaterialX (now they are a superset; ie there are a few karma-only shaders). Therefore we have keen interest in MaterialX support.

But, because of Solaris, we prefer its integration thru USD rather than pure .mtlx. There is an ongoing work in the community to bridge USD and MaterialX together (usd-mtlx AWSF subgroup), and perhaps make USD a transport format for MaterialX shaders (that way MaterialX shader would be exportable/importable thru .usd files instead of, or in addition to .mtlx). That's our primary focus.

That's seems to be the direction. For example, MaterialX decided to decouple the geometry specification and material binding from the core spec, which allows the USD to take over, and allows MaterialX to focus on shader graph definition (something that's lacking in USD).

Scribbler
Another DCC -> Import MaterialX graph -> Houdini edit -> Export to MaterialX -> Re-import to Houdini
There is already a rudimentary "Export to MaterialX" via Right-click on the VOP node > Save > MaterialX ... menu. The actual work is done in the vop2mtlx.py script.

The import is very clunky but somewhat doable (it relies on the USD file format plugin for .mtlx).
1) Put down a Layer LOP (Tab > File), and load .mtlx file
2) Put down a Edit Material Network LOP, choose the Mtlx material primitive, click "Load".
Inside you will see an editable and re-exportable VOP network representing the MaterialX shader graph.

So the focus is on improving MaterialX support in USD, so that the file format plugin can robustly handle loading arbitrary .mtlx files. But, the other option (I think there is an RFE for it) is to load .mtlx files directly to VOPs. This would probably be implemented as a new script mtlx2vop.py.
User Avatar
Member
710 posts
Joined: July 2005
Offline
rafal
and perhaps make USD a transport format for MaterialX shaders
That's really what I hope to see, rather than dealing with .mtlx documents at all. Saving out valid .mtlx from Houdini was really hit or miss in my testing, whereas saving MaterialX as USD files "just works" and the networks rebuild in the Edit Material LOP exactly as they were made. So this is lossless within the context of Houdini, but I guess there is still some work needed to fully support the spec through USDShade: https://wiki.aswf.io/pages/viewpage.action?pageId=22286781 [wiki.aswf.io]
User Avatar
Member
8 posts
Joined: Oct. 2022
Offline
How to load generated "save vex code to file" back to material library network?
Is there a python way? I couldn't find any info.
User Avatar
Member
8513 posts
Joined: July 2007
Online
Antti1999
How to load generated "save vex code to file" back to material library network?
Is there a python way? I couldn't find any info.
I don't think you can, since it's not represented as nodes in USD unlike MtlX
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
8 posts
Joined: Oct. 2022
Offline
I don't think you can, since it's not represented as nodes in USD unlike MtlX

I'm new to Houdini in general and Python too.
When people make their own material managers how do they save selected nodes on a disk and then load it?
I was just experimenting with Houdini couple of days ago and tried to save some pretty complex material nodes with asCode() python function, but the generated code was enormous in size.
Is this the only way? Or correct way? I know this is off-topic and sorry
User Avatar
Member
7734 posts
Joined: Sept. 2011
Online
Antti1999
I don't think you can, since it's not represented as nodes in USD unlike MtlX

I'm new to Houdini in general and Python too.
When people make their own material managers how do they save selected nodes on a disk and then load it?
I was just experimenting with Houdini couple of days ago and tried to save some pretty complex material nodes with asCode() python function, but the generated code was enormous in size.
Is this the only way? Or correct way? I know this is off-topic and sorry

For a VOP Material Builder, right click and select Create Digital Asset to save as a new operator type.
  • Quick Links