Deborah R. Fowler
Houdini 19, 19.5 and 20 - highlighting Material X and Karma
Posted Oct 30 2021Updated Dec 26 2023
Now that Houdini 20 is here, Karma xpu is no longer in beta. As I continue to explore Karma, specific notes will be kept here.
H19: Houdini is moving from mantra to karma and as a result, a new shader paradigm called MaterialX
Also, please see my section on Redshift
TIP Interface improvements in H19 and up
- vex window can be zoomed in and out with ctrl + and ctrl -
- You can add comments multiline using ctrl + /
- reminder use ctrl t to create another tab and pin it for easy
access to network, shop, out etc.
Windows 11 note and NVIDIA GEFORCE Experience drivers
Material X
Supported in Houdini Karma now, originally developed at Lucasfilm and "released as open source in 2017 with Sony Pictures Imageworks, Pixar, Autodesk, Adobe and SideFX contributing to its ongoing development".
In Houdini 20, Karma has a material linker node that directly
accesses AMD materials (click on the gearbox)
Using in Houdini:
An easy way to get started is to type in the tab menu mtlx standard surface
Using Karma
- SideFX has provided a karma node in the regular out context (however be aware that as of this post, there can be some inconsistencies with update in the karma viewport)
- The other alternative is to use stage/solaris and use the scene import node
https://entagma.com/test-driving-houdini-19-karma-xpu-materialx-and-a-hidden-gem/
Below are my take home points from that video:
Karma rop in out context is great but can be unreliable updating Karma in solaris/stage works
- cpu is good, however xpu is very beta
- scene import all can be used if you like working in obj
NOTE: xpu may not work depending on your graphics card AND drivers - be sure to install the NVIDIA GEFORCE Experience drivers
NOTE: MaterialX will not work in mantra, may not show in OpenGL
Material X is a set of well defined nodes (standard library, procedural and PBR - not written in vex/vops - so you can't dive inside). However you can use vops to join up the material nodes. So not only karma can be used with Material X. They get translated into USD. This means any render delegate that supports Material X will be able to work with these materials.
Material X is the USD for shaders.
WARNING: Currently XPU will not match the look of CPU - buyer beware (BRDF interpretations differ)
There are sample materials if you use a file node to access the material X folder.They are xml files that describe the material. Then use a material assign.
An example file exists exampleUSDMaterialX.hiplc
So for example, inside the standard_surface_glass.mtlx it will look like this:
To edit this in solaris, you can use an edit material network and edit material properties node to "layer" or adjust the values (currently I have not been able to get this fully functioning for the material network - investigating).In version 19.0.383 currently "Load" causes the material to disappear from the render.
Edit material properties works if you populate and then "set" or "set or create".
However, there is an even easier way, which is to override using vex snippets in the material assign node:
It will put a render into the folder that is in progress when you render to disk - not used to the progressive refinement yet ...
To be continued ...