eradiate.scenes.phase.BlendPhaseFunction#

class eradiate.scenes.phase.BlendPhaseFunction(id='phase', geometry=None, *, components, weights)[source]#

Bases: PhaseFunction

Blended phase function [blend_phase].

This phase function aggregates two or more sub-phase functions (components) and blends them based on its weights parameter. Weights are usually based on the associated medium’s scattering coefficient.

eval_conditional_weights(si, n_component=None)[source]#

Evaluate the conditional weights of specified Mitsuba phase function components.

Parameters:
  • si (SpectralIndex) – Spectral context.

  • n_component (int or list of int, optional) – The index of the Mitsuba phase function component for which the conditional weight should be evaluated. If None, the conditional weights of all components will be evaluated.

Returns:

ndarray – Conditional weights of the specified components as an array of shape (N, M) where n is the number of components and m the number of cells along 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()[source]#

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.