Source code for honeybee_radiance.modifier.material.plasfunc
"""Radiance Plasfunc Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Plasfunc
"""
from .materialbase import Material
# TODO: Implement the class. It's currently only a generic Radiance Primitive
[docs]
class Plasfunc(Material):
"""Radiance Plasfunc Material.
Plasfunc in used for the procedural definition of plastic-like materials with
arbitrary bidirectional reflectance distribution functions (BRDF's). The arguments
to this material include the color and specularity, as well as the function defining
the specular distribution and the auxiliary file where it may be found.
.. code-block:: shell
mod plasfunc id
2+ refl funcfile transform
0
4+ red green blue spec A5 ..
The function refl takes four arguments, the x, y and z direction towards the incident
light, and the solid angle subtended by the source. The solid angle is provided to
facilitate averaging, and is usually ignored. The refl function should integrate to
1 over the projected hemisphere to maintain energy balance. At least four real
arguments must be given, and these are made available along with any additional
values to the reflectance function. Currently, only the contribution from direct
light sources is considered in the specular calculation. As in most material types,
the surface normal is always altered to face the incoming ray.
Args:
identifier: Text string for a unique Material ID. Must not contain spaces
or special characters. This will be used to identify the object across
a model and in the exported Radiance files.
modifier: Modifier. It can be primitive, mixture, texture or pattern.
(Default: None).
values: An array 3 arrays for primitive data. Each of the 3 sub-arrays
refer to a line number in the radiance primitive definitions and the
values in each array correspond to values occurring within each line.
is_opaque: A boolean to indicate whether this primitive is opaque.
dependencies: A list of primitives that this primitive depends on. This
argument is only useful for defining advanced primitives that are
defined based on other primitives. (Default: []).
Properties:
* identifier
* display_name
* values
* modifier
* dependencies
* is_modifier
* is_material
* is_opaque
"""
__slots__ = ()
pass