Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

If you have a function describing the retroreflective behavior of your material, i.e., a BRDF, then you can use this function with bsdf2klems or bsdf2ttree to create an XML file that Radiance can use in its simulations. For example, here is a command to create a retroreflective material with a Gaussian lobe:

bsdf2ttree -t3 +for +back -e 'R:.75;S:.05' -e 'Gauss(u2):exp(-u2/(2SS))/(2PISS)' -e 'retro(ix,iy,iz,ox,oy,oz)=if(izoz,RGauss(1-(ixox+iyoy+izoz)^2),0)' retro > retro.xml

To vary the total reflection, change the R constant. To vary the width of the lobe, change the S constant, which is in radians. (Note that single-quotes must be replaced by double-quotes if you are running under Windows.) The Radiance BSDF material is then used to apply this during simulation.

I hope this is enough to get you started.

Best, -Greg

If you have a function describing the retroreflective behavior of your material, i.e., a BRDF, then you can use this function with bsdf2klems or bsdf2ttree to create an XML file that Radiance can use in its simulations. For example, here is a command to create a retroreflective material with a Gaussian lobe:

bsdf2ttree -t3 +for +back -e 'R:.75;S:.05' -e 'Gauss(u2):exp(-u2/(2SS))/(2PISS)' 'Gauss(u2):exp(-u2/(2*S*S))/(2*PI*S*S)' -e 'retro(ix,iy,iz,ox,oy,oz)=if(izoz,RGauss(1-(ixox+iyoy+izoz)^2),0)' 'retro(ix,iy,iz,ox,oy,oz)=if(iz*oz,R*Gauss(1-(ix*ox+iy*oy+iz*oz)^2),0)' retro > retro.xml

retro.xml

To vary the total reflection, change the R constant. To vary the width of the lobe, change the S constant, which is in radians. (Note that single-quotes must be replaced by double-quotes if you are running under Windows.) The Radiance BSDF material is then used to apply this during simulation.

I hope this is enough to get you started.

Best, -Greg