BSDFs

Bi-Lambertian material (bilambertian)

Parameter

Type

Description

Flags

reflectance

spectrum or texture

Specifies the diffuse reflectance of the material. Default: 0.5

P

transmittance

spectrum or texture

Specifies the diffuse transmittance of the material. Default: 0.5

P

The bi-Lambertian material scatters light diffusely into the entire sphere. The reflectance specifies the amount of light scattered into the incoming hemisphere, while the transmittance specifies the amount of light scattered into the outgoing hemisphere. This material is two-sided.

Note

This material is not designed for realistic rendering, but rather for large-scale simulation of atmospheric radiative transfer over vegetated surfaces.

Rahman Pinty Verstraete reflection model (rpv)

Parameter

Type

Description

Flags

rho_0

spectrum or texture

\(\rho_0 \ge 0\). Default: 0.1

P

k

spectrum or texture

\(k \in \mathbb{R}\). Default: 0.1

P

g

spectrum or texture

\(-1 \le g \le 1\). Default: 0.0

P

rho_c

spectrum or texture

Default: Equal to rho_0

P

This plugin implements the reflection model proposed by [Rahman et al., 1993].

Apart from floating point values, model parameters can be defined by nested or referenced textures which are then mapped onto the shape based on its UV parameterization.

This plugin also supports the most common extension of the RPV model to four parameters, namely the \(\rho_c\) extension, as used in [Widlowski et al., 2006].

For the fundamental formulae defining the RPV model, please refer to the Eradiate Scientific Handbook.

Note that this material is one-sided—that is, observed from the back side, it will be completely black. If this is undesirable, consider using the twosided BSDF adapter plugin. The following snippet describes an RPV material with monochromatic parameters:

"type": "rpv",
"rho_0": 0.02,
"k": 0.3,
"g": -0.12
<bsdf type="rpv">
    <float name="rho_0" value="0.02"/>
    <float name="k" value="0.3"/>
    <float name="g" value="-0.12"/>
</bsdf>

Ross-Thick Li-Sparse reflection model (rtls)

Parameter

Type

Description

Flags

f_iso

spectrum or texture

\(f_{iso}\). Default: 0.209741

P

f_geo

spectrum or texture

\(f_{geo}\). Default: 0.081384

P

f_vol

spectrum or texture

\(f_{vol}\). Default: 0.004140

P

h

float

\(h\). Default: 2.f

P

r

float

\(r\). Default: 1.f

P

b

float

\(b\). Default: 1.f

P

The RTLS plugin implement the Ross-Thick, Li-Sparse model proposed by (Strahler et al, 1999) for the MODIS operational the BRDF model Version 5.0

Default parameters for \(f_k\) parameters are taken from the RAMI4ATM benchmark test cases defined by the JRC, for measures done using the Sentinel-2A MSI band 8A spectral region (centered around 865nm): https://rami-benchmark.jrc.ec.europa.eu

Selector material (selectbsdf)

Parameter

Type

Description

Flags

indices

texture

A texture of integer indices indicating which underlying BSDF is active as a function of space coordinates.

P

(Nested plugin)

bsdf

At least two nested BSDF instances that are selected based on selection indices.

P,

This plugin implements a selector material, which uses a texture to select one of an arbitrary number of nested BSDF plugins. The index texture should take discrete integer values (even if it is internally stored using floating-point numbers).

The index texture should be initialized carefully when using a bitmap plugin:

  • set the raw parameter to True to prevent spectral pre-processing;

  • use a nearest filter type to avoid interpolation between pixels;

  • it is more efficient to use a single-channel storage.

Measured quasi-diffuse material (mqdiffuse)

Parameter

Type

Description

Flags

filename

string

Filename of the volume to be loaded.

grid

VolumeGrid object

When creating a grid volume at runtime, e.g. from Python or C++, an existing VolumeGrid instance can be passed directly rather than loading it from the filesystem with filename.

accel

boolean

Hardware acceleration features can be used in CUDA mode. These features can cause small differences as hardware interpolation methods typically have a loss of precision (not exactly 32-bit arithmetic). (Default: true)

This plugin models the reflection of light by opaque materials with a behaviour close to diffuse, i.e with no strong scattering lobe. Assumptions are as follows:

  • The material is isotropic. Consequently, only the azimuth difference matters.

  • The material is gray. Consequently, no spectral dimension is used.

The data dimension order is (cos_theta_o, phi_d, cos_theta_i). The sampling routine is uniform cosine-weighted (i.e. the same as for the diffuse plugin).

Warning

Table values are not checked internally: ensuring that the data is consistent (e.g that the corresponding reflectance is not greater than 1) is the user’s responsibility.

Oceanic reflection model (ocean-mishchenko)

Parameter

Type

Description

Flags

wind_speed

float

Specifies the wind speed at which to evaluate the oceanic reflectance. Range: [0, 37.54] m/s. Default: 0.1 m/s

P,

eta, k

spectrum or texture

Real and imaginary components of the water’s index of refraction. Default: 1.33, 0.0

P,

ext_ior

spectrum or texture

Exterior index of refraction specified numerically or using a known material name. Note that the complex component is assumed to be 0. Default: 1.000277

P,

shadowing

boolean

Indicates whether evaluation accounts for the shadowing-masking term. Default: true

This plugin implements the polarized oceanic reflection model originally implemented by [Mishchenko and Travis, 1997]. This model focuses on the sunglint reflectance, which follows the Cox and Munk surface slope probability distribution.

Note that this material is one-sided—that is, observed from the back side, it will be completely black. If this is undesirable, consider using the twosided BSDF adapter plugin. The following snippet describes an oceanic surface material with monochromatic parameters:

"type": "ocean_mishchenko",
"wind_speed": 10,
"eta": 1.33,
"k": 0.,
"ext_ior": 1.0,
<bsdf type="ocean_mishchenko">
    <float name="wind_speed" value="10"/>
    <float name="eta" value="1.33"/>
    <float name="k" value="0."/>
    <float name="ext_ior" value=1.0/>
</bsdf>

Note

This model only implements the sunglint reflection. See ocean legacy for a BSDF that includes whitecap, sunglint, and underlight reflectance.

Hapke surface model (hapke)

Parameter

Type

Description

Flags

w

spectrum or texture

Single scattering albedo (in \([0, 1]\); default: 0.5).

P

b

spectrum or texture

Asymmetry parameter of the Henyey-Greenstein phase function (in \([0, 1]\); default: 0.2).

P

c

spectrum or texture

Backscattering parameter of the Henyey-Greenstein phase function (in \([0, 1]\); default: 0.5).

P

theta

spectrum or texture

Macroscopic roughness, expressed as the mean slope angle (in \([0°, 90°]\); default: 30°).

P

B_0

spectrum or texture

Intensity of shadow hiding opposition effect (in \([0, 1]\); default: 0).

P

h

spectrum or texture

Width of shadow hiding opposition effect (in \([0, 1]\); default: 0).

P

This plugin implements a bare soil reflection model based on the work of Bruce Hapke. This variant is validated against the one presented by Nguyen et al. [2025]. It features 6 parameters and includes adjustments compared to the core reference [Hapke, 2012].

The default parameters are an order of magnitude of the results presented by Nguyen et al. [2025] and notably neglect the influence of the opposition effect.

Measured material (measured_mono)

Parameter

Type

Description

Flags

filename

string

Filename of the material data file to be loaded

wavelength

float

Specifies the wavelength at which the model is evaluated with monochromatic variants.

This plugin is a modified version of the measured BSDF which supports monochromatic variants.

(Legacy 6S) Oceanic reflection model (ocean-legacy)

Parameter

Type

Description

Flags

wavelength

float

Specifies the wavelength at which to evaluate the oceanic reflectance. Range: [200, 4000] nm

P

wind_speed

spectrum or texture

Specifies the wind speed at which to evaluate the oceanic reflectance. Range: [0, 37.54] m/s. Default: 0.1 m/s

P

wind_direction

float

Specifies the wind direction at which to evaluate the oceanic reflectance in North Left convention. Range: [0, 360]. Default: 0.0°

P

chlorinity

float

Specifies the chlorinity of the water at which to evaluate the oceanic reflectance. Default: 19.0 g/kg

P

pigmentation

float

Specifies the pigmentation of the water at which to evaluate the oceanic reflectance. Range: [0.3, ∞[. Default: 0.3 mg/m^3

P

shadowing

boolean

Indicates whether evaluation accounts for the shadowing-masking term. (Default: true).

P

component

integer

Debug: specifies which component of the oceanic reflection model to evaluate. Default: 0 Component 0 is used to evaluate the total oceanic reflectance. Component 1 evaluates the whitecap reflectance. Component 2 evaluates the sun glint reflectance. Component 3 evaluates the underlight reflectance. Component 4 evaluates the whitecap and underlight reflectance together.

P

State parameters

coverage

float

Fraction of the surface occupied by whitecaps. Modifying this parameter has no effect: it is automatically computed from the wind speed.

P

This plugin implements the oceanic reflection model originally implemented in the 6S radiative transfer model. Note that this model is monochromatic.

For the fundamental formulae defining the oceanic reflectance model, please refer to the Eradiate Scientific Handbook.

Note that this material is one-sided—that is, observed from the back side, it will be completely black. If this is undesirable, consider using the twosided BSDF adapter plugin. The following snippet describes an oceanic surface material with monochromatic parameters:

Warning

The wind direction is given in degrees and follows the North Left convention as in 6SV.

"type": "ocean_legacy",
"wavelength": 550,
"wind_speed": 10,
"wind_direction": 0,
"chlorinity": 19,
"pigmentation": 0.3,
"shadowing": True,
"component": 0,
<bsdf type="ocean_legacy">
    <float name="wavelength" value="550"/>
    <float name="wind_speed" value="10"/>
    <float name="wind_direction" value="0"/>
    <float name="chlorinity" value="19"/>
    <float name="pigmentation" value="0.3"/>
    <float name="shadowing" value="True"/>
    <int name="component" value="0"/>
</bsdf>

(GRASP) Oceanic reflection model (ocean-grasp)

Parameter

Type

Description

Flags

wavelength

float

Specifies the wavelength at which to evaluate the oceanic reflectance. Range: [200, 4000] nm. Required

P

wind_speed

spectrum or texture

Specifies the wind speed at which to evaluate the oceanic reflectance. Range: [0, 37.54] m/s. Default: 0.1 m/s

P

eta, k

spectrum or texture

Real and imaginary components of the water’s index of refraction. Default: 1.33, 0.0

P

ext_ior

spectrum or texture

Exterior index of refraction specified numerically or using a known material name. Note that the complex component is assumed to be 0. Default: 1.000277

P

water_body_reflectance

spectrum or texture

Diffuse reflectance of radiations that entered and exited the water body. (Default: 0.).

P

component

integer

Debug: specifies which component of the oceanic reflection model to evaluate. Default: 0.

  • Component 0 is used to evaluate the total oceanic reflectance.

  • Component 1 evaluates the whitecap reflectance.

  • Component 2 evaluates the sun glint reflectance.

  • Component 3 evaluates the underlight reflectance.

  • Component 4 evaluates the whitecap and underlight reflectance together.

State parameters

This plugin implements the oceanic reflection model originally detailed in [Litvinov et al., 2024]. Note that this model is monochromatic.

For the fundamental formulae defining the oceanic reflectance model, please refer to the Eradiate Scientific Handbook.

Note that this material is one-sided—that is, observed from the back side, it will be completely black. If this is undesirable, consider using the twosided BSDF adapter plugin. The following snippet describes an oceanic surface material with monochromatic parameters:

"type": "ocean_grasp",
"wavelength": 550,
"wind_speed": 10,
"eta": 1.33,
"k": 0.,
"ext_ior": 1.0,
"water_body_reflectance": 0.02,
"component": 0,
<bsdf type="ocean_grasp">
    <float name="wavelength" value="550"/>
    <float name="wind_speed" value="10"/>
    <float name="eta" value="1.33"/>
    <float name="k" value="0."/>
    <float name="ext_ior" value=1.0/>
    <float name="water_body_reflectance" value=0.02/>
    <int name="component" value="0"/>
</bsdf>

Polarized reflection model by Maignan et al. (maignan)

Parameter

Type

Description

Flags

C

spectrum or texture

\(\rho_0 \ge 0\). Default: 5.0

P

ndvi

spectrum or texture

\(0 \le ndvi \le 1\). Default: 0.8

P

refr_re

spectrum or texture

\(1 \le refr{_re} \le \infty\). Default: 1.5

P

refr_im

spectrum or texture

\(0 \le refr{_im} \le \infty\). Default: 0.0

P

ext_ior

spectrum or texture

Exterior index of refraction specified numerically or using a known material name. Note that the complex component is assumed to be 0. Default: 1.000277

This plugin implements the reflection model proposed by [Maignan et al., 2009].

Apart from floating point values, model parameters can be defined by nested or referenced textures which are then mapped onto the shape based on its UV parameterization.

The model is based on fits to POLDER observations and combines a BRDF with the Fresnel reflectance matrix (see Eq. 21 in [Maignan et al., 2009]).

Note that this material is one-sided—that is, observed from the back side, it will be completely black. If this is undesirable, consider using the twosided BSDF adapter plugin. The following snippet describes an RPV material with monochromatic parameters:

"type": "maignan",
"C": 5.0,
"ndvi": 0.8,
"refr_re": 1.5,
"refr_im": 0.0,
<bsdf type="maignan">
    <float name="C" value="5"/>
    <float name="ndvi" value="0.8"/>
    <float name="refr_re" value="1.5"/>
    <float name="refr_im" value="0.0"/>
    <float name="ext_ior" value="1.0"/>
</bsdf>