On this page |
Previous Sampling
Overview ¶
Karma CPU offers a much wider array of sampling controls compared to Karma XPU. By default it uses a sophisticated adaptive sampling approach for both primary and secondary rays. It also supports Path Traced convergence, like Karma XPU. With Karma CPU, the additional controls are largely related to secondary samples and noise levels with both convergence modes.
Automatic convergence ¶
By default, Karma CPU is setup to use Automatic convergence. It is generally works well and offers more controls to reduce noise to control over-sampling or under-sampling your renders.
Primary Sample Controls |
Secondary Sample Controls |
---|---|
|
|
For every primary sample that hits an object, Karma will fire secondary samples. Karma will trace at least one ray for each type of lobe the shader produces (diffuse
, reflection
, refraction
, sss
and/or volume
). Karma will send secondary rays until the Max Secondary Samples value is reached, or the variance falls below the threshold.
Karma provides an addition set of Indirect Sample Quality controls. You can use these to reduce noise in specific lobes. The values are multipliers for the Min/Max Secondary Sample values, but only apply to each specific ray type.
Automatic Properties
Pixel Samples
The number of ray-samples sent through each pixel. More samples will result in a less noisy image. Also known as “primary samples”.
Min Secondary Samples
Minimum number of rays to cast in per-component variance anti-aliasing.
Max Secondary Samples
Maximum number of rays to cast in per-component variance anti-aliasing.
Secondary Noise Level
Noise threshold to determine the number of indirect rays cast for indirect bounce when the Convergence Mode is set to Automatic. Decreasing this threshold (for example, to 0.001
) will theoretically send more indirect rays and decrease noise, however the “extra” rays will likely be cancelled out by the Max Ray Samples parameter. The correct way to decrease noise is to increase the number of samples per pixel, rather than change this threshold.
If you are using Variance Pixel Oracle, you should set the same value for both threshold parameters. Setting the oracle’s threshold lower may make the indirect component reach its threshold sooner and cast fewer indirect rays, but the oracle decides to cast more expensive camera rays because the amount of final noise in the beauty pass is higher than the oracle’s threshold.
Light Sampling Mode
Whether Karma should perform uniform sampling of lights or whether rendering should use the light tree. The light tree can be significantly faster for scenes that have large numbers of lights.
Some lights cannot be added to the light tree, and will all be sampled by Karma:
-
Dome Lights
-
Distant Lights
-
Point Lights
-
Lights with Light Filters
-
Lights with shaping controls (i.e. spot lights)
Light Sampling Quality
This is a global control to improve sampling quality for all lights. This acts as a multiplier on the individual light quality controls. Increasing the quality will improve direct light sampling as well as shadows/occlusion.
Pixel Oracle
When rendering, a Pixel Oracle tells Karma which pixels need additional sampling and which pixels are converged. This parameter tells karma which oracle to use.
uniform
Uniformly distribute rays to each pixel. Each pixel will always get the same number of ray-samples.
variance
Distribute rays based on variance in the rendered image.
Diffuse Quality
This parameter acts as a multiplier on Min Secondary Samples and Max Secondary Samples for indirect diffuse component.
Reflection Quality
This parameter acts as a multiplier on Min Secondary Samples and Max Secondary Samples for indirect reflect component.
Refraction Quality
This parameter acts as a multiplier on Min Secondary Samples and Max Secondary Samples for indirect refract component.
Volume Quality
This parameter acts as a multiplier on Min Secondary Samples and Max Secondary Samples for indirect volume component.
SSS Quality
This parameter acts as a multiplier on Min Secondary Samples and Max Secondary Samples for SSS component.
Path traced convergence ¶
In Path Traced convergence mode, the only controls are Path Traced Samples and the settings on the selected Pixel Oracle. The expected range of values is larger compared to Automatic mode, so the parameter uses a different name to help reduce confusion.
Primary Sample Controls |
Secondary Sample Controls |
|
|
In this mode, when a primary ray hits an object, Karma will send two secondary samples by default: one direct sample toward a light, and one indirect sample into the scene. This simplicity can make Path Traced convergence very fast and interactive initially, but offers very few controls for resolving noise from specific secondary ray types in the scene. Light Sampling Quality will determine the number of times each light is sampled, but Karma decides how many lights to sample, based on the Light Sampling Mode. Karma also randomly chooses the indirect sample lobe.
Note
In interactive viewport rendering, Karma does some path tracing for the first few samples, before switching over to automatic convergence. This improves the interactive experience in Solaris.
Path Traced Properties
Path Traced Samples
The number of ray-samples sent through each pixel when using the path traced convergence mode. More samples will result in a less noisy image.
Light Sampling Mode
Whether Karma should perform uniform sampling of lights or whether rendering should use the light tree. The light tree can be significantly faster for scenes that have large numbers of lights.
Some lights cannot be added to the light tree, and will all be sampled by Karma:
-
Dome Lights
-
Distant Lights
-
Point Lights
-
Lights with Light Filters
-
Lights with shaping controls (i.e. spot lights)
Light Sampling Quality
This is a global control to improve sampling quality for all lights. This acts as a multiplier on the individual light quality controls. Increasing the quality will improve direct light sampling as well as shadows/occlusion.
Next steps ¶
With an understanding of how sampling works in Karma CPU, next we’ll look at some practical tips to reduce noise in your renders.
Next Resolving Noise