Iray Programmer's Manual

Path space filtering

Path space filtering (PSF) reduces image noise in Iray Interactive by selective averaging of the shading results obtained in neighboring pixels. Over time the amount of averaging is reduced, so that no permanent artifacts will be introduced to the final image.

The following attributes on the mi::neuraylib::IOptions class, shown here with their default settings, control path space filtering:

bool irt_psf_enable = false

Enables path space filtering if set to true.

mi::Float32 irt_psf_geometry_filter = 1.0

This parameter controls the influence of geometric distance in the path space filter. The recommended range is from 0.0 to 1.0. At 0.0, path space filtering is disabled. The default 1.0 represents the recommended best choice for this geometric distance influence. If geometric details are too much blurred or disappear in initial frames, this parameter can be reduced, which will preserve more geometric detail at the cost of additional noise.

mi::Float32 irt_psf_lighting_filter = 1.0

This parameter controls the influence of lighting differences in the path space filter. The recommended range is from 0.0 to 1.0. At 0.0, path space filtering is disabled. The default 1.0 represents the recommended best choice for this lighting difference influence on the filter. If shadow boundaries are too much blurred or disappear in initial frames, this parameter can be reduced, which will preserve more shadow boundary detail at the cost of additional noise.

mi::Sint32 irt_psf_convergence_frame = 50

To ensure convergence the similarity thresholds are automatically reduced over time to avoid persistent filtering artifacts. The value of this parameter indicates the frame index at which the thresholds reach their minimal value. Further frames are then minimally filtered.

Path space filtering stores temporary light path information and increases the memory demands on the GPU proportional to the image size. Both, memory and performance overhead are independent of the scene size and shading complexity making PSF even more beneficial for complex renderings.

Note: Using PSF on multiple GPUs would generate high inter-GPU synchronization traffic, resulting in a significant loss of performance. PSF is thus automatically disabled on multi-GPU configurations.