On this page

Karma CPU and XPU

  • The new OIIO-based driver for OpenEXR is now enabled by default. Houdini will save multi-part OpenEXR files by default from Karma, COPs or MPlay. You can disable this behavior by setting the HOUDINI_OIIO_EXR to 0.

  • A new USD-friendly lens shader workflow for Karma makes working with lens shaders more artist-friendly, in particular when you animate parameters. Lens shaders also support blue noise.

    There is now a Karma Lens Material LOP to create an appropriate USD-friendly shader.

    The Camera LOP has a Lens Material parameter where you can assign to a USD material with a button. This button creates a Karma Lens Material node and connects it to the camera automatically.

  • You can no longer specify the render delegate on the Karma Render Properties LOP. In previous versions this possibility often lead to confusion, because it was no always clear which delegate was used for rendering. As a side effect, the “Render engine mismatch” message no longer appears. Now, the only relevant instance for determining the delegate is the USD Render ROP.

  • Karma has a new abortnogpudevice render property that cancels the render process when there’s no working GPU device. This is especially helpful for farms rendering on Karma XPU to detect not working devices.

    You can find this feature on the Karma Render Properties LOP. With Engine Settings set to XPU Parameters, open the Advanced ▸ Driver tab and turn on Cancel Render on No Working GPU Devices.

  • Added acceleration blur support on basic curves and meshes in Karma CPU and XPU.

  • Karma will now track memory used for deep image rendering.

Karma CPU

  • Improved rendering of partially opaque surfaces intersecting other solid geometry. This type of render might have had artifacts and holes. The new approach produces clean and correct results.

  • Added support for volume primitives in ambient occlusion AOVs.

Karma XPU

  • Karma XPU uses “Shader Execution Reordering” (SER) for the Optix engine with driver versions 555 and higher. Depending on the scene, rendering can be roughly two times faster on Ada Lovelace GPUs (and later architectures). Note that some scenes might not profit from SER and still render at the same speed as before.

    The image below shows a comparison of the same scene rendered with Karma XPU in Houdini 20 (left) and 20.5 (right). While the right image took 1 m 37 sec to complete, the right image is just at 30%.

  • Generally improved compilation and rendering performance with Karma XPU.

  • In Karma XPU, the process of writing AOV data (e.g. deep image data, cryptomatte, etc…) can now be multi-threaded to improve performance, for when very fast (or multiple) GPUs are matched with a slow CPU. Enable via the KARMA_XPU_NUM_PER_DEVICE_BLENDING_THREADS environment variable.

  • Karma XPU supports the MtlX Ambient Occlusion VOP.

  • Karma XPU is now able to output more AOVS

    • Motion vectors and velocity

    • Ambient occlusion

    • Facing ratio

    • Geometric facing ratio

    • N (camera Space, facing)

  • With Karma XPU, the MtlX Geometry Property Value VOP and USD Primvar Reader VOP nodes now enforce strict-typing that matches Karma CPU. If the type of the node (e.g. float) does not match the type of the primvar data (e.g. color3), then the default value on the node will be returned instead.

  • Added support for use of coat BSDF label in LPE AOVs in Karma XPU.

  • Karma XPU supports mse and variance pixel filters which are used Pixar’s RenderMan denoiser.

  • In Karma XPU, MaterialX emission is now attenuated by Schlick Fresnel weight when placed under a coating as defined by the standard surface.

  • In Karma XPU, MaterialX opacity now only supports monochromatic opacity as specified by the standard surface definition.

  • Added XPU support for texture quality inputs karma_blur, karma_pixelblur, karma_width and karma_scolorspace through the Edit Properties LOP.

  • Karma XPU supports curve geometry lights.

  • Karma XPU now supports the Variance Oracle (aka “adaptive sampling”)

  • Karma XPU has functionality improvements to the background plate. The background plate is now a MaterialX network and background holdout object can cast and receive shadows from foreground elements, but isn’t allowed to cast shadow on itself.

  • Point rendering in Karma XPU now matches Karma CPU, and got two more modes additionally to spheres: disk and oriented disk. You can find the new modes on the Karma Render Settings LOP. There, open the Rendering ▸ Geometry and Shading tab. From the Render Points as dropdown menu, choose Discs or Oriented Discs.

    Alternatively, use the Render Settings LOP. There, you can find the Render Points as dropdown menu on the Karma ▸ Default Geometry Settings tabs Geometry section.

Rendering

  • The new Karma Sky Atmosphere LOP is a realistic volumetric planetary atmosphere system. You can now mimic for effects like ozone, different scattering methods and the influence of the planet’s ground on the atmosphere. Especially Houdini Clouds will profit from the new system, but it’s also possible to create moody sunsets or simulate certain weather conditions.

    The Karma Physical Sky LOP also provides an Atmospheric mode and this is the recommended workflow. With this mode you can combine the advantages of the physical and the volumetric atmosphere system to achieve stunning effects that depend on the time of the day and you location. The image below shows the same cloud rendered in Houdini 20 (left) and Houdini 20.5 (right).

  • Karma now has Slap Comp integration with husk through a new --slap-comp command line argument.

    The USD Render ROP also has a Slap Comp tab that lets you specify the operations you want to process after rendering.

  • The Karma Render Settings LOP, Karma Standard Render Vars LOP and Karma Render Products LOP can now specify custom parent prim locations for the render products and rendervars.

  • You can now disable displacement shading completely (rather than applying bump mapping). You can find the new, third option in the node’s Dicing section. There, open the True Displacement dropdown menu.

  • Husk now has a new --frame-list option to render a specific, space-separated list of frames. Note that negative values aren’t allowed, because the hyphen/negative sign could be misinterpreted as a command.

  • New blue noise implementation as Karma’s default noise method. Blue noise creates better and less obvious noise patterns, and improves overall image quality.

  • Added a new setting to the Render Geometry Settings LOP to control the style of motion blur (Rotation Blur or Linear Blur). You can find the toggle on Karma ▸ Motion Blur ▸ Motion Blur Style. The default is Rotation Blur. Linear Blur is only required in very rare cases.

  • Ability to prevent holdouts for contributing to utility (i.e. non-LPE) AOVs by adding a noholdouts; prefix to the variable name in the Render Var LOP’s Source Name field.

  • Camera-space/view-facing Normal AOVs and RayImports.

  • The Karma Physical Lens VOP now supports blue noise.

    The node lets you also define OpenCV distortion constants on an OpenCV tab.

Lighting

  • You can now instance light sources, for example if you want to scatter lights to illuminate a fun fair, a carousel or a complete city at night with cars driving through the streets. You can also randomize the lights' colors and intensities.

Shaders and materials

  • MaterialX has been updated to 1.38.10. The updated version comes with various new nodes, for example

    Tip

    For a complete changelog, please visit the official MaterialX website. The Announcements section contains links to appropriate release pages.

  • The updated Karma Fur VOP has Roughness TT Scale and Roughness TRT Scale exposed on the Cortex tab. To use them, turn on Advanced Roughness. Meaning and functionality is identical with the parameters on the Karma Hair VOP.

  • MaterialX MtlxStandardSurface now supports Thin Film on metallic surfaces.

  • A new Karma ST Derivatives VOP node, which allows for the calculation of derivatives (in ST space) for use in shader networks.

  • Karma AOV VOP in MaterialX shader graph is now allowed to use the same variable name as the attribute name used by a Geometry Property Value VOP as long as the types match.

  • On Material X transformation nodes, you can now use tangent on the To Space parameters if you want to use object/world space vector displacement maps from sculpting applications.

Other improvements

  • Karma will now pick up varying primvars on point and vertex primitives.

  • The OIDN denoiser was upgraded to version 2.2 with GPU support on some systems.

Colors and tone mapping

  • Added default OCIO file rules to match the patterns lin_srgb and lin_rec709.

  • When Karma auto-creates optimized .rat files and the working color space is not Linear Rec 709, the color space will be preserved properly. This is primarily noticeable when using not mip-mapped OpenEXR textures in Karma XPU.

What’s new in Houdini 20.5