Iray Programmer's Manual

Rendering options

One of the main design goals of Iray Photoreal is ease of use. It is not necessary to control the algorithmic behavior via a myriad of settings of this render mode to achieve good results across different kind of scenes.

Nonetheless, the following few attributes on the IOptions class, shown here with their default settings where applicable, can control some aspects of Iray Photoreal:

mi::Sint32 iray_max_path_length

Bounds the maximum number of vertices (bounces) of light paths to contribute to the result. Since this setting cuts off indirect lighting contributions (one example would be the headlight of a car that depends on a lot of indirect effects to look correct), it should only be applied when the rendering has to be accelerated at the expense of physical accuracy.

mi::IString iray_default_alpha_lpe

Controls the default light path expression used for alpha channels if none is specified explicitly. The default is "E T* [LmLe]". See Canvas names in render targets for details.

mi::Color iray_background_color

Defines a constant color used for all primary camera rays, including rays going straight through transparent materials, that end up in the environment dome. This attribute has no default and, if set, replaces and thus disables the Virtual backplate. This can be used to enable simplistic compositing, otherwise the more advanced and general light path expressions are recommended.

mi::Sint32 filter = mi::neuraylib::FILTER_GAUSS

Iray Photoreal natively supports mi::neuraylib::FILTER_BOX, mi::neuraylib::FILTER_TRIANGLE and mi::neuraylib::FILTER_GAUSS filters for antialiasing. If mi::neuraylib::FILTER_CMITCHELL or mi::neuraylib::FILTER_CLANCZOS is requested, Iray Photoreal will use the default Gaussian filter instead.

mi::Float32 radius

The radius of the filter kernel. Recommended values are 0.5 for box filter, 1 for triangle filter and 1.5 for Gauss filter.

bool iray_firefly_filter = false

Controls a built-in filter to reduce bright spots that may occur under some difficult lighting conditions. Such bright undesired pixels are often called ``fireflies''.

Consistency is not affected by this filter: fireflies are automatically detected and masked out in the early rendering stage when variance is high but eventually these missing contributions are faded back in over time. Thus, the results at a low sample count may appear slightly darker than the final, converged image. The filter works best in combination with the built-in tonemappers. If a tonemapper is not enabled, the filter estimates can be too pessimistic for some scenes, resulting in some fireflies to still appear.

mi::Float32 iray_nominal_luminance = 0

The nominal luminance is a hint to Iray Photoreal on what is considered a "reasonable" luminance level when viewing the scene. This luminance level is used internally to tune the firefly filter and error estimate. When the nominal luminance value is set to 0, Iray Photoreal will estimate the nominal luminance value from the tonemapper settings. If a user application applies its own tonemapping without using the built-in tonemappers, it is strongly advised to provide a nominal luminance.

Recommendations: For visualization, a reasonable nominal luminance would be the luminance value of a white color that maps to half the maximum brightness of the intended display device. For quantitative architectural daylight simulations (e.g. irradiance buffer), a reasonable nominal luminance could be the luminance of white paper under average day light.

bool iray_optix_prime = false

Switches from the classical built-in Ray Tracing traversal and hierarchy construction code to the external NVIDIA OptiX Prime API. While setting this option to true allows for faster scene-geometry updates on the GPU and (usually) decreased overall rendering time, there is some temporary memory overhead during scene-geometry updates and also an overall memory increase during rendering.

mi::IString iray_instancing

Controls the instancing feature. Possible values are "off", "on", and "user". No default is set, which is equivalent to "off".