eradiate.scenes.surface.BasicSurface#

class eradiate.scenes.surface.BasicSurface(id='surface', shape=None, bsdf=_Nothing.NOTHING)[source]#

Bases: Surface

Basic surface [basic].

A basic surface description consisting of a single shape and BSDF.

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

  • shape (RectangleShape or SphereShape or dict, optional, default: .RectangleShape) – Shape describing the surface. This parameter may be left unset for situations in which the task of setting its value is delegated to another component (e.g. an Experiment instance owning the surface object); however, if it is still unset upon kernel dictionary generation, the call to traverse() will raise a TraversalError.

  • bsdf (BSDF or dict, optional, default: LambertianBSDF()) – The reflection model attached to the surface.

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

  • shape (RectangleShape or SphereShape or None) – Shape describing the surface.

  • bsdf (BSDF) – The reflection model attached to the surface.

traverse(callback)[source]#

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.