Opaque materials are defined by the way they reflect light depending on the direction of observation, and the direction and wavelength of the light arriving on the material. This behaviour can be characterized by a function called BRDF (Bidirectional Reflectance Distribution Function). The BRDF can be measured and it can be simulated in Predict Engine.
Examples of measured materials
The Predict suite supports a variety of measured materials :
Seelab measurements, stored in a .csv file,
Murakami measurements (version 1 and 2), stored in a .csv file,
XRite measurements, stored in a .axf file,
Eldim measurements, stored in a set of .dat textures,
Custom measurements, stored in a .axf file or in textures formatted for the AxF shader.
Materials that are stored in more than one file can only be defined if the Expert mode is enabled.
Seelab and Murakami BRDFs are stored in one single *.csv file, the file contains the measure of the material in the plane of incidence.
Next to the measure file, a preview of the measure is displayed in the interface. This preview gives you information on the content of the measure :
The measure is displayed in the reflection hemisphere,
The curves represent the intensity of the light reflected by the material for different wavelengths and different light directions : in the example here against all 3 measures contain 2 lobes (one a 0° and one at 45°),
The light directions are represented by yellow lines in the hemisphere,
When the measure contains data in a very large range, you can display the curves using a log scale.
The curves can be interpreted as follow :
When the intensity of the curves at different wavelengths varies a lot, the color of the curves with the higher intensity gives a good idea of the resulting color of the material : in the example here against, the top curve represents a blue plastic,
Most materials reflect light mainly in the specular direction : the direction that mirrors the incident light. The curves of such materials form a lobe around the specular direction, the thinner the lobe the shinier the material will be : in the example here against, the top curve is a plastic (the lobe is very large), the middle curve is a brushed metal (the lobe is quite thin), and the bottom curve is a shiny metal (the lobe is very thin).
Material defined with Seelab measurement
Material defined with a Murakami V1 measurement
Material defined with a Murakami V2 measurement
Measured BRDFs are big sets of datas and can be heavy on the memory, the “Quality” factor given on the material for Plane and Hemispherical measures enables you to reduce the size (and quality) of a material.
NB : this quality factor has a huge influence on the memory space used by the measure when rendering.
You can create à Unity material automatically from a *.csv file by right-clicking on a *.csv file in the Project tab and selecting the menu "PredictSuite - Matter/Generate Measured Material".
Predict Engine can simulate materials stored in X-Rite material format AxF (Appearance eXchange Format). These materials are representations of measured complex materials such as textured surfaces or car paints for instance. They are stored in one single *.axf file.
Additional settings are available when you define a measured material using an AxF file :
The Default Texture UV is the UV set that will be used for every texture stored inside the *.axf file,
Every texture's UV set can be overridden in the Custom Textures UV section if it must be different from the default one.
Material defined with an AxF SVBRDF measurement
Material defined with an AxF CarPaint measurement
You can create à Unity material automatically from a *.axf file by right-clicking on a *.axf file in the Project tab and selecting the menu "PredictSuite - Matter/Generate Measured Material".
You can export the content of a *.axf file (textures + log) by right-clicking on a *.axf file in the Project tab and selecting the menu "PredictSuite - Matter/Export AxF Datas".
If you are using the HDRP pipeline, you can also define a measured material using the Unity HDRP AxF shader.
If you are using the HDRP pipeline with an industrial license and the AxF Importer Package, you can also use *.axf files directly as materials on your geometries.
Predict Engine supports all features included in AxF files, except displacement mapping and volume diffusion.
Eldim BRDFs are stored in several *.dat files. Each file contains the hemispherical measure of one lobe : the measure of the material at a given incident light direction given by its azimuth and its inclination.
Such materials can be defined by selecting the input type "Hemisphere Data", only available if the Expert Mode is enabled.
Material defined with an Eldim measurement
Measured BRDFs are big sets of datas and can be heavy on the memory, the “Quality” factor given on the material for Plane and Hemispherical measures enables you to reduce the size (and quality) of a material. A quality of 1 is the original material quality. A quality of 0 is the minimum quality supported by Predict Matter to still be able to simulate the measure.
You can define a measured material using the textures and settings that define it.
Such materials can be defined by selecting the input type "Custom AxF", only available if the Expert Mode is enabled.
Custom AxF materials rely on the AxF file format, we currently support two BRDF types : SVBRDF and CarPaint2.
Materials of type SVBRDF are defined using the following settings :
Specular Type : defines the model associated with the specular component (Ward (Ward, 1992) or GGX (Walter et al., 2007),
Ward Variant : defines the variant of the Ward model,
Diffuse Color : texture or color used for the diffuse component,
Specular Color : texture or color used for the specular component
Specular Lobe: texture or Vector2 used for the specular component roughness (only the red and green values are used),
Fresnel : texture or value used for the F0 values (Schlick, 1994) or the specular component,
Alpha : texture or value used as an opacity map (optional),
Anisotropic Rotation : texture or value (in degrees) used for the specular component rotation,
Normal : texture used as the base material normal map (ignored if there is a clearcoat),
Clearcoat :
Transmission Color : color transmitted by the coating,
IOR : texture or value that defines the index of refraction of the coating,
Specular Roughness : texture or value that defines the roughness of the coating,
Internal Reflection Amount : texture or value that defines the internal reflection amount of the coating,
Normal : texture used as the clearcoat normal map.
Material defined with AxF textures, using the SVBRDF definition
Materials of type CarPaint2 are defined using the following settings :
BRDF Color : texture used for the color of the BRDF,
CT Diffuse : coefficient for the diffuse component,
CT Coeffs : coefficients for the three Cook-Torrance lobes,
CT F0s : F0 values for the three Cook-Torrance lobes,
CT Spreads : roughness values for the three Cook-Torrance lobes,
Clearcoat IOR : Index of Refraction of the clearcoat,
Clearcoat Variant : variant used for the clearcoat,
Flakes :
Num Theta F : number of theta F bins inside the flakes texture,
Num Theta I : number of theta I bins inside the flakes texture,
Max Theta I : maximum number of theta I bins actually used inside the flakes texture (optional),
Theta FI Slice LUT : Indexes for the flakes texture,
BTF Flakes : texture used for the flakes BTF.
Material defined with AxF textures, using the CarPaint definition