Deborah R. Fowler
Karma and Houdini - highlighting Material X and Karma
Posted Oct 30 2021Updated Jan 25 2025
https://www.sidefx.com/docs/houdini/solaris/karma.html
Karma is the replacement for Mantra (as Mantra was not designed for USD files format). When discussing Karma, USD and Solaris should be mentioned.
https://www.sidefx.com/products/karma/compare-karma-h205/
also of interest https://www.sidefx.com/faq/karma/#faq538
This page will mainly focus on Karma. Karma provides both cpu and xpu (gpu) options. In Houdini 20/20.5 Karma xpu is no longer in beta, it is gold. Karma cpu is production ready. As I continue to explore Karma, specific notes will be kept here.
As Houdini moves from mantra to karma a new shader paradigm called MaterialX can be used. Karma will respect the principled shader for the most part. Alternatively you can use other renders such as Redshift (please see my section on Redshift)
Material X
For more examples see Shading in Karma
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)
Sample file
corresponding to the video overview of using Karma with
Material X (and principled shader) on vimeo and https://youtu.be/Nj95b4ZCtMI
karmaMtlXColorVariation.hiplc shows color variation.
What about if you have pieces of objects that need to come into lops? Use groups and packing.
karmaMtlxgroups.hiplc
Using Karma
- An easy way to use Karma for beginners is to create a lop
network in the obj context and use scene import all
(or sop import)
- The other alternative is to use stage/solaris and use the
scene import node (or sop import)
- 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 so not recommended - if you dive inside, it is just a usd rop and a lopnet)
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 (I have not had that experience now in 20). Karma in solaris/stage works.
- cpu is good, however xpu has been upgraded since that video,
is now gold but it may be advised to experiment in gpu and
render in cpu
- scene import all can be used if you like working in
obj (we will explore more sophisticated/efficient techniques,
but this is a quick start)
If you are transitioning from Mantra, you can still use the principled shader.
NOTE: xpu may not work depending on your graphics card AND drivers - be sure to install the NVIDIA GEFORCE Experience drivers (see troubleshooting tip)
NOTE: MaterialX will not work in Mantra, may not show in OpenGL. NOTE: As of Houdini 20.5, the default viewport is Vulkan (beta).
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)