[Radiance-general] window glass modeling

Milan Cakanovic milan.cakanovic at hotmail.com
Tue Dec 28 09:17:48 PST 2010


Hi All,

Merry Christmas and Happy New Year!

I am a Master's thesis student and I am a beginner in Radiance. I would like to
thank Alex Jacobs for LEARNIX and tutorials, and Greg Ward for the effort he put
into Radiance. I apologize in advance if there is something wrong with my
English or if I wrote something stupid related to Radiance.
For the purposes of my work, I need to calculate illuminance level in one point
of working plane in a simple office (for clear sky and sunny day), for different
luminaires output levels, different slat angles of exterior venetian blinds, and
for different times of the day (i.e. for different solar angles). I am not
interested in for image rendering, just for the illuminance calculation. I am
stuck with window glass modeling. This is what I got from Optics5 for 2 layers
glazing system (1. clear glass 6mm ; AIR gap 12mm ; 2. clear glass 4mm):

void  glass       GlzSys1_glass
0
0
3     0.832     0.884     0.859

void  BRTDfunc    GlzSys1_front
10
      0.136     0.147     0.146
      0.764     0.811     0.789
      0 0 0
      .
0
9 0 0 0 0 0 0 0 0 0

void  BRTDfunc    GlzSys1_back
10
      0.139     0.148     0.148
      0.764     0.811     0.789
      0 0 0
      .
0
9 0 0 0 0 0 0 0 0 0

And this is what I got from Window6 for the same glazing system :

Angle      0    10    20    30    40    50    60    70    80    90 Hemis

Vtc  : 0.798 0.798 0.796 0.791 0.779 0.748 0.675 0.521 0.261 0.000 0.695
Rf   : 0.144 0.144 0.144 0.147 0.157 0.185 0.255 0.405 0.664 1.000 0.230
Rb   : 0.146 0.146 0.146 0.149 0.159 0.188 0.258 0.411 0.674 1.000 0.233

When I make a model of complex fenestration system with exterior venetian
blinds, I have two different cases :

Case 1. When sun rays don't pass directly between the venetian blind slats,
        just indirectly from slats (reflected from slats).

Question 1. Because sun rays don't pass directly trough window glass, I suppose
that all the light that reaches the window glass is diffuse (light is reflected
from ground, sky and slats). If this is so, which is the correct value for the
definition of window glass material? Is it perhaps Vtc (visible tansmittance)
value 0.695 for Hemis (hemispherical) multiplied by 1.09 to get the
transmissivity value, or maybe mean Vtc value for angles from 0 to 90
[(0.798+0.798)/2+(0.798+0.796)/2+...+(0.261+0.000)/2]/9=0.639 also multiplied
by 1.09 to get the transmissivity, or maybe some other value?

I have noticed the following :
The second row of the BRTDfunc has the values:	0.764     0.811     0.789.
If we multiply these values with 1.09, we get:	0.832     0.884     0.859,
which are the transmissivity values for glass. Also, if we put these values into
the expression:
   0.265*R + 0.670*G + 0.065*B, we get:
   0.265*0.832 + 0.670*0.884 + 0.065*0.859 = 0.868595. If we divide this value
with 1.09, we get value 0.797, which is the Vtc value at normal incidence (0).

Question 2. Let us assume that correct Vtc (transmittance) value is 0.695. Is
            this the right way to calculate RGB transmissivity for glass:
            0.832*(0.695/0.798)   0.884*(0.695/0.798)   0.859*(0.695/0.798),
which is equal to:
            0.725                 0.770                 0.748

Question 3. This may be a stupid question. Theoretically, if I should get the
            same results in the following two cases:
1. I create the distribution for the window with mkillum; window glass is
   defined with transmissivity values:
   0.725   0.770   0.748
I compile a new scene octree that includes the old one and adds the new illum
window (new .rad file) to it. Then, I calculate lux level on working plane with
rtrace.
2. I don't create window polygon (there's nothing, i.e. there is air). But
instead, I can scale RGB values for light solar with the glass transmissivity
values. For example:
Istead:
   void light solar
   0
   0
   3 2.72e+06 2.72e+06 2.72e+06, I put:
   void light solar
   0
   0
   3 2.72e+06*0.725 2.72e+06*0.770 2.72e+06*0.748, i.e.:
   void light solar
   0
   0
   3 1.972e+06 2.094e+06 2.035e+06
I compile a scene with changed .mat file, and then I calculate lux level on
working plane with rtrace. Of course, I will try to calculate this, but I'm
definitely interested in the opinion of experts.

Question 4. How can I scale the material of sky, if it is defined with:

   void brightfunc skyfunc
   2 skybr skybright.cal
   0
   7 1 3.76e+00 3.72e+00 2.98e-01 -0.489041 -0.851114 0.190903
   skyfunc glow skyglow
   0
   0
   4  .85 1.04 1.2  0

I guess that is not allowed to scale the RGB values .85 1.04 1.2, because of
the equation:   1 = 0.265*R + 0.670*G + 0.065*B.
Maybe I can scale the values from skyfunc: 3.76e+00 (zenith brightness) and
3.72e+00 (ground plane brightness)?

Case 2. When one part of the sun rays pass directly between the venetian blind
        slats, and the second part indirectly from slats.

This is perhaps the worst case for modeling. Let us assume that exterior
venetian blinds have 35 slats. If I want to make a proper model of window glass
polygon, I suppose that I need to replace one glass polygon with 69 glass
polygons. 34 are directly exposed to the sun and have some values for RGB
transmissivity (which depend from sun angle). Other 35 are in shade and have
some other values for RGB transmissivity (transmissivity for diffuse light). Of
course, I need to do some trigonometry calculations. This model of window glass
is valid only for one light source (solar source sun), but not for
skyglow source sky. This seems very complicated, and because of that would be
great if I could do what I asked in questions 3.2 and 4.

Queation 5. I just need a short comment of paragraph above.

Case 3. No venetian blinds - just window glass.

Let us assume that octree (scene) includes 3 light sources (sun, sky and
ground), and sun incidence angle is 70 degrees. If I make a model of window
glass with RGB transmissivity:
   0.725  0.770  0.748  (transmittance=0.695),
the model will be correct for sky and ground, but not for sun, because of
transmittance for angle of 70 degrees is 0.521. 
Thus, whatever value that I take for RGB transmissivity, I make a some mistake,
when I calculate illumination.

Question 6. Does this problem can be solved in one of two ways:

1. I scale values for sun, sky and ground, in the manner described in questions
   3.2 and 4.
2. I compile an octree that includes an office, only one source of light (sun),
and a model of window glass with transmissivity that corresponding to the sun
angle. For this octree, I calculate illumination (I1).
Then, I compile a new octree that includes a same office, two sources of light
(sky and ground), and a model of window glass with transmissivity that
corresponding to the sky and ground. For this octree, I calculate illumination
(I2).
In the end, I calculate I = I1 + I2, which actually represents the total
illumination.

I apologize for the long mail.

Thank in advance, Milan Cakanovic




More information about the Radiance-general mailing list