The intensity of the light is very important when it comes to predictive simulation. It can provide you with extremely useful information about the way you will perceive the scene.
A light source does not necessarily emit light uniformly, the emitted light will be more or less intense :
depending on the position on the light's surface (spatial uniformity),
depending on the angle at which you look at the light (angular profile), and
depending on the wavelength of the light (spectral distribution).
These variations in the intensity define the light EDF (Emittance Distribution Function), they can be measured and can be simulated in Predict Engine.
When creating an area light, it is necessary to properly set the base material of the geometry : the one that defines the reflectivity of the object. When you apply a texture that affects the spatial uniformity of the emission (the texture of a display or the spatial uniformity of other types of area lights), it can be hard to figure out how it is positioned on the geometry.
In order to preview the emission pattern, you can enable the preview material in the Area Light Geometry section of the UVR Light Settings, it is then be visible in the Unity Scene view. See example below :
Spatial Uniformity preview example :
This light is defined as an RGB display,
The geometry it is placed on uses the "Matte" material : it defines the reflectivity of the screen when it's turned off,
The display displays a texture with given offset, scale and rotation settings : it defines the emissivity of the screen.
By default, the "Matte" material -placed on the Mesh Renderer- is visible in the Scene View. It is marked as "Original" in the UVR Light Setting.
You can click on the "Original" state button to switch to the "Preview" mode :
The preview material is then used in the Scene view,
The original material (used for the reflectivity) can now be edited directly in the UVR Light Settings geometry section,
The original material is still used for rendering, the preview material is only visible in the Scene view.
The definition of a light's intensity on the UVR Light Settings component depends on the light type :
Lights of type "Directional" are perfect models that simulates the light coming from a single direction like an infinitely small point, infinitely far away. The EDF of a Directional Light is defined as follow :
Spatial Uniformity : Since the light is infinitely small, it is considered uniform. However, you can define an angular radius for the directional lights in the scene : the radius defines the angular size of the point it comes from in the sky, just like a sun,
Angular Profile : Because the light comes from a single point infinitely far away, it comes in a single direction and it has no angular profile settings,
Spectral Distribution : The spectrum of the light can be defined by the user in different ways, see the Spectrums section. The spectrum defines the irradiance (if the angular size is set to 0) or radiance (if the angular size is > 0) of the light. Its values can be modulated by :
A scaling coefficient,
An illuminance (if the angular size is set to 0) or luminance (if the angular size is > 0) value : in this case, the coefficient applied to the spectrum is automatically computed so that the illuminance/luminance of the light reaches the required value,
A preset value.
You can find other orders of magnitude for the expected illuminance values here : https://en.wikipedia.org/wiki/Orders_of_magnitude_%28illuminance%29.
There can only be one sun in the sky at a time in Predict Engine. The lights that are considered to be suns are : directional lights with a non-null radius, and environment lights. If an environment light is defined on the camera currently rendering, all directional lights in the scene will be considered as perfect : their radius will be ignored.
Luminaire lights are defined by their intensity profile. They can be of any form.
A uniform light emits light with a constant intensity and the same spectrum across the surface. The EDF of a Uniform Light is defined as follow :
Spatial Uniformity : By default, the light is uniform, its intensity is the same at every position on the surface. You can also configure a Spatial Uniformity texture that defines the variation of (spectral) color on the surface. The color/spectrum of the texture will be multiplied by the light intensity defined otherwise,
Angular Profile : The angular profile of the light is a model configured so that the intensity is constant,
Spectral Distribution : The spectrum of the light can be defined by the user in different ways, see the Spectrums section. Its values can be modulated by :
A scaling coefficient,
A power value : in this case, the coefficient applied to the spectrum is automatically computed so that the power of the light reaches the required value,
A preset value.
You can find other orders of magnitude for the expected power values here : https://en.wikipedia.org/wiki/Lumen_%28unit%29.
The uniform light model is mainly designed to mimic the behaviour of spherical lights. To model planar light sources, please look into lambertian lights.
A lambertian light emits light with a constant luminance and the same spectrum across the surface. The EDF of a Lambertian Light is defined as follow :
Spatial Uniformity : By default, the light is uniform, its intensity is the same at every position on the surface. You can also configure a Spatial Uniformity texture that defines the variation of (spectral) color on the surface. The color/spectrum of the texture will be multiplied by the light intensity defined otherwise,
Angular Profile : The angular profile of the light is a model configured so that the luminance is constant, which mean the intensity is defined with a cosine profile,
Spectral Distribution : The spectrum of the light can be defined by the user in different ways, see the Spectrums section. Its values can be modulated by :
A scaling coefficient,
A power value : in this case, the coefficient applied to the spectrum is automatically computed so that the power of the light reaches the required value,
A preset value.
You can find other orders of magnitude for the expected power values here : https://en.wikipedia.org/wiki/Lumen_%28unit%29.
The lambertian light model is mainly designed to mimic the behaviour of planar lights. To model spherical light sources, please look into uniform lights.
A radiometric light is entirely defined by a single measure. The EDF of a Radiometric Light is defined as follow :
Spatial Uniformity : By default, the light is uniform, its intensity is the same at every position on the surface. You can also configure a Spatial Uniformity texture that defines the variation of (spectral) color on the surface. The color/spectrum of the texture will be multiplied by the light intensity defined otherwise,
Angular Profile : The angular profile of the light is measured, it is contained in the same texture that contains the Spectral Distribution,
Spectral Distribution : The spectrum of the light is measured, it is contained in a texture. The values within this file can define either the intensity (in W/sr/nm) or the luminance (in W/sr/m²/nm) of the source, this should be specified in the "Input Quantity" field. The measure is spectral, see the Spectrums section for more details on spectral images. The image is parametrised according to an equi-rectangular (or panoramic) projection of the sphere with the top and bottom rows corresponding to an inclination of 0 and 180 degrees respectively. The left column corresponds to an azimuth of 0 degrees. The values within the texture can be modulated by :
A scaling coefficient,
A power (if the values define the intensity) or luminance (if the values define the lumiance) value : in this case, the coefficient applied to the spectrum is automatically computed so that the power/luminance of the light reaches the required value,
A preset value.
You can find other orders of magnitude for the expected power values here : https://en.wikipedia.org/wiki/Lumen_%28unit%29.
A photometric light is similar to a radiometric light but its emitted spectrum is not stored with the angular profile measure. The EDF of a Photometric Light is defined as follow :
Spatial Uniformity : By default, the light is uniform, its intensity is the same at every position on the surface. You can also configure a Spatial Uniformity texture that defines the variation of (spectral) color on the surface. The color/spectrum of the texture will be multiplied by the light intensity defined otherwise,
Angular Profile : The angular profile of the light is measured, it is contained in an IES file. The values within this file should be in candela (cd). A preview of the IES file content is displayed bellow the "IES File" field, it gives you information on the content of the measure :
The measure is displayed in the lower emission hemisphere. If the measure contains values in the upper hemisphere as well, it will be displayed accordingly,
The curves represent the intensity of the light in two perpendicular planes (0° and 90°, the reference 0° being given inside the file content),
When the measure contains data in a very large range, you can display the curves using a log scale,
Additional data about the measure (type, luminance, geometry) is displayed on the left if the window is wide enough.
Spectral Distribution : The spectrum of the light can be defined by the user in different ways, see the Spectrums section. Its values can be modulated by :
A scaling coefficient,
A power value : in this case, the coefficient applied to the spectrum is automatically computed so that the power of the light reaches the required value,
A preset value.
Example use case of an IES : the front light of a vehicle
IES lights can be previewed in the Unity Scene view using Gizmos :
Gizmos are enabled by clicking on the "Gizmos" button in the top right corner,
The gizmo is visible if the IES light GameObject is active in the scene and the "UVRLightComponent" line is enabled in the Gizmos menu,
The gizmo size is controlled by the "Gizmo Size" field in the IES light intensity section, the "Log Scale" toggle also affects the gizmo.
You can find other orders of magnitude for the expected power values here : https://en.wikipedia.org/wiki/Lumen_%28unit%29.
The *.ies file also defines a geometry associated with the light. You can load this geometry with the “Load IES Geometry” button. The geometry will be added to the light’s GameObject. The geometry dimension will be defined depending on the current scene scale.
The supported types for IES files are type A and type C only, type B is not supported yet.
If you need support for other formats like LDT or CIB, please contact us or use a third party converter.
A Rayset light is defined by the measure of how rays of light are emitted from the source. The rays are stored in a file that can have many formats (see details bellow). This file contains a discreet list of every ray with their origin, direction, and flux.
The EDF of a Rayset Light is defined as follow :
Spatial Uniformity : By default, the light is not uniform, its intensity may be different at any position on the surface, depending on the rays distribution. When using the "Fitting to IES" representation (see bellow), you can also configure a Spatial Uniformity texture that defines the variation of (spectral) color on the surface. The color/spectrum of the texture will be multiplied by the light intensity defined otherwise,
Angular Profile : The angular profile of the light is measured, it is contained in the Rayfile. The values within this file should be in candela (cd). A preview of the rayset content can be displayed as gizmos in Unity (see Smart Idea below), it gives you information on the content of the measure. In order to be used in a rendering engine, these rays need to be preprocessed so that we can interpolate them and define how the source emits light in every possible direction, not just the ones that were measured. We currently support two representations for raysets :
Fitting to IES : the angular behavior of the rayset is assimilated to a photometric light (see section above). The data is stored in an igloo texture (figure 1) for which the user can choose the resolution (azimuth and inclination resolutions). This is a representation that is very relevant to represent small and compact light sources like LEDs for instance.
HD Canned Light : the rayset is projected to an igloo representation (figure 1) for which the user can choose the resolution (the angular resolution defines : inclination resolution = angular resolution, azimuth resolution = 4 * angular resolution). The rays are then intersected with the bounding box of the rayset and the patches of the igloo, and stored into separate textures. The spatial resolution setting affects the resolution of these textures. The interpolation method defines how the interpolation is made between the different igloo patches. This is a HD representation that requires more memory but is much more accurate than the IES fitting.
NB : When using this representation, the geometry of the light is assimilated to the bounding box of the measured rays. This means other geometries intersecting this bounding box will not receive light from the rayset as they are considered to be inside the source itself.
Spectral Distribution : Some rayfile measures contain the spectrum of the light, either for each individual ray or for the entire source. When it is not the case, a default spectrum is defined.The user can also choose to override the rayfile spectrum (Override rayset spectrum option) and define the one to use in different ways, see the Spectrums section. Either way, the spectrum's values can be modulated by :
A scaling coefficient,
A power value : in this case, the coefficient applied to the spectrum is automatically computed so that the power of the light reaches the required value,
A preset value.
Figure 1 : Representation of the IGLOO projection
The sphere is divided into horizontal stripes of given inclination, each stripe is divided into a different number of patches defined to maintain a constant solid angle (more patches on the equator than on the poles).
We currently support the following rayfile formats :
Speos (.ray)
IESTM25 (.TM25RAY)
ASAP (.dis)
LucidShape Spectral Ascii (.dis or .ray)
LucidShape Spectral Binary (.dis or .ray)
ZemaxBinary (.sdf or .dat)
Ray set lights can be previewed in the Unity Scene view using Gizmos :
Gizmos are enabled by clicking on the "Gizmos" button in the top right corner,
The gizmo is visible if the Rayset light GameObject is active in the scene and the "UVRLightComponent" line is enabled in the Gizmos menu,
You can define how many rays are drawn in the interface using the Drawn Gizmo setting (max 100.000), and define their size using the Gizmo size setting.
NB : At the moment, gizmos are only available for raysets of type Speos and LucidShape (Ascii or Binary).
Display lights represent displays of any kind (Screen, HUD, ...) and are defined by their luminance profile. They are expected to be planar.
A uniform display is similar to a uniform light except it is defined by its luminance profile instead of its intensity profile. It emits light with a constant luminance and the same spectrum across the surface. The EDF of a Uniform Display is defined as follow :
Spatial Uniformity : By default, the light is uniform, its luminance is the same at every position on the surface. You can also configure a Spatial Uniformity texture that defines the variation of (spectral) color on the surface. The color/spectrum of the texture will be multiplied by the light intensity defined otherwise,
Angular Profile : The angular profile of the light is a model configured so that the luminance is constant,
Spectral Distribution : The spectrum of the light can be defined by the user in different ways, see the Spectrums section. Its values can be modulated by :
A scaling coefficient,
A luminance or radiance value : in this case, the coefficient applied to the spectrum is automatically computed so that the luminance/radiance of the light reaches the required value,
A preset value.
You can find other orders of magnitude for the expected luminance values here : https://en.wikipedia.org/wiki/Orders_of_magnitude_%28luminance%29.
A display (or HUD screen) is an emitting rectangular surface made of pixels. Each pixel can emit a different colour but they all have the same angular and spectral behaviour. The EDF of a RGB Display is defined as follow :
Spatial Uniformity : The light is not uniform, its intensity is modulated by a custom texture that defines the levels of the R,G,B channels of each pixel. The position of the texture on the surface is defined by the geometry’s UVs. The gamma defines the space the texture is encoded in, usually 2.2,
Angular Profile : The angular profile of the light is a model configured so that the luminance is constant,
Spectral Distribution : The spectral distribution of the light can be defined by the user,
Each red, green and blue channel emits light with a given spectrum that is defined separately, see the Spectrums section. The light emitted by a pixel will be the combination of all three channels modulated by their intensity in the texture for this pixel. These curves define the gamut of the screen, their default values define the sRGB-D65 gamut,
The values of each pixel (combination of all three channels) can be modulated by :
A scaling coefficient,
A luminance or radiance value : in this case, the coefficient applied to the spectrum is automatically computed so that the luminance/radiance of the light reaches the required value for a white pixel,
A preset value.
The texture displayed on the screen should be encoded with an sRGB gamma.
A display (or HUD screen) is an emitting rectangular surface made of pixels. Each pixel can emit a different colour but they all have the same angular profile and spectral distribution. Apart from the texture displayed on the screen, measured displays are entirely measured. The EDF of a Measured Display is defined as follow :
Spatial Uniformity : The light is not uniform, its intensity is modulated by a custom texture that defines the levels of the R,G,B channels of each pixel. The position of the texture on the surface is defined by the geometry’s UVs. The gamma defines the space the texture is encoded in, usually 2.2,
Angular Profile : The angular profile of the light is measured, it is stored in the same file that contains the Spectral Distribution,
Spectral Distribution : The spectral distribution of the light is measured. The measure is stored in a file that contains values in W/m²/sr/nm and can be modulated with a coefficient. Currently, Predict Engine only supports one type of measured display :
The measurement of a display is performed using ELDIM EZConstrast MS88 and consists in measuring the emitted angular spectral radiance for each red, blue and green channels at nine pixel levels : 0, 31, 63, 95, 127, 159, 191, 223, 255. Each measurement should be exported from the ELDIM proprietary format (.i3dx) to the ELDIM binary data format (.dat).
The final measure should be composed of three directories (“blue”, “green”, and “red”) each containing the set of measurements for the corresponding pixel channel. You can give the three directories separately, or give one main directory that contains the three directories.
One set of measurement is composed of nine *.dat files, one for each pixel level of the given channel. Files are read in lexicographic order so we recommend to add trailing zeros in the file name, for instance : red031.dat for pixel level 31 of the red channel.
Example use case of a measured display inside a vehicle
Example use case of a measured display inside a plane cockpit
Example use case of a measured display inside a plane cabin : the angular variations of the intensity of the screen is very visible on the right
Measured displays are big sets of data, they can take some time to load. You can enable an option in the performance settings of Predict Engine to load measured displays faster but with some imprecisions.
If you have display data in a different format, please contact us.