Radeon ProRender

Sampling

Sampling settings are the main determining factor of the image quality.

To render an image, AMD Radeon ProRender casts a number of ray samples for every pixel. As new sample values for the pixel are added, the sampling results are averaged to calculate the pixel color.

The image is rendered progressively: as additional samples are taken, the quality of the image is improved and the amount of noise is reduced. A greater number of samples per pixel produces a better result, but requires more time for color computations.

The appearance of a scene changes depending on the sampling rate

 

Download the above scene (.blend)

Adaptive and Fixed Sampling

AMD Radeon ProRender supports the two sampling modes: adaptive sampling and fixed sampling.

Adaptive Sampling

Adaptive sampling is the default mode used to sample pixels in AMD Radeon ProRender. Adaptive sampling is particularly useful if some image regions are noisier than others, when it is not practical to set the overall iterations rate high and thus oversample the less noisy regions. Instead, it is recommended to choose adaptive sampling.

Adaptive sampling uses the following three parameters to control the sample density for a pixel: Min Samples, Max Samples and Noise Threshold.

The Min Samples value defines the guaranteed number of samples that every pixel in the image will receive. Once this minimum value has been reached, the noise variance of each pixel is calculated. Sampling for a pixel stops either when the noise becomes less than the Noise Threshold, or when the Max Samples value is reached. Rendering of the image areas that already have reached the Noise Threshold will stop, therefore the noisier areas will be rendered faster. The calculations will add a bit of overhead, but this mode is recommended in most cases.

Fixed Sampling

If all image regions appear equally noisy, you can instruct AMD Radeon ProRender to calculate samples for all pixels in a uniform fashion. To use this mode, set the Noise Threshold value to 0. In this case, the sample rate will be controlled using the Max Samples parameter.

Sampling Parameters

In AMD Radeon ProRender, sampling can be controlled using the following parameters.

Min Samples

The Min Samples parameter is used for adaptive sampling only. It defines the minimum number of samples per pixel required. By changing the parameter value, you can control the overall guaranteed image quality before adaptive sampling is involved.

It is recommended not to set this value high, as this will slow down the rendering process. To achieve a clean image and save on rendering time, tune the Noise Threshold instead.

Max Samples

The Max Samples parameter defines the maximum possible number of samples that a pixel may receive. In the case of adaptive sampling, sampling will stop when this limit is reached, even if the noise is still greater than the noise threshold. If adaptive sampling is disabled, the Max Samples value defines the uniform sample rate per pixel.

For scenes involving depth of field or motion blur, the Max Samples value should generally be increased.

Noise Threshold

If set to a non-zero value, the Noise Threshold parameter enables adaptive sampling.

The parameter is used to determine whether additional samples will be calculated for a pixel. It describes how much variance there may be as new samples are added for the pixel. In other words, it measures how much noise is allowed for a pixel before sampling is stopped. The parameter’s value ranges from 0 to 1, where 0 means no noise (no variance) and 1 means all of the noise is allowed.

As new samples are cast, AMD Radeon ProRender checks how much the pixel has changed, and how much noise there is. If the noise is greater than the threshold, additional samples will be calculated, unless the Max Samples limit is reached. If the noise is less than the threshold, subsequent sampling for the pixel will stop.

A default noise threshold of 0.05 is a good preview value for most scenes. Lowering the threshold results in less noise per pixel and more time required to complete the render, while increasing the threshold value generally reduces the render time at the cost of the image quality.

If the parameter value is set to 0, adaptive sampling is disabled. In this case, the number of samples per pixel will be controlled by the Max Samples value. Setting the parameter value to 1 forces sampling to stop once the Min Samples limit has been reached.

See how the appearance of the scene changes depending on the Noise Threshold value.

The appearance of a scene changes depending on the noise threshold

 

Time Limit

The Time Limit parameter is used to define how long the rendering process can take before it is terminated. For animated scenes, the time limit is set per frame.

The time limit for rendering is specified in seconds. Setting the parameter value to 0 disables the time constraint. In this case, the rendering process will only be limited by the number of samples.

Samples per View Update

Renders are updated exponentially, that is, after every 1, 1, 2, 4, 8, 16 and 32 samples. Once the number of samples reaches 32, renders are updated after every new 32 samples. This is done to maximize performance, especially with RPR 2.0.

Tiled Rendering

By default, AMD Radeon ProRender addresses all pixels in the image to calculate samples. When displayed, the image first appears grainy and noisy and is refined progressively as the renderer makes more passes and more samples are calculated. This approach requires more memory and CPU resources, but allows you to preview the whole image as fast as possible and interrupt the rendering process in case any changes need to be made.

Instead of rendering the whole image, you can choose to render the image by tiles. Tiled rendering allows higher resolution renders without using as much memory and CPU.

The size of the tiles in pixels is described using the Tile X (horizontal tile size) and Tile Y (vertical tile size) settings. Additionally, you can choose the order in which tiles are rendered: from the center by spiral, vertically from left to right, or horizontally from top to bottom. Changing the tile order can be useful if you need to focus on particular regions of the image as the tiles are rendered.

Note

When tiled rendering is used, the Time Limit option is disabled.

Default rendering

Spiral tiled rendering

Download the above scene (.blend)

Viewport and Preview Sampling

The Viewport and Preview parameters allow you to specify custom sampling settings (usually, lower-quality) for viewport rendering, material and light preview.

Min Samples, Max Samples, Noise Threshold

By default, the Min Samples, Max Samples and Noise Threshold values are the same, respectively, for material preview, viewport and production renders. If necessary, for viewport render you can set custom Max Sample and Noise Threshold values.

Adapt Viewport Resolution

The Adapt Viewport Resolution (short for ‘Adaptive Viewport Resolution’) check box enables the following settings: Samples per Second and Min Resolution Scale.

  • The Samples per Second setting has a default value of 15. This setting is roughly analogous to Frames per Second. The viewport render resolution is adjusted during rendering to try and maintain this interactivity.
  • The Min Resolution Scale setting limits resolution downscaling. For users with high resolution displays, this adaptive resolution can maintain a much better viewport experience.

Limit Viewport Resolution

The Limit Viewport Resolution parameter allows you to limit the size of the rendered image in the viewport. With this option enabled, the size of the viewport image is controlled using the Percentage value in the Blender output settings.

Preview Samples

The Samples per Preview parameter controls the number of samples per pixel for material and light preview.

Material preview

Light preview

Samples per Preview Update

The Samples per Preview Update parameter controls how often the image will be updated in the viewport. The frequency of updates is measured in the number of passes made to calculate pixel samples. Greater values accelerate the rendering process.

GL_Interopability Setting

The GL_Interopability setting allows fast copying of the render to the viewport via OpenGL. In most cases this should be left enabled, which is the default. However, if users wish to use external GPUs for viewport rendering, this may need to be disabled. In such cases the OpenGL interoperability does not work.

Viewport Denoising and Upscaling

Viewport denoising and upscaling improves the interactivity and speed of viewport rendering. With the use of the Machine Learning denoiser, this option allows AMD Radeon ProRender to render at half resolution faster, and then upscale to the full size of the Viewport.

Note that the choiсe to enable or disable viewport and upscaling settings is stored in Blender preferences rather than on a per-scene basis.