eradiate.scenes.bsdfs.RPVBSDF#

class eradiate.scenes.bsdfs.RPVBSDF(id=None, rho_0=0.183, rho_c=None, k=0.78, g=-0.1)[source]#

Bases: BSDF

RPV BSDF [rpv].

This BSDF implements the Rahman-Pinty-Verstraete (RPV) reflection model [Pinty et al., 2000, Rahman et al., 1993]. It notably features a controllable back-scattering lobe (hot spot) characteristic of many natural land surfaces and is frequently used in Earth observation because of its simple parametrisation.

Parameters:
  • id (str, optional) – Identifier of the current scene element.

  • rho_0 (Spectrum or dict or float, optional, default: 0.183) – Amplitude parameter. Must be dimensionless. Should be in \([0, 1]\).

  • rho_c (Spectrum or dict or float or None, optional, default: None) – Hot spot parameter. Must be dimensionless. Should be in \([0, 1]\). If unset, \(\rho_\mathrm{c}\) defaults to the kernel plugin default (equal to \(\rho_0\)).

  • k (Spectrum or dict or float, optional, default: 0.780) – Bowl-shape parameter. Must be dimensionless. Should be in \([0, 2]\).

  • g (Spectrum or dict or float, optional, default: -0.1) – Asymmetry parameter. Must be dimensionless. Should be in \([-1, 1]\).

Fields:
  • id (str or None) – Identifier of the current scene element.

  • rho_0 (Spectrum) – Amplitude parameter.

  • rho_c (Spectrum or None) – Hot spot parameter.

  • k (Spectrum) – Bowl-shape parameter.

  • g (Spectrum) – Asymmetry parameter.

Notes

  • The default configuration is typical of grassland in the visible domain ([Rahman et al., 1993], Table 1).

  • Parameter names are defined as per the symbols used in the Eradiate Scientific Handbook [Team, 2020].

traverse(callback)#

Traverse this scene element and collect kernel dictionary template and parameter update map contributions.

Parameters:

callback (SceneTraversal) – Callback data structure storing the collected data.

update()#

Enforce internal state consistency. This method should be called when fields are modified. It is automatically called as a post-init step.

property objects#

Map of child objects associated with this scene element.

Returns:

dict – A dictionary mapping object names to a corresponding object to be inserted in the Eradiate scene graph.

property params#
Returns:

dict[str, UpdateParameter] or None – A dictionary mapping parameter paths, consisting of dot-separated strings, to a corresponding update protocol.

property template#

Kernel dictionary template contents associated with this scene element.

Returns:

dict – A flat dictionary mapping dot-separated strings describing the path of an item in the nested scene dictionary to values. Values may be objects which can be directly used by the mitsuba.load_dict() function, or InitParameter instances which must be rendered.