eradiate.scenes.phase.RayleighPhaseFunction#

class eradiate.scenes.phase.RayleighPhaseFunction(id='phase', geometry=None, *, depolarization=NOTHING)[source]#

Bases: PhaseFunction

Rayleigh phase function [rayleigh].

The Rayleigh phase function models scattering by particles with a characteristic size much smaller than the considered radiation wavelength. It is typically used to represent scattering by gas molecules in the atmosphere.

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

  • depolarization (array-like, callable(), or None) – The ratio of intensities parallel and perpendicular to the plane of scattering for light scattered at 90 deg. Only relevant when using a polarization mode.

  • geometry (SceneGeometry or dict or str, optional, default: None) – Parameters defining the basic geometry of the scene. If unset, the volume textures defining component weights will be assigned defaults likely unsuitable for atmosphere construction.

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

  • depolarization (ndarray, callable() or None) – The ratio of intensities parallel and perpendicular to the plane of scattering for light scattered at 90 deg.

  • geometry (SceneGeometry or None) – Parameters defining the basic geometry of the scene.

eval_depolarization_factor(si)[source]#

Evaluate the depolarization factor.

Parameters:

si (SpectralIndex) – Spectral context.

Returns:

  • Depolarization factor as an array of shape (N) where N can

  • either be 1 or the number of layers of the atmosphere's vertical

  • axis.

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.