Polynomial Optics parameters


This should be set to M for htoa (when assuming 1 houdini unit is 1 meter), CM for mtoa & equal to the global export scale in c4dtoa.

Lens Model

There's many different lenses to choose from, each with multiple focal lengths pre-computed. See all of the lens models on this page.

Sensor Width

Default is the width of a full frame sensor [36 mm]. Adjustments to the sensor size result in different effective focal lengths of the lens. Use this to your advantage! You can slightly zoom in/out by adjusting the sensor size.


Lentil is a spectrally-plausible system. But since Arnold is an RGB renderer, we render at a single wavelength.

Note that one *could* render the same image 3 times with different wavelengths and combine them (1 for each channel) into an image with physically plausible chromatic aberration.

Enable Depth of Field

Disabling makes the aperture an infinitesimal point.


The f-stop is a dimensionless number that is a quantitative measure of lens speed. Practically, it is the ratio of the distance from the lens to the point where the focused light converges (the focal length) over the diameter of the aperture.

Focus Distance

Distance between the lens and the focal plane in centimeter.

Extra Sensor Shift

The autofocus system is more complicated for polynomial optics than for the thinlens model. This option allows you to slightly push the sensor forward and backward to fine-tune the focus (if needed!).

Bokeh Aperture Blades

Amount of aperture blades. Lower than 3 means perfectly circular.

Bokeh Enable Image

This option replaces the circular/polygonal aperture with a texture-based one. Sometimes you might want to use a bokeh kernel that looks a little bit more organic, such as e.g:


Bokeh Image Path

Most image formats are supported.

Bidirectional Minimum Luminance

The minimum luminance a sample needs to have to trigger bidirectional redistribution. The luminance is equal to r*0.21 + g*0.71 + b*0.072. The default of 1.0 is fine in most cases, although you might want to increase it when dealing with larger, high energy diffuse surfaces which won't contribute a whole lot to the bokeh.

Bidirectional Sample Multiplier

A multiplier on the bidirectional sample count. The actual sample count is adaptive over the image (modulated by screenspace area of the bokeh, etc).

Bidirectional Additional Luminance

Sometimes for artistic reasons, you might want to boost the intensity of the bokeh (all pixels with energy above param: bidir_min_luminance) a bit.

Bidirectional Additional Luminance Transition

When boosting the bokeh, a transition zone is needed or you'll get annoying flickering. This transition zone is measured in linear energy.

Vignetting Retries

Since we're modeling real lenses, it can be that the light ray hits the housing of the lens. If this happens, a new light ray is sent out in a different direction. The number of times that this is allowed to happen is param: vignetting_retries. Practically, the higher this number, the more true to real-life vignetting. But this comes combined with higher computation times around the vignetting border.

HQ ray derivatives

Enabling this triples the camera computations, but provides the shaders with high quality derivatives for use in texture filtering, etc. This should be enabled unless you specifically know what you're doing.