Share

Sample Filtering - Arnold User Guide

Filter Type

The filter type used for averaging individual subpixel samples into a final pixel color. Most of these filters are available for legacy purposes only. More details can be found on Wikipedia.

Choosing a pixel filter is very much a personal choice. Some people prefer one over the other, but ultimately it's just slightly different amounts of blurring. While more blurring means less aliasing, it is also at the cost of detail loss.

It is best to avoid using a box filter (which is like disabling filtering) as well as using a filter width so small that you end up with practically no filtering.

It is important to note that all renderers don't implement filters in the same way, even if they have the same names. What Arnold calls a gaussian may not be the same as your Photoshop gaussian or 3Delight/PRMan/MentalRay. There can be slight differences in implementation, differences in the cutoff of filters whose support is infinite, etc. So don't assume that your filtering know-how can be transferred from one renderer to another verbatim. However, Arnold tries to replicate the standard filters from RenderMan.

The default gaussian-2.0 is slightly blurrier than others, but you could just reduce its width from 2.0 to 1.8-1.9 to get it sharper.

The catrom filter is one of the few filters that has negative weights and therefore may give you trouble when rendering to unclamped floating-point formats.

The choice of pixel filter should have zero render time impact. What could have a slight effect on render time is the width of the filter; too big a width and you have to consider many subpixel samples when filtering each pixel. For example, the catrom filter has a hardcoded width of 4 pixels compared to the 2 pixels of the gaussian filter which may slightly increase the render time.

If sharper renders are important, you should instead make sure that options.texture_max_sharpen is set to 1.5.

Note:

We recommend using the Gaussian (width 2.0) or Blackman-Harris filters.

Filter Width

The width of the subpixel sample averaging filter, in pixels. For circularly symmetric filters, this is the diameter of the filter's support.

This example demonstrates the effect filter width can have on moire effects in your images. Increasing the filter width setting helps to reduce the moire effect.

This is more noticeable on the left side and top of the cube.

Blackman Harris Filter

A filter that applies Blackman-Harris window function.

Box Filter

A simple mean of the input samples.

Catrom Filter

Applies the Catmull-Rom cubic filter.

Closest Filter

A filter that chooses the sample with the smallest z value.

Contour Filter

Generates contour lines based on information provided by the toon shader. This filter is simple and has a single parameter width as other filters, which defines the maximum width of the contour lines.

Width

Defines the maximum width of the contour lines.

Important:

Increasing this value will increase render times.

Cryptomatte Filter

Cryptomatte filter is a component of the Cryptomatte system. It is set up automatically by Cryptomatte to match the existing filter and does not need to be exposed to users or manipulated by them. Cryptomatte filter is a "ranking filter" which takes a float "ID" AOV as an input, and outputs ID/coverage pairs, as described in the Cryptomatte standard. It imitates Arnold filter kernels to produce matching coverage values for samples. These IDs are then ranked by coverage, and two of the ranks are written into each RGBA image.

For example, the RGBA image produced is as follows, if the rank parameter == 0.

  • R - ID 0
  • G - Coverage 0
  • B - ID 1
  • A - Coverage 1

Width

The filter is set up by Cryptomatte to match the original filter on which its based.

Rank

Sets the starting rank which is to be encoded. For example, if rank == 2:

  • R - ID 2
  • G - Coverage 2
  • B - ID 3
  • A - Coverage 3

Cryptomatte uses multiple Cryptomatte filters to write IDs and coverages for an arbitrary number of ranks into RGBA buffers.

Filter

This is a code to specify which filter kernel is to be used. It is used internally in Cryptomatte to specify which filter kernel is to be used. The filter kernels which are available are gaussian, blackman_harris, triangle, box, disk, and cone.

Difference Filter

The diff_filter returns the difference between two uncorrelated buffers for the corresponding pixel. This is useful for certain denoising algorithms that require two buffers without modifying the beauty AOVs. If FIS (filter importance sampling) is used the two buffers can be reconstructed exactly, otherwise there will be a small error given enough camera rays.

Width

Width of the filter, should match the width of the filter used for RGBA and other light AOVs.

Filter Weights

Filter kernel weights, should match the filter used for RGBA and other lights AOVS. If FIS is used, should be set to box

Farthest Filter

A filter that chooses the sample with the largest z value.

Domain

The domain "first_hit" chooses the farthest sample from the set of first hits, and "all_hits" chooses from the set of deep samples.

Gaussian Filter

Maximum weight is given to samples at the center of the filter, decreasing non-linearly to zero at the edge of the filter.

Heatmap Filter

A filter that creates a spectrum based on the looked-up AOV quantity. The color ranges from blue (at minimum) to red (at maximum).

Minimum

Sets the minimum value of the range.

Maximum

Sets the maximum value of the range.

Mitnet Filter

Applies the Mitchell-Netravali filter.

Sinc Filter

A filter where the distribution of sample weighting varies in accordance with the sinc function.

Triangle Filter

Maximum weight is given to samples at the center of the filter, decreasing linearly to zero at the edge of the filter.

Variance Filter

Compute the variance of samples.

Scalar Mode

If enabled, outputs scalar values.

Filter Weights

Sets the weights used for each sample (defaults to box).

Was this information helpful?