honeybee.radiance.material package¶
Submodules¶
honeybee.radiance.material.antimatter module¶
Radiance Antimatter Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Antimatter
-
class
honeybee.radiance.material.antimatter.
Antimatter
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Antimatter Material.
Antimatter is a material that can “subtract” volumes from other volumes. A ray passing into an antimatter object becomes blind to all the specified modifiers:
mod antimatter id N mod1 mod2 .. modN 0 0The first modifier will also be used to shade the area leaving the antimatter volume and entering the regular volume. If mod1 is void, the antimatter volume is completely invisible. Antimatter does not work properly with the material type “trans”, and multiple antimatter surfaces should be disjoint. The viewpoint must be outside all volumes concerned for a correct rendering.
honeybee.radiance.material.ashik2 module¶
Radiance Ashik2 Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Ashik2
-
class
honeybee.radiance.material.ashik2.
Ashik2
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Ashik2 Material.
Ashik2 is the anisotropic reflectance model by Ashikhmin & Shirley. The string arguments are the same as for plastic2, but the real arguments have additional flexibility to specify the specular color. Also, rather than roughness, specular power is used, which has no physical meaning other than larger numbers are equivalent to a smoother surface.
mod ashik2 id 4+ ux uy uz funcfile transform 0 8 dred dgrn dblu sred sgrn sblu u-power v-power
honeybee.radiance.material.brtdfunc module¶
Radiance BRTDfunc Material.
http://radsite.lbl.gov/radiance/refer/ray.html#BRTDfunc
-
class
honeybee.radiance.material.brtdfunc.
BRTDfunc
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance BRTDfunc Material.
The material BRTDfunc gives the maximum flexibility over surface reflectance and transmittance, providing for spectrally-dependent specular rays and reflectance and transmittance distribution functions.
mod BRTDfunc id 10+ rrefl grefl brefl
rtrns gtrns btrns rbrtd gbrtd bbrtd funcfile transform0 9+ rfdif gfdif bfdif
rbdif gbdif bbdif rtdif gtdif btdif A10 ..The variables rrefl, grefl and brefl specify the color coefficients for the ideal specular (mirror) reflection of the surface. The variables rtrns, gtrns and btrns specify the color coefficients for the ideal specular transmission. The functions rbrtd, gbrtd and bbrtd take the direction to the incident light (and its solid angle) and compute the color coefficients for the directional diffuse part of reflection and transmission. As a special case, three identical values of ‘0’ may be given in place of these function names to indicate no directional diffuse component.
Unlike most other material types, the surface normal is not altered to face the incoming ray. Thus, functions and variables must pay attention to the orientation of the surface and make adjustments appropriately. However, the special variables for the perturbed dot product and surface normal, RdotP, NxP, NyP and NzP are reoriented as if the ray hit the front surface for convenience.
A diffuse reflection component may be given for the front side with rfdif, gfdif and bfdif for the front side of the surface or rbdif, gbdif and bbdif for the back side. The diffuse transmittance (must be the same for both sides by physical law) is given by rtdif, gtdif and btdif. A pattern will modify these diffuse scattering values, and will be available through the special variables CrP, CgP and CbP.
Care must be taken when using this material type to produce a physically valid reflection model. The reflectance functions should be bidirectional, and under no circumstances should the sum of reflected diffuse, transmitted diffuse, reflected specular, transmitted specular and the integrated directional diffuse component be greater than one.
honeybee.radiance.material.bsdf module¶
Radiance BSDF Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Glass
-
class
honeybee.radiance.material.bsdf.
BSDF
(xmlfile, name=None, up_orientation=None, thickness=None, modifier='void')[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance BSDF material.
-
xmlfile
¶ Path to an xml file. Data will not be cached in memory.
-
up_orientation
¶ (x, y ,z) vector that sets the hemisphere that the BSDF material faces. For materials that are symmetrical about the HBSrf plane (like non-angled venitian blinds), this can be any vector that is not perfectly normal to the HBSrf. For asymmetrical materials like angled veneitan blinds, this variable should be coordinated with the direction the HBSrfs are facing. The default is set to (0.01, 0.01, 1.00), which should hopefully not be perpendicular to any typical HBSrf.
-
thickness
¶ Optional number to set the thickness of the BSDF material. (default: 0).
-
modifier
¶ Material modifier (Default: “void”).
-
angle_basis
¶ XML file angle basis.
Klems full, Klems half, Klems Quarter or tensor tree
-
classmethod
from_json
(json_data)[source]¶ Make radiance material from json {
“modifier”: “”, // material modifier (Default: “void”) “type”: “custom”, // Material type “base_type”: “type”, // Material type “name”: “”, // Material Name “values”: {} // values}
-
honeybee.radiance.material.dielectric module¶
Radiance Dielectric Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Dielectric
-
class
honeybee.radiance.material.dielectric.
Dielectric
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Dielectric Material.
A dielectric material is transparent, and it refracts light as well as reflecting it. Its behavior is determined by the index of refraction and transmission coefficient in each wavelength band per unit length. Common glass has a index of refraction (n) around 1.5, and a transmission coefficient of roughly 0.92 over an inch. An additional number, the Hartmann constant, describes how the index of refraction changes as a function of wavelength. It is usually zero. (A pattern modifies only the refracted value.)
mod dielectric id 0 0 5 rtn gtn btn n hc
honeybee.radiance.material.glass module¶
Radiance Glass Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Glass
-
class
honeybee.radiance.material.glass.
Glass
(name, r_transmittance=0.0, g_transmittance=0.0, b_transmittance=0.0, refraction_index=1.52, modifier='void')[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance glass material.
-
average_transmittance
¶ Calculate average transmittance.
-
b_transmittance
= None¶ Transmittance for blue. The value should be between 0 and 1 (Default – 0).
-
classmethod
by_single_trans_value
(name, rgb_transmittance=0, refraction_index=1.52, modifier='void')[source]¶ Create glass material with single transmittance value.
-
name
¶ Material name as a string. Do not use white space and special character.
-
rgb_transmittance
¶ Transmittance for red, green and blue. The value should be between 0 and 1 (Default: 0).
-
refraction
¶ Index of refraction. 1.52 for glass and 1.4 for ETFE (Default: 1.52).
-
modifier
¶ Material modifier (Default: “void”).
- Usage:
- glassMaterial = Glass.by_single_trans_value(“generic glass”, .65) print(glassMaterial)
-
-
classmethod
from_json
(rec_json)[source]¶ Make radiance material from json {
“name”: “”, // Material Name “r_transmittance”: float, // Transmittance for red “g_transmittance”: float, // Transmittance for green “b_transmittance”: float, // Transmittance for blue “refraction”: float, // Index of refraction “modifier”: “” // material modifier (Default: “void”)}
-
classmethod
from_string
(material_string, modifier=None)[source]¶ Create a Radiance material from a string.
If the material has a modifier the modifier material should also be part of the string or should be provided using modifier argument.
-
g_transmittance
= None¶ Transmittance for green. The value should be between 0 and 1 (Default – 0).
-
static
get_transmissivity
(transmittance)[source]¶ Calculate transmissivity based on transmittance value.
“Transmissivity is the amount of light not absorbed in one traversal of the material. Transmittance – the value usually measured - is the total light transmitted through the pane including multiple reflections.”
-
r_transmittance
= None¶ Transmittance for red. The value should be between 0 and 1 (Default – 0).
-
refraction_index
= None¶ Index of refraction. 1.52 for glass and 1.4 for ETFE (Default – 1.52).
-
to_json
()[source]¶ Translate radiance material to json {
“type”: “glass”, // Material type “name”: “”, // Material Name “r_transmittance”: float, // Transmittance for red “g_transmittance”: float, // Transmittance for green “b_transmittance”: float, // Transmittance for blue “refraction_index”: float, // Index of refraction “modifier”: “” // material modifier (Default: “void”)}
-
honeybee.radiance.material.glow module¶
Radiance Glow Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Glow
-
class
honeybee.radiance.material.glow.
Glow
(name, red=0.0, green=0.0, blue=0.0, max_radius=0.0, modifier='void')[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Create glow material.
-
name
¶ Material name as a string. The name should not have whitespaces or special characters.
-
red
¶ A positive value for the Red channel of the glow (default: 0).
-
green
¶ A positive value for the Green channel of the glow (default: 0).
-
blue
¶ A positive value for the Blue channel of the glow (default: 0).
-
max_radius
¶ a maximum radius for shadow testing (default: 0). If maxrad is zero, then the surface will never be tested for shadow, although it may participate in an interreflection calculation. If maxrad is negative, then the surface will never contribute to scene illumination. Glow sources will never illuminate objects on the other side of an illum surface. This provides a convenient way to illuminate local light fixture geometry without overlighting nearby objects.
-
blue
= None A positive value for the Blue channel of the glow
-
classmethod
from_json
(rec_json)[source]¶ Make radiance material from json {
“name”: “”, // Material Name “red”: float, // A positive value for the Red channel of the glow “green”: float, // A positive value for the Green channel of the glow “blue”: float, // A positive value for the Blue channel of the glow “radius”: float // Maximum radius for shadow testing}
-
classmethod
from_string
(material_string, modifier=None)[source]¶ Create a Radiance material from a string.
If the material has a modifier the modifier material should also be partof the string or should be provided using modifier argument.
-
green
= None A positive value for the Green channel of the glow
-
max_radius
= None Maximum radius for shadow testing
-
red
= None A positive value for the Red channel of the glow
-
to_json
()[source]¶ Translate radiance material to json {
“type”: “glow”, // Material type “name”: “”, // Material Name “red”: float, // A positive value for the Red channel of the glow “green”: float, // A positive value for the Green channel of the glow “blue”: float, // A positive value for the Blue channel of the glow “radius”: float // Maximum radius for shadow testing}
-
-
class
honeybee.radiance.material.glow.
WhiteGlow
(name='white_glow')[source]¶ Bases:
honeybee.radiance.material.glow.Glow
A white glow material.
Use this material for multi-phase daylight studies.
honeybee.radiance.material.illum module¶
Radiance Illum Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Illum
-
class
honeybee.radiance.material.illum.
Illum
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Illum Material.
Illum is used for secondary light sources with broad distributions. A secondary light source is treated like any other light source, except when viewed directly. It then acts like it is made of a different material (indicated by the string argument), or becomes invisible (if no string argument is given, or the argument is “void”). Secondary sources are useful when modeling windows or brightly illuminated surfaces.
mod illum id 1 material 0 3 red green blue
honeybee.radiance.material.interface module¶
Radiance Interface Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Interface
-
class
honeybee.radiance.material.interface.
Interface
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Interface Material.
An interface is a boundary between two dielectrics. The first transmission coefficient and refractive index are for the inside; the second ones are for the outside. Ordinary dielectrics are surrounded by a vacuum (1 1 1 1).
mod interface id 0 0 8 rtn1 gtn1 btn1 n1 rtn2 gtn2 btn2 n2
honeybee.radiance.material.light module¶
Radiance Light Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Light
-
class
honeybee.radiance.material.light.
Light
(name, red=0.0, green=0.0, blue=0.0, modifier='void')[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
-
blue
= None¶ A positive value for the Blue channel of the light
-
classmethod
by_single_reflect_value
(name, rgb=0, modifier='void')[source]¶ Create light material with single value.
-
name
¶ Material name as a string. Do not use white space and special character.
-
rgb
¶ Input for red, green and blue. The value should be between 0 and 1 (Default: 0).
-
modifier
¶ Material modifier (Default: “void”).
- Usage:
- sample_light = Light.by_single_reflect_value(“sample_light”, 1) print(sample_light)
-
-
classmethod
from_json
(rec_json)[source]¶ Make radiance material from json {
“name”: “”, // Material Name “red”: float, // A positive value for the Red channel of the glow “green”: float, // A positive value for the Green channel of the glow “blue”: float, // A positive value for the Blue channel of the glow “radius”: float // Maximum radius for shadow testing}
-
classmethod
from_string
(material_string, modifier=None)[source]¶ Create a Radiance material from a string.
If the material has a modifier the modifier material should also be partof the string or should be provided using modifier argument.
-
green
= None¶ A positive value for the Green channel of the light
-
red
= None¶ A positive value for the Red channel of the light
-
to_json
()[source]¶ Translate radiance material to json {
“modifier”: modifier, “type”: “light”, // Material type “name”: “”, // Material Name “red”: float, // A positive value for the Red channel of the glow “green”: float, // A positive value for the Green channel of the glow “blue”: float // A positive value for the Blue channel of the glow}
-
honeybee.radiance.material.materialbase module¶
Base Radiance Material class (e.g plastic, glass, etc.).
http://radsite.lbl.gov/radiance/refer/ray.html#Materials
-
class
honeybee.radiance.material.materialbase.
RadianceMaterial
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.primitive.Primitive
Base class for Radiance materials.
-
isRadianceMaterial
¶ Indicate that this object is a Radiance Material.
-
honeybee.radiance.material.metal module¶
Radiance Metal Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Metal
-
class
honeybee.radiance.material.metal.
Metal
(name, r_reflectance=0, g_reflectance=0, b_reflectance=0, specularity=0.9, roughness=0, modifier='void')[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance metal material.
-
average_reflectance
¶ Calculate average reflectance of metal material.
-
b_reflectance
= None¶ Reflectance for blue. The value should be between 0 and 1 (Default – 0).
-
classmethod
by_single_reflect_value
(name, rgb_reflectance=0, specularity=0, roughness=0, modifier='void')[source]¶ Create metal material with single reflectance value.
-
name
¶ Material name as a string. Do not use white space and special character.
-
rgb_reflectance
¶ Reflectance for red, green and blue. The value should be between 0 and 1 (Default: 0).
-
specularity
¶ Fraction of specularity. Specularity fractions greater than 0.1 are not realistic (Default: 0).
-
roughness
¶ Roughness is specified as the rms slope of surface facets. A value of 0 corresponds to a perfectly smooth surface, and a value of 1 would be a very rough surface. Roughness values greater than 0.2 are not very realistic. (Default: 0).
-
modifier
¶ Material modifier (Default: “void”).
- Usage:
- wallMaterial = Metal.by_single_reflect_value(“generic wall”, .55) print(wallMaterial)
-
-
classmethod
from_json
(rec_json)[source]¶ Make radiance material from json {
“modifier”: modifier, “type”: “metal”, // Material type “name”: “”, // Material Name “r_reflectance”: float, // Reflectance for red “g_reflectance”: float, // Reflectance for green “b_reflectance”: float, // Reflectance for blue “specularity”: float, // Material specularity “roughness”: float // Material roughness}
-
classmethod
from_string
(material_string, modifier=None)[source]¶ Create a Radiance material from a string.
If the material has a modifier the modifier material should also be partof the string or should be provided using modifier argument.
-
g_reflectance
= None¶ Reflectance for green. The value should be between 0 and 1 (Default – 0).
-
r_reflectance
= None¶ Reflectance for red. The value should be between 0 and 1 (Default – 0).
-
roughness
= None Roughness is specified as the rms slope of surface facets. A value of 0 corresponds to a perfectly smooth surface, and a value of 1 would be a very rough surface. Roughness values greater than 0.2 are not very realistic. (Default: 0).
-
specularity
= None Fraction of specularity. Specularity fractions greater than 0.1 are not realistic (Default: 0.9).
-
to_json
()[source]¶ Translate radiance material to json {
“type”: “metal”, // Material type “name”: “”, // Material Name “r_reflectance”: float, // Reflectance for red “g_reflectance”: float, // Reflectance for green “b_reflectance”: float, // Reflectance for blue “specularity”: float, // Material specularity “roughness”: float // Material roughness}
-
honeybee.radiance.material.metal2 module¶
Radiance Metal2 Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Metal2
-
class
honeybee.radiance.material.metal2.
Metal2
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Metal2 Material.
Metal2 is the same as plastic2, except that the highlights are modified by the material color.
honeybee.radiance.material.metdata module¶
Radiance Metdata Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Metdata
-
class
honeybee.radiance.material.metdata.
Metdata
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Metdata Material.
As metfunc is to plasfunc, metdata is to plasdata. Metdata takes the same arguments as plasdata, but the specular component is modified by the given material color.
honeybee.radiance.material.metfunc module¶
Radiance Metfunc Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Metfunc
-
class
honeybee.radiance.material.metfunc.
Metfunc
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Metfunc Material.
Metfunc is identical to plasfunc and takes the same arguments, but the specular component is multiplied also by the material color.
honeybee.radiance.material.mirror module¶
Radiance Mirror Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Mirror
-
class
honeybee.radiance.material.mirror.
Mirror
(name, r_reflectance=0.95, g_reflectance=0.95, b_reflectance=0.95, modifier='void')[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance mirror material.
-
average_reflectance
¶ Calculate average reflectance of mirror material.
-
b_reflectance
= None¶ Reflectance for blue. The value should be between 0 and 1 (Default – 0).
-
classmethod
by_single_reflect_value
(name, rgb_reflectance=0, modifier='void')[source]¶ Create mirror material with single reflectance value.
-
name
¶ Material name as a string. Do not use white space and special character.
-
rgb_reflectance
¶ Reflectance for red, green and blue. The value should be between 0 and 1 (Default: 0).
-
modifier
¶ Material modifier (Default: “void”).
- Usage:
- wallMaterial = Mirror.by_single_reflect_value(“generic wall”, .55) print(wallMaterial)
-
-
classmethod
from_json
(rec_json)[source]¶ Make radiance material from json {
“type”: “mirror”, // Material type “name”: “”, // Material Name “r_reflectance”: float, // Reflectance for red “g_reflectance”: float, // Reflectance for green “b_reflectance”: float, // Reflectance for blue “modifier”: modifier}
-
classmethod
from_string
(material_string, modifier=None)[source]¶ Create a Radiance material from a string.
If the material has a modifier the modifier material should also be partof the string or should be provided using modifier argument.
-
g_reflectance
= None¶ Reflectance for green. The value should be between 0 and 1 (Default – 0).
-
r_reflectance
= None¶ Reflectance for red. The value should be between 0 and 1 (Default – 0).
-
honeybee.radiance.material.mist module¶
Radiance Mist Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Mist
-
class
honeybee.radiance.material.mist.
Mist
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Mist Material.
Mist is a virtual material used to delineate a volume of participating atmosphere. A list of important light sources may be given, along with an extinction coefficient, scattering albedo and scattering eccentricity parameter. The light sources named by the string argument list will be tested for scattering within the volume. Sources are identified by name, and virtual light sources may be indicated by giving the relaying object followed by ‘>’ followed by the source, i.e:
3 source1 mirror1>source10 mirror2>mirror1>source3Normally, only one source is given per mist material, and there is an upper limit of 32 to the total number of active scattering sources. The extinction coefficient, if given, is added the the global coefficient set on the command line. Extinction is in units of 1/distance (distance based on the world coordinates), and indicates the proportional loss of radiance over one unit distance. The scattering albedo, if present, will override the global setting within the volume. An albedo of 0 0 0 means a perfectly absorbing medium, and an albedo of 1 1 1 means a perfectly scattering medium (no absorption). The scattering eccentricity parameter will likewise override the global setting if it is present. Scattering eccentricity indicates how much scattered light favors the forward direction, as fit by the Henyey-Greenstein function:
P(theta) = (1 - g*g) / (1 + g*g - 2*g*cos(theta))^1.5A perfectly isotropic scattering medium has a g parameter of 0, and a highly directional material has a g parameter close to 1. Fits to the g parameter may be found along with typical extinction coefficients and scattering albedos for various atmospheres and cloud types in USGS meteorological tables. (A pattern will be applied to the extinction values.)
mod mist id N src1 src2 .. srcN 0 0|3|6|7 [ rext gext bext [ ralb galb balb [ g ] ] ]There are two usual uses of the mist type. One is to surround a beam from a spotlight or laser so that it is visible during rendering. For this application, it is important to use a cone (or cylinder) that is long enough and wide enough to contain the important visible portion. Light source photometry and intervening objects will have the desired effect, and crossing beams will result in additive scattering. For this application, it is best to leave off the real arguments, and use the global rendering parameters to control the atmosphere. The second application is to model clouds or other localized media. Complex boundary geometry may be used to give shape to a uniform medium, so long as the boundary encloses a proper volume. Alternatively, a pattern may be used to set the line integral value through the cloud for a ray entering or exiting a point in a given direction. For this application, it is best if cloud volumes do not overlap each other, and opaque objects contained within them may not be illuminated correctly unless the line integrals consider enclosed geometry.
honeybee.radiance.material.plasdata module¶
Radiance Plasdata Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Plasdata
-
class
honeybee.radiance.material.plasdata.
Plasdata
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Plasdata Material.
Plasdata is used for arbitrary BRDF’s that are most conveniently given as interpolated data. The arguments to this material are the data file and coordinate index functions, as well as a function to optionally modify the data values.
mod plasdata id 3+n+
func datafile funcfile x1 x2 .. xn transform0 4+ red green blue spec A5 ..
The coordinate indices (x1, x2, etc.) are themselves functions of the x, y and z direction to the incident light, plus the solid angle subtended by the light source (usually ignored). The data function (func) takes five variables, the interpolated value from the n-dimensional data file, followed by the x, y and z direction to the incident light and the solid angle of the source. The light source direction and size may of course be ignored by the function.
honeybee.radiance.material.plasfunc module¶
Radiance Plasfunc Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Plasfunc
-
class
honeybee.radiance.material.plasfunc.
Plasfunc
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
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.
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.
honeybee.radiance.material.plastic module¶
Radiance Plastic Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Plastic
-
class
honeybee.radiance.material.plastic.
BlackMaterial
(name='black', r_reflectance=0.0, g_reflectance=0.0, b_reflectance=0.0, specularity=0.0, roughness=0.0, modifier='void')[source]¶ Bases:
honeybee.radiance.material.plastic.Plastic
Radiance black plastic material.
-
class
honeybee.radiance.material.plastic.
Plastic
(name, r_reflectance=0.0, g_reflectance=0.0, b_reflectance=0.0, specularity=0.0, roughness=0.0, modifier='void')[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance plastic material.
-
average_reflectance
¶ Calculate average reflectance of plastic material.
-
b_reflectance
= None¶ Reflectance for blue. The value should be between 0 and 1 (Default – 0).
-
classmethod
by_single_reflect_value
(name, rgb_reflectance=0.0, specularity=0.0, roughness=0.0, modifier='void')[source]¶ Create plastic material with single reflectance value.
-
name
¶ Material name as a string. Do not use white space and special character
-
rgb_reflectance
¶ Reflectance for red, green and blue. The value should be between 0 and 1 (Default: 0).
-
specularity
¶ Fraction of specularity. Specularity fractions greater than 0.1 are not realistic (Default: 0).
-
roughness
¶ Roughness is specified as the rms slope of surface facets. A value of 0 corresponds to a perfectly smooth surface, and a value of 1 would be a very rough surface. Roughness values greater than 0.2 are not very realistic. (Default: 0).
-
modifier
¶ Material modifier (Default: “void”).
- Usage:
- wallMaterial = Plastic.by_single_reflect_value(“generic wall”, .55) print(wallMaterial)
-
-
classmethod
from_json
(rec_json)[source]¶ Make radiance material from json {
“modifier”: {} or void, // Material modifier “type”: “plastic”, // Material type “name”: “”, // Material Name “r_reflectance”: float, // Reflectance for red “g_reflectance”: float, // Reflectance for green “b_reflectance”: float, // Reflectance for blue “specularity”: float, // Material specularity “roughness”: float // Material roughness}
-
classmethod
from_string
(material_string, modifier=None)[source]¶ Create a Radiance material from a string.
If the material has a modifier the modifier material should also be partof the string or should be provided using modifier argument.
-
g_reflectance
= None¶ Reflectance for green. The value should be between 0 and 1 (Default – 0).
-
r_reflectance
= None¶ Reflectance for red. The value should be between 0 and 1 (Default – 0).
-
roughness
= None Roughness is specified as the rms slope of surface facets. A value of 0 corresponds to a perfectly smooth surface, and a value of 1 would be a very rough surface. Roughness values greater than 0.2 are not very realistic. (Default: 0).
-
specularity
= None Fraction of specularity. Specularity fractions greater than 0.1 are not realistic (Default: 0).
-
to_json
()[source]¶ Translate radiance material to json {
“type”: “plastic”, // Material type “name”: “”, // Material Name “r_reflectance”: float, // Reflectance for red “g_reflectance”: float, // Reflectance for green “b_reflectance”: float, // Reflectance for blue “specularity”: float, // Material specularity “roughness”: float // Material roughness}
-
honeybee.radiance.material.plastic2 module¶
Radiance Plastic2 Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Plastic2
-
class
honeybee.radiance.material.plastic2.
Plastic2
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Plastic2 Material.
Plastic2 is similar to plastic, but with anisotropic roughness. This means that highlights in the surface will appear elliptical rather than round. The orientation of the anisotropy is determined by the unnormalized direction vector ux uy uz. These three expressions (separated by white space) are evaluated in the context of the function file funcfile. If no function file is required (i.e., no special variables or functions are required), a period (`.’) may be given in its place. (See the discussion of Function Files in the Auxiliary Files section). The urough value defines the roughness along the u vector given projected onto the surface. The vrough value defines the roughness perpendicular to this vector. Note that the highlight will be narrower in the direction of the smaller roughness value. Roughness values of zero are not allowed for efficiency reasons since the behavior would be the same as regular plastic in that case.
mod plastic2 id 4+ ux uy uz funcfile transform 0 6 red green blue spec urough vrough
honeybee.radiance.material.prism1 module¶
Radiance Prism1 Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Prism1
-
class
honeybee.radiance.material.prism1.
Prism1
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Prism1 Material.
The prism1 material is for general light redirection from prismatic glazings, generating virtual light sources. It can only be used to modify a planar surface (i.e., a polygon or disk) and should not result in either light concentration or scattering. The new direction of the ray can be on either side of the material, and the definitions must have the correct bidirectional properties to work properly with virtual light sources. The arguments give the coefficient for the redirected light and its direction.
mod prism1 id 5+ coef dx dy dz funcfile transform 0 n A1 A2 .. AnThe new direction variables dx, dy and dz need not produce a normalized vector. For convenience, the variables DxA, DyA and DzA are defined as the normalized direction to the target light source.
honeybee.radiance.material.prism2 module¶
Radiance Prism2 Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Prism2
-
class
honeybee.radiance.material.prism2.
Prism2
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Prism2 Material.
The material prism2 is identical to prism1 except that it provides for two ray redirections rather than one.
mod prism2 id 9+ coef1 dx1 dy1 dz1 coef2 dx2 dy2 dz2 funcfile transform 0 n A1 A2 .. An
honeybee.radiance.material.spotlight module¶
Radiance Spotlight Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Spotlight
-
class
honeybee.radiance.material.spotlight.
Spotlight
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Spotlight Material.
Spotlight is used for self-luminous surfaces having directed output. As well as radiance, the full cone angle (in degrees) and orientation (output direction) vector are given. The length of the orientation vector is the distance of the effective focus behind the source center (i.e., the focal length).
mod spotlight id 0 0 7 red green blue angle xdir ydir zdir
honeybee.radiance.material.trans module¶
Radiance Trans Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Trans https://radiance-online.org//community/workshops/2010-freiburg/PDF/DavidMead.pdf
-
class
honeybee.radiance.material.trans.
Trans
(name, r_reflectance=0.0, g_reflectance=0.0, b_reflectance=0.0, specularity=0.0, roughness=0.0, transmitted_diff=0.0, transmitted_spec=0.0, modifier='void')[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance translucent material.
-
average_reflectance
¶ Calculate average reflectance of trans material.
-
b_reflectance
= None¶ Reflectance for blue. The value should be between 0 and 1 (Default – 0).
-
classmethod
by_single_reflect_value
(name, rgb_reflectance=0.0, specularity=0.0, roughness=0.0, transmitted_diff=0.0, transmitted_spec=0.0, modifier='void')[source]¶ Create trans material with single reflectance value.
-
name
¶ Material name as a string. Do not use white space and special character
-
rgb_reflectance
¶ Reflectance for red, green and blue. The value should be between 0 and 1 (Default: 0).
-
specularity
¶ Fraction of specularity. Specularity fractions greater than 0.1 are not realistic (Default: 0).
-
roughness
¶ Roughness is specified as the rms slope of surface facets. A value of 0 corresponds to a perfectly smooth surface, and a value of 1 would be a very rough surface. Roughness values greater than 0.2 are not very realistic. (Default: 0).
-
transmitted_diff
¶ The transmitted diffuse component is the fraction of transmitted light that is transmitted diffusely in as scattering fashion.
-
transmitted_spec
¶ The transmitted specular component is the fraction of transmitted light that is not diffusely scattered.
-
modifier
¶ Material modifier (Default: “void”).
- Usage:
- wallMaterial = trans.by_single_reflect_value(“generic wall”, .55) print(wallMaterial)
-
-
classmethod
from_json
(rec_json)[source]¶ Make radiance material from json {
“modifier”: {} or void, // Material modifier “type”: “trans”, // Material type “name”: “”, // Material Name “r_reflectance”: float, // Reflectance for red “g_reflectance”: float, // Reflectance for green “b_reflectance”: float, // Reflectance for blue “specularity”: float, // Material specularity “roughness”: float, // Material roughness “transmitted_diff”: float, “transmitted_spec”: float}
-
classmethod
from_reflected_spacularity
(name, r_reflectance=0.0, g_reflectance=0.0, b_reflectance=0.0, reflected_spacularity=0.0, roughness=0.0, transmitted_diff=0.0, transmitted_spec=0.0, modifier='void')[source]¶ Create trans material from reflected spacularityself.
See: https://radiance-online.org//community/workshops/2010-freiburg/PDF/DavidMead.pdf
-
name
Material name as a string. Do not use white space and special character.
-
r_reflectance
¶ Reflectance for red. The value should be between 0 and 1 (Default: 0).
-
g_reflectance
¶ Reflectance for green. The value should be between 0 and 1 (Default: 0).
-
b_reflectance
Reflectance for blue. The value should be between 0 and 1 (Default: 0).
-
reflected_spacularity
¶ Fraction of reflected spacular. The reflected specularity of common uncoated glass is around .06, Matte = min 0, Satin = suggested max 0.07 (Default: 0).
-
roughness
Roughness is specified as the rms slope of surface facets. A value of 0 corresponds to a perfectly smooth surface, and a value of 1 would be a very rough surface. Roughness values greater than 0.2 are not very realistic. (Default: 0).
-
transmitted_diff
The transmitted diffuse component is the fraction of transmitted light that is transmitted diffusely in as scattering fashion.
-
transmitted_spec
The transmitted specular component is the fraction of transmitted light that is not diffusely scattered.
-
modifier
Material modifier (Default: “void”).
-
-
classmethod
from_string
(material_string, modifier=None)[source]¶ Create a Radiance material from a string.
If the material has a modifier the modifier material should also be partof the string or should be provided using modifier argument.
-
g_reflectance
= None Reflectance for green. The value should be between 0 and 1 (Default – 0).
-
r_reflectance
= None Reflectance for red. The value should be between 0 and 1 (Default – 0).
-
roughness
= None Roughness is specified as the rms slope of surface facets. A value of 0 corresponds to a perfectly smooth surface, and a value of 1 would be a very rough surface. Roughness values greater than 0.2 are not very realistic. (Default: 0).
-
specular_sampling_threshold
¶ Specular sampling threshold (-st).
-
specularity
= None Fraction of specularity. Specularity fractions greater than 0.1 are not realistic (Default: 0).
-
to_json
()[source]¶ Translate radiance material to json {
“type”: “trans”, // Material type “name”: “”, // Material Name “r_reflectance”: float, // Reflectance for red “g_reflectance”: float, // Reflectance for green “b_reflectance”: float, // Reflectance for blue “specularity”: float, // Material specularity “roughness”: float, // Material roughness “transmitted_diff”: float, “transmitted_spec”: float}
-
transmitted_diff
= None
-
transmitted_spec
= None
-
honeybee.radiance.material.trans2 module¶
Radiance Trans2 Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Trans2
-
class
honeybee.radiance.material.trans2.
Trans2
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Trans2 Material.
Trans2 is the anisotropic version of trans. The string arguments are the same as for plastic2, and the real arguments are the same as for trans but with an additional roughness value.
mod trans2 id 4+ ux uy uz funcfile transform 0 8 red green blue spec urough vrough trans tspec
honeybee.radiance.material.transdata module¶
Radiance Transdata Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Transdata
-
class
honeybee.radiance.material.transdata.
Transdata
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Transdata Material.
Transdata is like plasdata but the specification includes transmittance as well as reflectance. The parameters are as follows.
mod transdata id 3+n+
func datafile funcfile x1 x2 .. xn transform0 6+ red green blue rspec trans tspec A7 ..
honeybee.radiance.material.transfunc module¶
Radiance Transfunc Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Transfunc
-
class
honeybee.radiance.material.transfunc.
Transfunc
(name, modifier=None, values=None, is_opaque=None)[source]¶ Bases:
honeybee.radiance.material.materialbase.RadianceMaterial
Radiance Transfunc Material.
Transfunc is similar to plasfunc but with an arbitrary bidirectional transmittance distribution as well as a reflectance distribution. Both reflectance and transmittance are specified with the same function.
mod transfunc id 2+ brtd funcfile transform 0 6+ red green blue rspec trans tspec A7 ..Where trans is the total light transmitted and tspec is the non-Lambertian fraction of transmitted light. The function brtd should integrate to 1 over each projected hemisphere.
Module contents¶
Radiance Materials.