Spectral Input and Output

Indigo supports spectral environment maps - environment maps that are not just RGB, but have information organised into wavelength buckets.

Spectral environment maps are EXR files that follow a particular channel naming scheme.

For example:

wavelength400
wavelength430_25
wavelength460_50
wavelength490_75

etc..

The spectral EXR file must have only channels with channel names prefixed with 'wavelength'.
Following the 'wavelength' prefix is the wavelength of the lower edge of the bucket, in nm.
The underscore character is used as a decimal seperator, for example 3.14 becomes 3_14.
(The full stop character could not be used as it has special meaning as a layer separator character in EXR channel naming convention)

Bucket start wavelengths should be equally spaced. If the wavelengths are not equally spaced, rendering results will be incorrect.

The unit of the values in the spectral EXR file is considered to be spectral radiance (Wsr^-1m^-3), although this will only be the case if no emission scaling is applied to the values.

Spectral output from Indigo

Indigo can compute lighting information with a spectral internal rendering buffer, and save a spectral image based on that buffer.

To use a spectral internal buffer, you need to enable the spectral_output render setting. (See renderersettings for more information)

The other relevant render settings are spectral_output_num_wavelength_buckets, spectral_output_start_wavelength, spectral_output_bucket_width.

Saving a spectral EXR from Indigo

Spectral output can be saved from Indigo to an EXR file.
This can be done in the Indigo user interface with the

Render > Save Layers and Channels

menu command.
Depending on the setting 'combine into single file' in the Layers and Channels section, in the Image Saving tab in the Indigo options dialog, this menu command will either save the spectral data into its own EXR file, or into an EXR file shared with the other render channels.

If it is saved into its own EXR file, the channel names will be as for the environment map spectral EXRs - e.g. wavelength430_25 etc..

If the EXR file is shared, the spectral channels will be prefixed with the 'spectral' layer name, resulting in channel names like

spectral.wavelength430_25

Wavelength range computed by Indigo

Currently Indigo computes rendering results only in the range 390 nm to 700 nm, which roughly corresponds to the visible spectrum. (The lower bound was reduced from 400 nm to 390 nm in Indigo v4.4.7).

EXR input files may cover a wider range of wavelengths, but wavelengths outside the 390 nm to 700 nm range will be ignored. Likewise spectral output files may be configured to cover a wider range of wavelengths, but zero values will be written for buckets out of the 390 nm to 700 nm range.