Houdini 20.5 Solaris and Karma Karma User Guide

Karma User Guide Reducing noise: Karma CPU

On this page

Previous Noise

Overview

Karma CPU provides many controls to target specific types of noise in automatic and path traced convergence modes.

Automatic convergence

It can be easy to get lost looking at the wide range of controls. You can follow a progression that can reduce confusion and help avoid oversampling on the way to cleaning up a render.

  • Try setting all of Karma’s sampling settings to 1 initially can be very helpful.

  • It can be useful to build up from the primary samples and establish an understanding of how Karma is sampling your scene.

  • After a long time of trying different combinations of values, resetting everything back to the defaults and seeing what changes can also be helpful. Or instead, just branching off with a newly created Karma Settings node at the defaults can have the same effect.

Primary samples

Getting the Primary Samples right is the first step. The primary samples affect the quality of geometry and all other sampling Karma performs during the render. Because secondary samples are multiplied by pixel samples, you can reduce time spent making later adjustments by setting Min/Max Secondary Samples to 1. This lets all of the post-primary sample controls build on the primary sampling that Karma is already doing.

Tip

Setting primary samples to values that are easily squared (i.e. 4, 9, 16, 25, etc…) may help to resolve noise.

Looking at the beauty pass is usually enough to tell where more primary samples are needed.

While the beauty pass alpha channel is helpful, adding Cryptomatte AOVs can be even more useful to identify under-sampled primitive edges in complex scenes. If any of the following features are grainy or noisy (in the beauty, alpha, or Cryptomatte planes), start increasing the primary samples until the quality is where you want it:

  • Noisy hair or fur (BasisCurves), or aliased edges of geometry.

  • Strands of curves look pixelated or noisy.

  • Noisy motion blur, or aliased depth of field.

The primarysamples AOV can be useful to inspect, if increasing primary samples doesn’t seem to improve quality. This can happen for renders dominated by depth of field (DOF) or motion blur quality. If the actual number of pixel samples aren’t reaching the value set in the Primary Samples parameter, the pixel oracle is probably preventing sufficient pixel sampling. Try lowering the oracle’s Variance Threshold and see if that sends more pixel samples. If it doesn’t, you can continue to increase primary samples, or switch over to the uniform pixel oracle.

Tip

Sometimes what appears to be motion blur noise in heavily motion blurred areas is actually secondary samples. You should check other secondary sample AOVs once in a while, even while you are finding the correct pixel samples.

Secondary samples

Once you have the correct primary samples, the next step is reducing noise from secondary samples. The Min/Max Secondary Samples parameters affect quality across all direct and indirect rays at the same time. Increasing samples should reduce noise across all of the direct and indirect AOVs.

Min/max secondary samples

After inspecting the various optimization AOVs, if the the noise is fairly uniform, increase the Max Secondary Samples to 2 or 3. This will start to reduce the secondary noise in the image.

If some areas appear to be lacking samples, before jumping to the quality sliders, try decreasing Secondary Samples Noise Level to something lower such as 0.005. This secondary noise level is highly dependent on many factors, such as color configs, monitor calibration, preference, and so on. Once you have a good secondary noise level, you can target any outstanding noise with minimal increases to overall render times.

Indirect samples quality

The Indirect Samples Quality controls let you target specific ray types, to eliminate the last bits of noise. The following AOVs correspond to each quality control:

Control

AOVs (Render Vars)

Diffuse Quality

directdiffuse, indirectdiffuse, indirectemission

Reflection Quality

directglossyreflection, indirectglossyreflection

Refraction Quality

glossytransmission

Volume Quality

directvolume, indirectvolume

SSS Quality

sss

Use the above AOVs as reference points when adjusting the noise in beauty renders. Some ray types will stand out more than others, depending on lighting or other factors. So unless the AOV itself needs to be perfectly resolved, focus on cleaning up the beauty pass.

Light sampling quality

If soft shadows are still undersampled, even after all of the primary and secondary sample adjustments, Light Sampling Quality can improve these areas of the image.

Light Sampling Quality: 1
Light Sampling Quality: 2
Light Sampling Quality: 3

By default Karma samples lights only once. Increasing the Light Sampling Quality makes Karma sample lights more frequently. The quality of shadows is usually pretty obvious just by looking at the beauty pass. The directdiffuse AOV can help you judge shadow quality in isolation.

Path traced

In path traced convergence mode (the only mode available in Karma XPU), adding more path traced samples is main control you have for reducing all types of noise.

Decrease the Variance Threshold of the pixel oracle can reduce noise. Inspecting the primarysamples AOV can tell you if the oracle is limiting the pixel samples, or if you need to increase the path traced samples. This can be done with the Inspect tool in the Viewport, Mplay, and Render Gallery. You may need to increase Path Traced Samples if a lower variance threshold isn’t improving your image.

You can increase Light Sampling Quality for better shadows, but otherwise reducing noise requires adding more path traced samples.

Tip

Setting path traced samples to values that are easily squared (i.e. 4, 9, 16, 25, etc…) may help to resolve noise in some cases.

Resolving noise on specific primitives

After dialing primary and secondary sampling, there may still be stubbornly noisy objects in your renders. For dealing with these situations Karma supports per-object render properties. These let you improve sampling of specific objects in your scene.

If the chosen engine and/or convergence mode doesn’t support a given global property, then the per-object property will have no effect. For example, the min/max secondary samples have no effect when rendering with Karma XPU.

Reflection Quality on the sphere
Refraction Quality on the cylinder
SSS Quality on the cube

Render Geometry Settings

Set per-object render properties. All karma properties in the primvars:karma:object namespace should be available on this node.

Light

Set per-light render properties. All karma properties in the inputs:karma:light namespace should be available on this node.

Note

Primary Samples and Path Traced Samples cannot be set per-object.

In most cases the object properties are multiplied with their global counterparts. Properties that don’t scale the global property will act as overrides for that object; an example of this is per-object Min/Max Secondary Samples. Lights can scale the global light sampling quality via per-light Sampling Quality property.

Karma User Guide

Appendices