Light is a wave traveling in space. Its wavelength is the length of each oscillation (Figure A).
The wavelength defines the color that is perceived : a wave with a wavelength of 400nm will be perceived as blue and a wave with a wavelength of 700nm will be perceived as red (Figure B).
Some wavelengths cannot be perceived by the human eye (infrared above 830 nm, uv and x-rays below 360 nm).
figure A
figure B
https://www.chem.fsu.edu/chemlab/chm1045/estructure.html
Most light sources do not emit light at a single wavelength but they emit a combination of multiple wavelengths with different intensities. All of these wavelengths make up the light spectrum.
intensity as a function of wavelength, example of a spectrum perceived as blue
The way we perceive the appearance of materials also depends on their spectral characteristics : the material reflects, diffracts and absorbs the light depending on its wavelength. Some examples of situations where the spectral characteristics of a material has an influence on its appearance could be :
two materials that can be perceived as similar under a light source and different under another (example 1)
very thin layers of reflective/transmissive material (soap bubbles, very thin coatings,...) that can create interference (example 2)
materials with refractive index that depends on the wavelength (glass, diamond,...) that can induce dispersion (example 3)
...
example 1 : cube with metameric materials (cube color and UVR logo) under a D65 illuminant (left) and a F12 illuminant (right)
example 2 : interference in soap bubbles
example 3 : dispersion in a diamond or in prisms
In the Predictive Suite, spectrums are required to define materials, lights, and sensors. Spectrums can be defined in various ways (see details bellow).
Whenever you define a spectrum, a preview curve will be displayed with a colored background corresponding to the spectrum color. Be aware that the color of a material spectrum depends on the light that illuminates it, remember that this color is only a preview for a specific illuminant (D65 by default).
You can change the illuminant spectrum that is used to compute the color preview for material spectrums in the PredictiveSuite preferences, section Default Settings.
Spectrums can be defined with the following types :
RGB : the spectrum is computed from an RGB color, the up-sampling is done according to [Smits,99].
Measured : the spectrum is given in a .xml file
The xml file should be formatted as follow:
<material type="Spectral">
<entry k="1.306" n="1.422" wavelength="206.64" />
<!-- ... -->
<entry k="15.5" n="1.205" wavelength="2479.7" />
</material>
Each entry contains the sampled quantities at the specified wavelength in nanometer.
The "wavelength" is a reserved and mandatory keyword. For the corresponding quantities, there exists common keywords such as "n", "k", "value", "x", "y", "z", "r", "g", "b" but custom ones are accepted too. If the sampling is the same for multiple quantities, they can be put inside the same <entry>.
Raw : the spectrum is given manually, value per value,
Constant : the spectrum returns a given value inside the range and returns 0 outside the range,
Procedural (Expert Mode only):
Band Stop : the spectrum returns a given value outside the pass range and returns 0 inside the pass range,
Short Pass : the spectrum returns a given value bellow the range end and returns 0 above,
Long Pass : the spectrum returns a given value above the range start and returns 0 bellow,
Gaussian Pass : the spectrum is a Gaussian curve with the given parameters,
Gaussian Stop : the spectrum returns a given value minus a Gaussian curve with the given parameters,
Blackbody : the spectrum is a black body at a given temperature,
Preset : the spectrum is a preset measured illuminant (D65, Sun, …),
Cauchy : the spectrum is defined by the following equation, where the Bi coefficients are given in μm², μm^4, μm^6, etc. :
Sellmeier : the spectrum is defined by the following equation, where the Bi coefficients don't have a dimension and the Ci coefficients are given in μm² :
Procedural Sun : this is a model of the sun emission spectrum (Preetham), the spectrum is computed from the position of the observer on the earth and the date, time and conditions of the observation.
For the measured spectrums, you can change the default interpolation and extrapolation methods used to compute the spectrum in the PredictiveSuite preferences, section Default Settings.
The interpolation method defines how the values are computed between the values given in the measure file. The method can be :
Linear (default) : the value is a linear interpolation between the two closest values,
Nearest : the value is equal to the closest value.
The extrapolation method defines how the values are computed outside the range of values given in the measure file. The method can be :
Nearest (default) : the value is equal to the closest value,
Zero : the value is 0.
Visualization of a measured spectrum defined with values between 480nm and 680nm every 20nm, computed with :
interpolation method = Linear (default)
extrapolation method = Nearest (default)
Visualization of a measured spectrum defined with values between 480nm and 680nm every 20nm, computed with :
interpolation method = Nearest
extrapolation method = Zero
In the Predictive Suite, spectral images are required to define some lights intensity and polarization :
Area lights' measured polarization,
Radiometric area lights' intensity,
Skyboxes' intensity,
Skyboxes' polarization.
A spectral image is defined with a texture in the OpenEXR format.
EXR files are image files with arbitrary depth where each depth component is called a layer and identified with a string label. Usual labels are the "R", "G", "B" ones used for color images. For spectral images, the Predictive Suite only recognizes layers with labels in the form "<wavelength>.L" with the wavelength in nanometer, for instance "550.35.L".
The intensity of radiometric area lights and skyboxes can also be defined with an RGB image that is converted to a spectral image by Predictive Engine. In this case, a spectral range and a number of channels can be specified to parameterize the conversion process.