Spencer Luebbert

spencer_luebbert

About Me

Art/Tech Art Director @ Disbelief.com

Connect

LOCATION
United States
WEBSITE

Houdini Skills

Availability

Not Specified

Recent Forum Posts

Scaling MaterialX Procedural Patterns June 2, 2022, 10:59 p.m.

I think the right idea is to ship higher level convivence mtlx nodes that are built out of standard mtlx nodes, not mtlx HDAs. That would keep things cross compatible.

How to extend the MaterialX standard library? May 13, 2022, 10:43 a.m.

I'm able to use custom mtlx VEX nodes and preview their output in Karma after running mtlx2HDA.py and mtlx2Karma.py (see this thread [www.sidefx.com])

But when I go to export a mtlx file from the vex graph (right click node -> Save -> MaterialX) I get a python error that it cannot find my custom node def.


If I manually drop my mtlx files that include the node def into the standard houdini library (C:\Program Files\Side Effects Software\Houdini 19.0.589\houdini\materialx) they will export as expected.

We'd rather pull in the node def mtlx files from a user package, so that we don't have to modify the houdini install directory.

We have a folder that gets pulled in as a user package (added to the houdini_path in C:\Users\<user>\Documents\houdini19.0\packages\myPackage.json) Houdini will automatically find a subfolder called "materialX" inside of our package folder, and it adds it to the environment variable MATERIALX_SEARCH_PATH, I confirmed this by running hou.getenv('MATERIALX_SEARCH_PATH') in the python console after Houdini starts up. If I understand how materialx is supposed to work, this SHOULD be enough to let houdini's materialx implementation find our node def mtlx files.

Does Houdini support using the MATERIALX_SEARCH_PATH for extending the standard library?

mtlx2hda.py | How do I use it? May 10, 2022, 9:46 a.m.

I got an answer in the ASWF slack. If you run mtlx2karma.py after mtlx2hda.py it will generate the karma shaders for the new HDAs. This is necessary because Karma does not use MaterialX's code generation, it implements each standard node directly.