Hello everyone, I’m running into some problems that I think I have a solution pathway for, but that pathway rests on some assumptions. This post’s purpose is to confirm those assumptions prior to continuing down the solution pathway.
- Does the BSDF material handle indirect lighting generated from artificial sources, specifically the “light” primitive?
- I want to confirm that when LBNL WINDOW generates a BSDF xml file, it only computes the optical behavior of the glazing and does not incorporate the window frame in computation.
- Will LBNL WINDOW allow the generation of a physically impossible BSDF xml material?
- Will Radiance allow the use of a physically impossible BSDF material?
I am attempting to use Radiance to simulate a plant canopy’s extinction and reflection optical behavior in environments with primarily artificial lighting. Implementation of the extinction coefficient is straightforward enough using the ‘mist’ primitive, a primitive that takes an input for the optical extinction over a distance. Preliminary testing shows this implementation works as expected. However, implementation of canopy reflectance has proven a challenge, perhaps due to my approach coupled with my only 3 month history using Radiance.
My current approach for modeling canopy reflectance is to overlap the volume assigned the ‘mist’ primitive with a surface that has asymmetric reflectance and transmittance properties. This surface has somewhat unrealistic behavior in that it should allow perfect transmittance of a ray both directions. In addition, if the ray hits the surface from the outside of the canopy the surface should emit a ray of light as if specular reflection has occurred. The motivation for this approach is that the environment of interest is the space adjacent to the canopy, not the interior of the canopy itself. Here is a simple representation of the concept:
I’ve gone through a couple of implementations so far, with my most recent using BRTDfunc:
void BRTDfunc testing
10 refl_red refl_grn refl_blu trans_red trans_grn trans_blu 0 0 0 BRTDcanopy.cal
9 0 0 0 0 0 0 0 0 0
refl_red = if(Nz, 0.044, 0);
refl_grn = if(Nz, 0.067, 0);
refl_blu = if(Nz, 0.027, 0);
trans_red = if(Nz, 1, 1);
trans_grn = if(Nz, 1, 1);
trans_blu = if(Nz, 1, 1);
Testing of this implementation revealed some unexpected reflectance behavior, (specifically that light does not seem to perform more than one ambient bounce off the surface) which I suspect has to do BRTDfunc not handling indirect lighting. As such, I moved to try to implement this material with the BSDF function as follows.
I used LBNL WINDOW to attempt to generate a preliminary BSDF. First, I changed the Preferences - Optical Calcs settings:
- use the matrix method first specular systems
- write CSV output file
- write XML BSDF output
- generate full spectrally average matrixes for both the solar invisible bands
- set condensed spectral data
- Number of visible bands 5
- Number of IR bands 10
Then, I generated a new glass called “canopy1” that had the following properties:
- thickness = 3.048
- conductivity = 0.900 w/m-K
- Tsol = 1
- Tsol2 = 1
- Rsol1 = 0.06
- Rsol2 = 0
- Tvis = 1
- Tvis2 = 1
- Rvis1 = 0.06
- Rvis2 = 0
- Tir = 0.5
- Emis1 = 0.5
- Emis2 = 0.5
- Color = green (RGB: 0,128,0).
Then, I assigned this glass to a glazing system and hit Calc (F9). The resulting XML BSDF file has angularly dependent transmittance, an undesired property. My current solution pathway is to manually edit the BSDF XML file itself. However, this solution pathway rests on the assumption that Radiance will accept a physically impossible BSDF, and this and related uncertainties motivate my posting here.