On this page |
Karma ¶
-
Karma now supports stencil maps through the
Render Geometry Settings LOP. You can find the new parameters on the Karma tab’s Shading section.
-
Karma’s variance oracle is now capable of estimating variance in multiple planes to avoid undersampling and noisy AOVs. You can add a space-separated list of planes to the Karma Render Settings LOP. There, go to Advanced ▸ Sampling ▸ Primary Samples and add the AOVs to the Planes parameter. For example, if you want to improve a holdout AOV named
foo
, enterC foo
. Now both the beautyC
and holdout AOVfoo
will have significantly less noise. -
Karma will now properly update in IPR when a displacement shader references a COP texture. This requires you to turn on Continuous Dicing.
-
Karma will now displace vertices on curve meshes when there’s a
displacement shader applied to the curves. This is similar to Karma’s displacement of point meshes.
-
Karma now supports the
colorSpace
metadata on material parameters (including colors and texture map parameters).
Karma XPU ¶
-
The new Pre-compile Karma XPU Render Kernels feature aims to improve interactivity, and reduce the time to first pixel when rendering with Karma XPU. Note that this feature is totally optional and Karma XPU’s functionality is not affected if you don’t want to pre-compile. The render kernels will naturally be compiled on-demand when rendering.
-
Karma XPU now supports volumetric lights through the new
Geometry Light LOP. With the API Schema dropdown menu’s VolumeLightAPI option you can turn a volume primitive into a light source.
-
In Karma XPU, albedo maps can now have brightness values greater than 1. The results will be the same as with Karma CPU.
-
The Uniform Volume feature on the Render Geometry Settings LOP now works on points.
-
Karma XPU now supports partial opacity in conjunction with background holdout materials. In previous versions, this material type could only cast solid shadows on non-holdouts.
-
Karma XPU now supports
string
primvars. You can, for example, define a texture path primvar and connect it to the file input of anMtlX Image VOP using an
Mtlx Geometry Property Uniform Value VOP.
-
MIS Compensation is now also available for Karma XPU, improving IBL/dome and Karma Physical Sky lights.
-
Karma XPU now supports shadow linking for up to four geometry subsets per scene. Shadow linking means that only a subset of a geometry will contribute to the object’s shadow.
-
You can now blend up to 16
MtlX Standard Surface VOPs or
MtlX OpenPBR Surface VOPs through
MtlX Mix VOPs. In previous versions, blending was limited to two shaders.
-
Karma XPU now performs Data Deduplication, which reduces memory usage when identical geometry or primvars are present in a scene.
Husk ¶
-
husk
will now write a checkpoint and snapshot file when hittingSIGTERM
. For example, when you runkillall -SIGTERM karma
, you’ll get a partial image instead of a full render. -
husk
can now override all render products using the command line option. For example, imagine a USD file that has akarma:dcm
deep image. When you executekarma -o x.exr,d.exr -V1 dcm.usd
, you’ll getx.exr
andd.exr
instead ofoutput.exr
anddcm.exr
. This works with render delegates other than Karma. -
New husk auto-tiling features:
-
Support for deep images.
-
--autotile-res
option to specify the maximum resolution of tiles when tiling the image. -
--tile-count ‹x› ‹y›
option to define the number of tiles (x * y
) to be rendered. This works only in conjunction with the--autotile
flag.
-
-
husk
now has a command line option to add metadata to the output image. For example, if you run a command likehusk --extra-metadata custom-key "Hello world" -o karma.exr test.usd
, and then runiinfo -v karma.exr
, you’ll see the custom metadata. -
husk
will now check if render products can be created before rendering. For example, if you've defined an invalid file path for your images and AOVs,husk
will write out a warning that the location doesn’t exist and the render process won’t start. Note that this check will also be performed when you start a render with aUSD Render ROP’s Render to Disk or Render to Disk in Background. To bypass this check, use the
--disable-disk-check
option. -
husk
now determines the render delegate by:-
looking for the (
--renderer
) command line option (highest priority) -
looking for
husk:default_delegate
property on theRender Settings LOP
-
using the
HOUDINI_HUSK_DEFAULT_DELEGATE
environment variable
-
New nodes ¶
-
The new
Karma Texture Baker LOP lets you write out a wide range of standard and custom AOVs. There’s also a complete workflow guide available with this node.
-
The new
Portal Light LOP simplifies the creation of portal lights. The node lets you define rectangular portals. Note that the Portal Light LOP only works in conjunction with the
Dome Light LOP. The dome light provides a Portals parameter where you add the Portal Light LOP(s) to make them work. You can find more information here.
-
The new
Karma Shadow Catcher LOP lets you configure render-time hold-out and matte objects.
-
A new
Bake GSplat SOP supports Gaussian Splatting in Karma XPU. The node expects a PLY input file with a point cloud for fast rendering in Karma XPU. Please note that this technique is currently a technical preview and not production-ready.
-
The new Karma Whitewater VOP allows volumes to have a specular component. You can also use a Karma Whitewater Material recipe to create a basic whitewater shader that uses this VOP. Whitewater occurs in turbulent water, like rapids or fast-flowing sections of rivers, creeks, but also crashing ocean waves. The VOP is compatible with Karma CPU and Karma XPU.
-
A new
Karma Fur 2.0 VOP now provides GGX wetness parameters. The parameters, located on the Dirt & Wetness tab, are named Wetness, Wetness Color, Wet IOR and Wet Roughness.
The node also comes with presets for many different types of fur, e.g. bobcat, dog, fox, but also human hair.
Igor Zanic -
A new
Karma Melanin VOP improves hair, fur and feather rendering. The Karma Melanin VOP simulates how hair reacts on different pigment concentrations of melanin and pheomelanin.
-
The new
Render Pass LOP creates or edits a
UsdRenderPass
prim which represents a render pass. -
The new
Karma Ray Switch VOP lets you evaluate colors or inputs based on the ray type, for example diffuse, glossy refraction, or SSS. You can also create sophisticated material mixes.
-
You can now find a Metadata tab on the Karma Render Settings LOP. There’s also a new
Husk Image Metadata LOP that adds custom metadata to render products and render vars (AOVs) through
husk
.
Node improvements ¶
-
The Render Geometry Settings LOP now provides Limit Components and Limit Color. The first parameter contains a space-separated list of ray types like
reflect
orrefract
. When a ray of the given type reaches its limit, you’ll see the Limit Color in the rendered image. -
The
Karma Render Settings LOP now uses recipes instead of the Quick Setup parameter; that parameter has been removed.
-
An improved Automatic Ray Bias function on the Karma Render Settings LOP lets you render even complex scenarios without having to tweak the (manual) Ray Bias parameter. For example, a glass with nested dielectrics often required a very low Ray Bias. With the new automatic mode you don’t have to test different values anymore. Another side effect is that Karma XPU is now on par with Karma CPU.
-
The
Karma Background Plate LOP has an improved user interface for a faster and more intuitive workflow.
-
A new
direction
input on theKarma Hextiled Texture VOP lets you orient hex-tiles based on curve tangents.
-
The
Karma Hair VOP now has an
absorption
input that’s required in conjunction with the new Karma Melanin VOP. -
The
MtlX Image VOP now has support for the optional (and hidden)
karma_blur
,karma_pixelblur
andkarma_width
quality inputs. These properties can be added using the recipe on the VOP or by accessing them through theEdit Properties LOP.
-
New Fresnel Darken parameter on the Fake Caustics section of the
Render Geometry Settings LOP. A value of
0
does nothing. With higher values, the Fresnel effect becomes darker, with the shadow being fully dark at1
. -
A reworked
Karma Ray Import VOP lets you quickly change types for many variables like
ray:curveattribP
orray:hitNg
. -
The
MtlX Worleynoise3D VOP and
MtlX Worleynoise2D VOP now have a Cell Style dropdown menu that lets you choose from Distance and Solid cell types.
-
Improved handling of
CoordSys
bindings on theCoordinate System LOP.
-
On the Render Geometry Settings LOP, you can now set the Volume Shadow Step Rate parameters to values smaller than
1
. This will accelerate the rendering, but at the cost of quality and accuracy. -
A new Lookup Offset mode accelerates motion blur rendering with Houdini and VDB volumes. You can find the mode on the Render Geometry Settings LOP. There, go to the Karma ▸ Motion Blur ▸ Volume Velocity Blur Mode dropdown menu.
-
The Karma Ray Import VOP now provides a
ray:backface
boolean variable (0
,1
) that indicates if the hit surface is a backface. -
The USD Render ROP node’s Husk tab now has a Texture tab that lets you conveniently control OpenImageIO texture options in
husk
through parameters and dropdown menus. You can, for example, adjust the maximum mip-map resolution or the maximum number of open files used by the OIIO texture cache. Note that some render delegates won’t consider these parameters.
Rendering & AOVs ¶
-
Houdini now supports Hydra 2 as the new standard interface for render delegates. This also includes
husk
. There’s backward compatibility with Hydra, but you can also set theUSDIMAGINGGL_ENGINE_ENABLE_SCENE_INDEX=0
environment variable if you need to disable Hydra 2. -
Karma now supports direct rendering of VDB points and iso-surfaces (“level sets”). The new
KARMA_LEVELSET_METHOD
environment variable helps to avoid shadow artifacts and creates smoother surfaces when you render iso-surfaces. -
Render stats and
husk
information are now added to deep image metadata. -
When you turn off Enable Internal Reflection, you won’t produce dark areas anymore on the back faces of refractive objects due to loss of energy from missing reflection component. You can find the parameter in the Render Geometry Settings LOP’s Shading section.
-
A new Efficient Emissive Sampling parameter on the
Render Geometry Settings LOP’s replaces the Treat as Light Source parameter.
-
You can now create an LPE-based
albedo
pass on the Karma Render Settings LOP. The signature of the render var iscolor3f/h
. Any normal expression you'd write for light will work: instead of ending withL
, useA
. -
On the Karma Render Settings LOP you can find new presets for
albedo
AOVs. Open the node’s Image Output ▸ AOVs (Render Vars) tab. Under Extra Render Vars, create a new render var. Enter a Name and open the parameter’s associated dropdown menu. Near the menu’s bottom you’ll see several entries, for example Glossy Reflection Albedo. -
When you render a deep image, Karma now turns on bucket mode and top first bucket automatically.
-
Added examples for
P (for non-holdouts)
andP (for holdouts)
render variables. -
Significant render speed and memory improvements with subdivision surfaces.
-
The built-in
albedo
AOV is updated to use LPE-based diffuse albedo. -
New Dicing Predisplace option on the Dicing section of the Render Geometry Settings LOP. Previously, the displacement shader was applied after dicing. In scenes with large displacement, where off-screen geometry was pushed into the visible area, the result often appeared faceted. This effect was typically fixed with an offscreen quality of
1
. However, this value consumed lots of RAM. -
On the Karma Render Settings LOP, go to Image Output ▸ AOVs (Render Vars) ▸ Extra Render Vars. There, you can find the new Utility Path Expression parameter. This parameter uses Light Path Expressions to write out utility AOVs on specific light paths, for example through refraction. See the parameter help for detailed information and an LPE example.
-
On the Karma Render Settings LOP, open the Image Output tab. There you can find a new Shadow Catcher tab. The parameters let you add holdout shadows to the
beauty
AOV. -
A new DCM Use Hit Distance toggle on the Karma Render Settings LOP uses the camera distance for
z
/zback
channels instead of the projection depth for custom lenses. The parameter is located on the node’s Deep Output tab. -
With the new
negate
operator for Light Path Expressions, users no longer have to invert custom alpha AOVs manually in compositing. You can now use the OSL-style!
(exclamation mark) in front of the LPE to invert the channel directly inside Karma, e.g.!CB
. -
Added support for SSS tracesets to allow SSS light paths to travel across mesh that share the common tracset. This can be used to remove discontinuity artifacts when a character with SSS is split into different parts. Note that there’s a limit of four tracesets per scene with Karma XPU.
Shading ¶
-
The
MatX OpenPBR Surface VOP is a new physically-based shader. The shader works with Karma CPU and Karma XPU.
-
A recipe for the
MtlX Normalmap VOP adds a new parameter to support usage of MikkT normal maps.
-
Toon outlines (Karma CPU) allow you to render outlines from objects. You can find these parameters on the Karma Render Settings LOP’s Rendering ▸ Outline tab.
-
You can find a new Thinwall At Refract Limit checkbox in the Render Geometry Settings LOP' Shading section. This allows rays trapped inside transmissive objects to escape when refraction limit is reached and avoid the typical black rings you often observe on the edge of glasses.
-
When rendering decals (by setting the
MtlX Image VOP’s Address Mode U and Address Mode V to
constant
), areas outside the decal with UV values of 0 will now correctly output the node’s Default Color instead of the corner color value of the texture. -
The
MtlX Standard Surface VOP and
MtlX OpenPBR Surface VOP nodes support the automatic export of the
basecolor
parameter for use with render AOVs (render vars).You can find an appropriate preset on the Karma Render Settings LOP. Go to Image Output ▸ AOVs (Render Vars) ▸ Extra Render Vars ▸ Render Var. The Name dropdown has a Base Color entry.
-
Indirect rays now respect fake caustics to prevent indirect diffuse bounces near transmissive objects from appearing darker than they should be.
-
Nested dielectrics priorities in Karma CPU and XPU are now synchronized. In previous versions, a value of
0
was used to disable nested dielectrics in Karma CPU. Now, a value of0
is a valid dielectric priority.
Lighting ¶
-
Support for mesh, point, and curve lights. See the
Geometry Light LOP and Geometry lights workflow guide for details.
-
The
Karma Light Filter Attenuation VOP now has a None option for disabling light attenuation on demand.
-
Color limit now applies to visible lights so that strong light sources no longer render with aliased edges.
-
Color limit now preserves hue and won’t clamp to white anymore.
-
Disk-shaped lights now support the Spread parameter on the
Light LOP’s Karma tab to achieve focused light beam, e.g. to create laser beams.
Environment variables ¶
-
Karma now prunes unused primvars. This process helps to free VRAM and cut down processing times. A new
KARMA_PRUNE_PRIMVARS
environment variable provides three states to control pruning. By default, pruning is disabled for interactive rendering. -
The new
KARMA_XPU_DEVICES
environment variable lets you select particular Embree and OptiX devices. For example, you can only includeoptix0
andoptix3
or render only with the Embree device. -
A new
HOUDINI_HUSK_DEFAULT_DELEGATE
environment variable is now available forhusk
. With-R [ --renderer ] arg
you can specify the preferred delegate that defaults to the value of the environment variable.
Other improvements ¶
-
A
width_scale
attribute allows users to scale point and curve widths directly without having to re-export geometry. -
Backface and frontface culling now also work on points and point meshes.
-
The Karma Render Settings LOP now has a Use CPU Only option on the Filters tab. When you turn it on, the denoiser will strictly run on the CPU to avoid memory issues with large images or GPU-enabled farm machines.
-
The
idenoise
command-line tool offers the--oidn-cpu
option to run the OIDN denoiser only one a CPU. -
A new
Tone Map COP lets you apply filmic tone mapping curves to input images. The styles are the same as provided by the Karma Render Settings LOP.
-
The NVIDIA OptiX denoiser can now handle images larger than 8K. You can control the tiling behavior with
tilesize
andtileoverlap
(which default to 2048 and 8). -
Improved filtering of mip-maps. You can now use
imaketx
to generate.tif
textures in addition to.exr
textures. -
Houdini’s native volumes with
integer
andvector
storage types are now supported in Karma. -
A new global
Background Holdouts Occlude Shadows
property prevents background holdouts from receiving shadows if shadow rays are self-occluded or blocked by other background holdouts.