query about accurately modelling glazing

Hello Radiance community,

I posted the following query on the Desktop discussion board, though as I don't really use Desktop
anymore I thought it may be more appropriate here;

I am using Ecotect to run Radiance simulations (apologies now for my Unixus ignoramus!), and
changing
photometric information of glazing using textpad in windows. Say for example, I
am modelling clear glazing that admits light monochromatically (I am
not concerned with colours, only illuminance values on a grid) at a transmittance of 80%
(transmissivity
0.871538), then the glazing description may look something like this (simple stuff);

# glazing with a transmittance of 80%
void glass window1
0
0
3 0.871538 0.871538 0.871538

I am going to parametrically change the transmittance at say 10% increments from 10% through to
100%, hence I will simply change the rgb transmittance to the appropriate values.

When I open up some of the files in the glazing library included with
Desktop Radiance, most of them seem to include the BRTDfunc, for
example, the lbnl clear glass (glass6.rad). The description looks
like this;

void glass clear6_glass
0
0
3 0.85852 0.97582 0.95237
      
void BRTDfunc clear6_front
10
      0.78802 0.89604 0.87443
      0.07011 0.0822 0.08231
      0 0 0
      .
0
9 0 0 0 0 0 0 0 0 0

void BRTDfunc clear6_back
10
      0.78802 0.89604 0.87443
      0.07011 0.0822 0.08231
      0 0 0
.
0
9 0 0 0 0 0 0 0 0 0

My question is this. To what extent will my simplified way of
describing the transmittance affect the accuracy of my results? I
don't completely understand the workings of the BRTDfunc (even after reading the manual page), and
think I
would have trouble measuring any variable of glazing other than
transmittance of the specimens I am sampling in the real world (Rendering with Radiance
talks briefly of measuring glazing transmittance,
but not things like reflectance. I have just seen a citation for a paper by Peter Apian-Bennewitz
(1994, Designing an Apparatus for mearuring Bidirectional..., Freiburg) who appears to be a
contributor on here that I am in the process of requesting from my library).

I presume also that transmittance + reflectance (+ absorptance) of
glazing can never exceed 1. In Desktop Radiance, the description of
Generic clear glass lbnl (clear3.rad) states a transmittance of
89.90% and a reflection of 82.0%. Is my understanding fundementally
wrong, or is this a typo?

Many thanks

Daniel

PhD researcher, Sheffield, United Kingdom.

Hi Daniel,

My question is this. To what extent will my simplified way of describing the transmittance affect the accuracy of my results?

Defining glass using the BRTDFunc method just lets you more accurately define the front and back reflectance of the glass. Defining glass with just the glass primitive uses a default front and back reflectance.

I don't completely understand the workings of the BRTDfunc (even after reading the manual page), and
think I would have trouble measuring any variable of glazing other than transmittance of the specimens I am sampling in the real world (Rendering with Radiance talks briefly of measuring glazing transmittance, but not things like reflectance.

I recommend looking at Optics 5 from LBNL.

http://windows.lbl.gov/materials/optics5/

It has a very extensive database of just about every type of glass and glass compositions available and allows you to build up various double pane combinations and save it all as a Radiance input file. Rather than measuring a sample in the real world and defining it in Radiance, you could probably find the glazing in this database and use Optics 5 to define it.

I presume also that transmittance + reflectance (+ absorptance) of glazing can never exceed 1. In Desktop Radiance, the description of Generic clear glass lbnl (clear3.rad) states a transmittance of 89.90% and a reflection of 82.0%. Is my understanding fundementally wrong, or is this a typo?

I've always been a little confused how desktop radiance defines glass. The front RGB reflectance is actually defined with this line under "clear3_front"

0.07428 0.08322 0.08556

and the back RGB reflectance is defined with this line under "clear3_back"

0.07567 0.08418 0.08538

So the reflectances are roughly 8% which does obey the rule.

I am not completely clear what the other RGB values are but my guess is that they modify the transmittivity defined under clear3_glass somehow. Whenever I've manually defined glass I've used this form (from "glazing.cal") instead, its just a little clearer to me.

mod BRTDfunc my_glazing
    10 rrho grho brho
        rtau gtau btau
        0 0 0
        glazing.cal
    0
    18 0 0 0
        0 0 0
        FRRHO FGRHO FBRHO
        BRRHO BGRHO BBRHO
        RTAU GTAU BTAU

    where:
        FRRHO FGRHO FBRHO is front normal spectral reflectance
        BRRHO BGRHO BBRHO is back normal spectral reflectance
        RTAU GTAU BTAU is normal spectral transmittance

Hope this helps!

Zack

···

--
Zack Rogers
Staff Engineer
Architectural Energy Corporation
2540 Frontier Avenue, Suite 201
Boulder, CO 80301 USA

tel (303)444-4149 ext.235
fax (303)444-4304

Hello,

secondly, what does this do to the transmittance? physically, the transmittance going one way should be the same as the transmittance going the other way. should the (rtrns, gtrns, btrns) variables then be the same for both front and back panes? or does it not matter, as long as the product of their transmittances is equal to that of the combination.

This is true for a symetric glass composition (ie. single pane no low-e, double pane, clear, no low-e) but not true for non-symetric glass which is often the case for glass with low-e and glass with one of the panes tinted. I believe the front and back transmittance is always really close, (ie. it can't be 10% in one direction and 90% in the other) but they can vary slightly. This is what desktop radiance and optics 5 definition method allows you to do.

finally, there are no functions built in. that means that there is no dependence on angle of incidence for either transmittance or reflectance. this is unrealistic, as transmittance generally reduces and reflectance generally increases with increasing angle of incidence.

I do think Desktop Radiance and Optics 5 both make use of the angular transmittance function. This is part of the glass primitive. And in my example, the BRTDFunc calls glazing.cal which provides the angular transmittance function. Also, from my comparisions a while ago now, the two methods gave me identical results. That is:

void glass clear3_glass
0
3 0.92189 0.98612 0.972
                       void BRTDfunc clear3_front
10 0.84636 0.90553 0.89251 0.07428 0.08322 0.08556 0 0 0
    . 0
9 0 0 0 0 0 0 0 0 0
   void BRTDfunc clear3_back 10
    0.84636 0.90553 0.89251
    0.07567 0.08418 0.08538
    0 0 0
    . 0
9 0 0 0 0 0 0 0 0 0

is equivalent to:

void BRTDfunc clear3_glass
    10 rrho grho brho
          rtau gtau btau
          0 0 0
          glazing.cal
    0
    18 0 0 0
          0 0 0
          0.07428 0.08322 0.08556
          0.07567 0.08418 0.08538
          0.84636 0.90553 0.89251

Also, you might want to check out glass1.cal and glass2.cal which is part of the newest HEAD radiance release. It just distinguishes between single pane and double pane which have different angular dependance functions. Also, check out glaze.csh in the latest release, I was just informed of this and have not checked it out personally, but I understand it helps create these definitions.

So, I think the BRTDFunc methods can provide greater accuracy than the glass primitive.

I hope I have not mistated any of this, anyone please correct me if so.

Regards,
Zack

A minor point. Unless they changed the laws of physics since I was in college, transmittance has to be the same for a surface seen from the front as seen from the back. This is called Helmholtz reciprocity, and is one of the basic tenets of reflection theory. Total (hemispherical) transmittance must be the same, and specular (directional) transmittance must be the same in every direction. It has to do with the time-reversibility of light, I think.

-Greg

···

From: Zack Rogers <[email protected]>
Date: January 15, 2004 8:35:40 AM PST

Hello,

secondly, what does this do to the transmittance? physically, the transmittance going one way should be the same as the transmittance going the other way. should the (rtrns, gtrns, btrns) variables then be the same for both front and back panes? or does it not matter, as long as the product of their transmittances is equal to that of the combination.

This is true for a symetric glass composition (ie. single pane no low-e, double pane, clear, no low-e) but not true for non-symetric glass which is often the case for glass with low-e and glass with one of the panes tinted. I believe the front and back transmittance is always really close, (ie. it can't be 10% in one direction and 90% in the other) but they can vary slightly. This is what desktop radiance and optics 5 definition method allows you to do.

Hi All,

Well here are some further things to confuse/clarify the possibilities.

The BRTDfunc is very powerful and has multiple uses. Several things that I actually find quite nice about it are:

    * values represent transmittance and reflectance, as one might
      determine from manufacturers data or from Optics 5 (a side note, I
      believe that Optics 5 is actually used to calculate the values
      that manufacturers then report for the measurements, this
      information is incorporated into tools like the Window 4 and 5
      software, some one from the LBL optics group could probably give a
      better summary of the capabilities).
    * allocation of values is clear, that is values are allocated to
      specular and diffuse components of the material definition (the
      problem here if you are trying to simulate a glazing material that
      has diffuse transmittance/reflectance performance is that
      manufacturers are only reporting total reflectance and
      transmittance and not diffuse and specular measures, so then you
      have to measure by hand. I think that Rob G. could give everyone a
      really superb summary on how to setup a measuring environment for
      glazing materials).
    * enables simulation of more complex glazing materials such as those
      that have higher or differing front/back side reflectances than
      accounted for in the typical "glass" material type ( I believe
      that the reflectance for the glass material type is around 7%).

Note that it is possible to use one BRTDfunc definition to define front and backside reflectances. Note also that transmittance as I understand it must be the same front and back (this is supported by the fact that there is only one transmittance that is supplied in manufacturers data and software such as Optics 5).

Here is a simple definition for a "simple" glazing material (I am pretty confident that I am going to get some corrective feedback on this ;->):

void BRTDfunc gl.test
10
    if(Rdot, .12, .11) if(Rdot, .12, .11) if(Rdot, .12, .11)
    0.70 0.70 0.70
    0 0 0
    .
0
9
    0 0 0 0 0 0 0 0 0

This would define a simple glazing material with a total front side reflectance of 12%, a total backside reflectance of 11% and a total transmittance of 70%. This material could be applied to a single surface and does not need separate front and backside polygons. However what this definition does not account for is the impact of the incident angle of the incoming ray on the resulting transmittance and reflectance. It is not clear to me what kind of error this might actually introduce, however, I believe that a definition such as this could easily take the place of the two (front and back) BRTDfunc definitions that get exported from Optics 5.

I believe that there is some trickiness with normals and BRTDfunc, so I hope that I am using Rdot to calculate orientation correctly?

Note that the section in the definition with the 10 arguments relates to the specular behavior of the material and the section with 9(+) arguments relates to the diffuse behavior of the material. Summing between these gives us total reflectance and transmittance. In this case the there is no diffuse behavior to the material.

Depending on the application is might be worth checking out glaze.csh in the latest release. This calculates models for both single and double surface glazing materials. I am not sure how it compares to glazing.cal in terms of the accuracy of the underlying model. Note however that glaze.csh is built around a handful (5 or 6) sets of reflectance and transmittance values as it "database". Some of these were actually measure by me and looking back on it, I would prefer to measure the "pvb" materials under a more precise protocol than I did originally (again Rob G. would be the real resource here). I would think that the tool could be extended to account for many things that can be exported from Optics 5. Perhaps the Optics 5 group might be interested in having Greg develop a more robust solution for what gets exported from Optics 5 to account for a more sophisticated model of angular dependance and other properties?

Well, all in all probably more confusion that clarity.

Best,

-Jack

Zack Rogers wrote:

···

Hello,

secondly, what does this do to the transmittance? physically, the transmittance going one way should be the same as the transmittance going the other way. should the (rtrns, gtrns, btrns) variables then be the same for both front and back panes? or does it not matter, as long as the product of their transmittances is equal to that of the combination.

This is true for a symetric glass composition (ie. single pane no low-e, double pane, clear, no low-e) but not true for non-symetric glass which is often the case for glass with low-e and glass with one of the panes tinted. I believe the front and back transmittance is always really close, (ie. it can't be 10% in one direction and 90% in the other) but they can vary slightly. This is what desktop radiance and optics 5 definition method allows you to do.

finally, there are no functions built in. that means that there is no dependence on angle of incidence for either transmittance or reflectance. this is unrealistic, as transmittance generally reduces and reflectance generally increases with increasing angle of incidence.

I do think Desktop Radiance and Optics 5 both make use of the angular transmittance function. This is part of the glass primitive. And in my example, the BRTDFunc calls glazing.cal which provides the angular transmittance function. Also, from my comparisions a while ago now, the two methods gave me identical results. That is:

void glass clear3_glass
0
3 0.92189 0.98612 0.972
                      void BRTDfunc clear3_front
10 0.84636 0.90553 0.89251 0.07428 0.08322 0.08556 0 0 0
   . 0
9 0 0 0 0 0 0 0 0 0
  void BRTDfunc clear3_back 10
   0.84636 0.90553 0.89251
   0.07567 0.08418 0.08538
   0 0 0
   . 0
9 0 0 0 0 0 0 0 0 0

is equivalent to:

void BRTDfunc clear3_glass
   10 rrho grho brho
         rtau gtau btau
         0 0 0
         glazing.cal
   0
   18 0 0 0
         0 0 0
         0.07428 0.08322 0.08556
         0.07567 0.08418 0.08538
         0.84636 0.90553 0.89251

Also, you might want to check out glass1.cal and glass2.cal which is part of the newest HEAD radiance release. It just distinguishes between single pane and double pane which have different angular dependance functions. Also, check out glaze.csh in the latest release, I was just informed of this and have not checked it out personally, but I understand it helps create these definitions.

So, I think the BRTDFunc methods can provide greater accuracy than the glass primitive.

I hope I have not mistated any of this, anyone please correct me if so.

Regards,
Zack

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

--
# John E. de Valpine
# president
#
# visarc incorporated
# http://www.visarc.com
#
# channeling technology for superior design and construction

Hey Greg,

You may be right, I've wrestled with this quite a few times. That was exactly my line of thinking until we got a composite translucent ceiling material measured with an integrating sphere and it resulted in a significantly different transmittance from the front the the back. I think for a single surface this is exactly true (ie. a low-e film or a single pane of glass) but for a composition I think it can vary slightly. Like a one-way mirror? And using the example of a pane of glass with a low-e coating. It seems like light striking that low-e surface from air's index of refraction could behave differently than light striking the surface from the glass's index of refraction. Atleast thats how I justify it to myself...."do I lie to myself to be happy?" But it also doesn't have to break the conservation of light laws, I don't think. As an example, say of the light striking the low-e side of the composition, 70% transmits, 20% reflects, and 10% absorbs. Then of the light striking the glass side of the composition say 75% transmits, 15% reflects, and 10% absorbs. In both situations 100% of light is accounted for. I am completely unsure on this issue. Can anyone help explain?

Thanks for correcting and/or questioning my response Greg.
Zack

···

--
Zack Rogers
Staff Engineer
Architectural Energy Corporation
2540 Frontier Avenue, Suite 201
Boulder, CO 80301 USA

tel (303)444-4149 ext.235
fax (303)444-4304

Well this answers my question about one-way mirrors.

http://www.physlink.com/Education/AskExperts/ae293.cfm

Searching the internet I haven't been able to track down good information on this Helmholtz reciprocity theorem. My physics books don't discuss it either. Anyone have a good source for this?

···

--
Zack Rogers
Staff Engineer
Architectural Energy Corporation
2540 Frontier Avenue, Suite 201
Boulder, CO 80301 USA

tel (303)444-4149 ext.235
fax (303)444-4304

Zack Rogers wrote:

Well this answers my question about one-way mirrors.

http://www.physlink.com/Education/AskExperts/ae293.cfm

Searching the internet I haven't been able to track down good
information on this Helmholtz reciprocity theorem. My physics books
don't discuss it either. Anyone have a good source for this?

Ah, the wonderful world of entropy... :wink:

Maybe Google has something on "perpetuum mobile"?

-schorsch

···

--
Georg Mischler -- simulations developer -- schorsch at schorsch com
+schorsch.com+ -- lighting design tools -- http://www.schorsch.com/

Hi All,

Thanks everyone for this interesting thread. Since there is a fair bit of discussion on precise measurement of transmission and reflection properties, this might be a good opportunity to check about Radiance handling of glazing with the greater wisdom out there.

Ok so as my limited understanding has it:

refractive index: in Radiance this is only used for tracing 'view rays' - (so that we see a view refracted through the glazing) but that the light is transmitted through and cast into the space is unaffected. When tracing a ray back towards a direct source, such as the sun - if it were refracted it would be deflected and might miss a small target source.

(hmmm, might create some surreal situations - suppose we are standing in a space and could just see a refracted sun through the edge of the window but the line on the floor indicates we are standing in shadow.)
Probably the most common example where refraction of direct sources might be visually important would be glass bricks.

I think refractive index also does not apply when tracing rays as part of the indirect calculation - even though missing a large area source (sky) is not likely to be a problem.

Reflectance - in atria there are likely to be complex and multiple glazing surfaces - eg the roof and then in large areas along the offices lining the edge. The intricate reflections may be visible in the scene, but specular reflections from the glazing (or anything else) will not contribute to illuminance levels in the atrium - unless specified as secondary sources (ie generate 'virtual' sources). This is not going to handle anything other than smooth flat surfaces (eg not water).

(Daniel - this may have relevance for your work) it does not include the contribution of indirect sources eg bright overcast skies are not going to be specularly reflected around the atrium. The Radiance indirect calculation essentially deals with diffuse-diffuse pathways only.

Ok so does that mean specs and functions for reflectance changing with angle of incidence are going to effect the appearance of the scene visible in the glazing, the light transmitted, but not the light reflected?

And what about direct sunlight and diffusing glass? Is the light transmitted - or does the random scattering cause the same problem as refraction about missing the target when tracing the ray backwards?

Anyway synthetic images of what we see in these types of scenes - with all those glossy hard surfaces and intricate multiple reflection of sky sources etc. - may be substantially different to what the walls, floor etc 'see'.

well hope this is right - i await heavy editing/ comments.
cheers
alex

···

*******************************************************
A. J. Summerfield [email protected]
Faculty of Architecture, University of Sydney

Outside of a dog, a book is man's best friend.
Inside a dog, it's too dark to read. Groucho Marx
*******************************************************

On 15 Jan 2004, at 7:08 pm, Jack de Valpine wrote:

Hi All,

Well here are some further things to confuse/clarify the possibilities.

The BRTDfunc is very powerful and has multiple uses. Several things that I actually find quite nice about it are:

  • values represent transmittance and reflectance, as one might determine from manufacturers data or from Optics 5 (a side note, I believe that Optics 5 is actually used to calculate the values that manufacturers then report for the measurements, this information is incorporated into tools like the Window 4 and 5 software, some one from the LBL optics group could probably give a better summary of the capabilities).
  • allocation of values is clear, that is values are allocated to specular and diffuse components of the material definition (the problem here if you are trying to simulate a glazing material that has diffuse transmittance/reflectance performance is that manufacturers are only reporting total reflectance and transmittance and not diffuse and specular measures, so then you have to measure by hand. I think that Rob G. could give everyone a really superb summary on how to setup a measuring environment for glazing materials).
  • enables simulation of more complex glazing materials such as those that have higher or differing front/back side reflectances than accounted for in the typical "glass" material type ( I believe that the reflectance for the glass material type is around 7%).
Note that it is possible to use one BRTDfunc definition to define front and backside reflectances. Note also that transmittance as I understand it must be the same front and back (this is supported by the fact that there is only one transmittance that is supplied in manufacturers data and software such as Optics 5).

Here is a simple definition for a "simple" glazing material (I am pretty confident that I am going to get some corrective feedback on this ;->):

void BRTDfunc gl.test
10
if(Rdot, .12, .11) if(Rdot, .12, .11) if(Rdot, .12, .11)
0.70 0.70 0.70
0 0 0
.
0
9
0 0 0 0 0 0 0 0 0

This would define a simple glazing material with a total front side reflectance of 12%, a total backside reflectance of 11% and a total transmittance of 70%. This material could be applied to a single surface and does not need separate front and backside polygons. However what this definition does not account for is the impact of the incident angle of the incoming ray on the resulting transmittance and reflectance. It is not clear to me what kind of error this might actually introduce, however, I believe that a definition such as this could easily take the place of the two (front and back) BRTDfunc definitions that get exported from Optics 5.

I believe that there is some trickiness with normals and BRTDfunc, so I hope that I am using Rdot to calculate orientation correctly?

Note that the section in the definition with the 10 arguments relates to the specular behavior of the material and the section with 9(+) arguments relates to the diffuse behavior of the material. Summing between these gives us total reflectance and transmittance. In this case the there is no diffuse behavior to the material.

Depending on the application is might be worth checking out glaze.csh in the latest release. This calculates models for both single and double surface glazing materials. I am not sure how it compares to glazing.cal in terms of the accuracy of the underlying model. Note however that glaze.csh is built around a handful (5 or 6) sets of reflectance and transmittance values as it "database". Some of these were actually measure by me and looking back on it, I would prefer to measure the "pvb" materials under a more precise protocol than I did originally (again Rob G. would be the real resource here). I would think that the tool could be extended to account for many things that can be exported from Optics 5. Perhaps the Optics 5 group might be interested in having Greg develop a more robust solution for what gets exported from Optics 5 to account for a more sophisticated model of angular dependance and other properties?

Well, all in all probably more confusion that clarity.

Best,

-Jack

Zack Rogers wrote:

Hello,

secondly, what does this do to the transmittance? physically, the transmittance going one way should be the same as the transmittance going the other way. should the (rtrns, gtrns, btrns) variables then be the same for both front and back panes? or does it not matter, as long as the product of their transmittances is equal to that of the combination.

This is true for a symetric glass composition (ie. single pane no low-e, double pane, clear, no low-e) but not true for non-symetric glass which is often the case for glass with low-e and glass with one of the panes tinted. I believe the front and back transmittance is always really close, (ie. it can't be 10% in one direction and 90% in the other) but they can vary slightly. This is what desktop radiance and optics 5 definition method allows you to do.

finally, there are no functions built in. that means that there is no dependence on angle of incidence for either transmittance or reflectance. this is unrealistic, as transmittance generally reduces and reflectance generally increases with increasing angle of incidence.

I do think Desktop Radiance and Optics 5 both make use of the angular transmittance function. This is part of the glass primitive. And in my example, the BRTDFunc calls glazing.cal which provides the angular transmittance function. Also, from my comparisions a while ago now, the two methods gave me identical results. That is:

void glass clear3_glass
0
3 0.92189 0.98612 0.972
void BRTDfunc clear3_front
10 0.84636 0.90553 0.89251 0.07428 0.08322 0.08556 0 0 0
. 0
9 0 0 0 0 0 0 0 0 0
void BRTDfunc clear3_back 10
0.84636 0.90553 0.89251
0.07567 0.08418 0.08538
0 0 0
. 0
9 0 0 0 0 0 0 0 0 0

is equivalent to:

void BRTDfunc clear3_glass
10 rrho grho brho
rtau gtau btau
0 0 0
glazing.cal
0
18 0 0 0
0 0 0
0.07428 0.08322 0.08556
0.07567 0.08418 0.08538
0.84636 0.90553 0.89251

Also, you might want to check out glass1.cal and glass2.cal which is part of the newest HEAD radiance release. It just distinguishes between single pane and double pane which have different angular dependance functions. Also, check out glaze.csh in the latest release, I was just informed of this and have not checked it out personally, but I understand it helps create these definitions.

So, I think the BRTDFunc methods can provide greater accuracy than the glass primitive.

I hope I have not mistated any of this, anyone please correct me if so.

Regards,
Zack

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

--
# John E. de Valpine
# president
#
# visarc incorporated
# http://www.visarc.com
#
# channeling technology for superior design and construction

Hi Alex,

From: alex Summerfield <[email protected]>
Date: January 16, 2004 4:49:37 AM PST

Hi All,

Thanks everyone for this interesting thread. Since there is a fair bit of discussion on precise measurement of transmission and reflection properties, this might be a good opportunity to check about Radiance handling of glazing with the greater wisdom out there.

Ok so as my limited understanding has it:

refractive index: in Radiance this is only used for tracing 'view rays' - (so that we see a view refracted through the glazing) but that the light is transmitted through and cast into the space is unaffected. When tracing a ray back towards a direct source, such as the sun - if it were refracted it would be deflected and might miss a small target source.

(hmmm, might create some surreal situations - suppose we are standing in a space and could just see a refracted sun through the edge of the window but the line on the floor indicates we are standing in shadow.)
Probably the most common example where refraction of direct sources might be visually important would be glass bricks.

Actually, refraction is never ignored in Radiance, even when tracing to light sources. The sources will be missed or not depending on how big they are and how much refraction goes on. If a pane of glass is modeled using dielectric, so that rays are refracted going through it, they get bent back straight so they still head in the same direction, albeit shifted, slightly. Spheres and lenses are a different matter of course, and caustics are not modeled correctly for that reason. You need to use the photon map for that!

I think refractive index also does not apply when tracing rays as part of the indirect calculation - even though missing a large area source (sky) is not likely to be a problem.

I don't know where you heard this, but it's not true.

Reflectance - in atria there are likely to be complex and multiple glazing surfaces - eg the roof and then in large areas along the offices lining the edge. The intricate reflections may be visible in the scene, but specular reflections from the glazing (or anything else) will not contribute to illuminance levels in the atrium - unless specified as secondary sources (ie generate 'virtual' sources). This is not going to handle anything other than smooth flat surfaces (eg not water).

That's partially true. Interreflections of the sky and other parts of the ambient calculation will consider the multiple reflections going on, specular as well as diffuse. However, you would have to use virtual sources to get the pure specular reflections from light sources, which can be expensive. You're better off doing that only when it really matters -- like when you have a mirrored building facade or something.

(Daniel - this may have relevance for your work) it does not include the contribution of indirect sources eg bright overcast skies are not going to be specularly reflected around the atrium. The Radiance indirect calculation essentially deals with diffuse-diffuse pathways only.

Again, these are accounted for correctly.

Ok so does that mean specs and functions for reflectance changing with angle of incidence are going to effect the appearance of the scene visible in the glazing, the light transmitted, but not the light reflected?

They affect both.

And what about direct sunlight and diffusing glass? Is the light transmitted - or does the random scattering cause the same problem as refraction about missing the target when tracing the ray backwards?

The diffuse or rough specular part of transmission (and reflection) gets included in the indirect (ambient) calculation. If modeled using the directional diffuse part of one of the *func or *data material types, this gets lumped into the Lambertian component, which admittedly is a very crude approximation. Perhaps this is what you are thinking of above -- however, it doesn't apply to the Gaussian materials (plastic, metal, trans, plastic2, metal2, trans2). These all work properly, which is why you should use them whenever possible. Problems remain when you get strong caustics from a low roughness surface, however.

···

Anyway synthetic images of what we see in these types of scenes - with all those glossy hard surfaces and intricate multiple reflection of sky sources etc. - may be substantially different to what the walls, floor etc 'see'.

well hope this is right - i await heavy editing/ comments.
cheers
alex

*******************************************************
A. J. Summerfield [email protected]
Faculty of Architecture, University of Sydney

Outside of a dog, a book is man's best friend.
Inside a dog, it's too dark to read. Groucho Marx
*******************************************************

On 15 Jan 2004, at 7:08 pm, Jack de Valpine wrote:

Hi All,

Well here are some further things to confuse/clarify the possibilities.

The BRTDfunc is very powerful and has multiple uses. Several things that I actually find quite nice about it are:

  � values represent transmittance and reflectance, as one might determine from manufacturers data or from Optics 5 (a side note, I believe that Optics 5 is actually used to calculate the values that manufacturers then report for the measurements, this information is incorporated into tools like the Window 4 and 5 software, some one from the LBL optics group could probably give a better summary of the capabilities).
  � allocation of values is clear, that is values are allocated to specular and diffuse components of the material definition (the problem here if you are trying to simulate a glazing material that has diffuse transmittance/reflectance performance is that manufacturers are only reporting total reflectance and transmittance and not diffuse and specular measures, so then you have to measure by hand. I think that Rob G. could give everyone a really superb summary on how to setup a measuring environment for glazing materials).
  � enables simulation of more complex glazing materials such as those that have higher or differing front/back side reflectances than accounted for in the typical "glass" material type ( I believe that the reflectance for the glass material type is around 7%).
Note that it is possible to use one BRTDfunc definition to define front and backside reflectances. Note also that transmittance as I understand it must be the same front and back (this is supported by the fact that there is only one transmittance that is supplied in manufacturers data and software such as Optics 5).

Here is a simple definition for a "simple" glazing material (I am pretty confident that I am going to get some corrective feedback on this ;->):

void BRTDfunc gl.test
10
��� if(Rdot, .12, .11)��� if(Rdot, .12, .11)��� ��� if(Rdot, .12, .11)
��� 0.70��� ��� ��� ��� ��� ��� 0.70��� ��� ��� ��� ��� ��� 0.70
��� 0��� ��� ��� ��� ��� ��� ��� �0��� ��� ��� ��� ��� ��� ��� �0
��� .
0
9
��� 0��� 0��� 0��� 0��� 0��� 0��� 0��� 0��� 0

This would define a simple glazing material with a total front side reflectance of 12%, a total backside reflectance of 11% and a total transmittance of 70%. This material could be applied to a single surface and does not need separate front and backside polygons. However what this definition does not account for is the impact of the incident angle of the incoming ray on the resulting transmittance and reflectance. It is not clear to me what kind of error this might actually introduce, however, I believe that a definition such as this could easily take the place of the two (front and back) BRTDfunc definitions that get exported from Optics 5.

I believe that there is some trickiness with normals and BRTDfunc, so I hope that I am using Rdot to calculate orientation correctly?

Note that the section in the definition with the 10 arguments relates to the specular behavior of the material and the section with 9(+) arguments relates to the diffuse behavior of the material. Summing between these gives us total reflectance and transmittance. In this case the there is no diffuse behavior to the material.

Depending on the application is might be worth checking out glaze.csh in the latest release. This calculates models for both single and double surface glazing materials. I am not sure how it compares to glazing.cal in terms of the accuracy of the underlying model. Note however that glaze.csh is built around a handful (5 or 6) sets of reflectance and transmittance values as it "database". Some of these were actually measure by me and looking back on it, I would prefer to measure the "pvb" materials under a more precise protocol than I did originally (again Rob G. would be the real resource here). I would think that the tool could be extended to account for many things that can be exported from Optics 5. Perhaps the Optics 5 group might be interested in having Greg develop a more robust solution for what gets exported from Optics 5 to account for a more sophisticated model of angular dependance and other properties?

Well, all in all probably more confusion that clarity.

Best,

-Jack

Zack Rogers wrote:

Hello,

secondly, what does this do to the transmittance?� physically, the transmittance going one way should be the same as the transmittance going the other way.� should the (rtrns, gtrns, btrns) variables then be the same for both front and back panes?� or does it not matter, as long as the product of their transmittances is equal to that of the combination.

This is true for a symetric glass composition (ie. single pane no low-e, double pane, clear, no low-e) but not true for non-symetric glass which is often the case for glass with low-e and glass with one of the panes tinted.� I believe the front and back transmittance is always really close, (ie. it can't be 10% in one direction and 90% in the other) but they can vary slightly.� This is what desktop radiance and optics 5 definition method allows you to do.

finally, there are no functions built in.� that means that there is no dependence on angle of incidence for either transmittance or reflectance.� this is unrealistic, as transmittance generally reduces and reflectance generally increases with increasing angle of incidence.

I do think Desktop Radiance and Optics 5 both make use of the angular transmittance function.� This is part of the glass primitive.� And in my example, the BRTDFunc calls glazing.cal which provides the angular transmittance function.� Also, from my comparisions a while ago now, the two methods gave me identical results.� That is:

void glass����� clear3_glass
0
3��� 0.92189��� 0.98612��� 0.972
��������������������� void BRTDfunc��� clear3_front
10�� �� 0.84636��� 0.90553��� 0.89251�� �� 0.07428��� 0.08322��� 0.08556�� �� 0 0 0
�� .�� 0
9 0 0 0 0 0 0 0 0 0
� void BRTDfunc��� clear3_back�� 10
�� 0.84636��� 0.90553��� 0.89251
�� 0.07567��� 0.08418��� 0.08538
�� 0 0 0
�� .�� 0
9 0 0 0 0 0 0 0 0 0

is equivalent to:

void BRTDfunc clear3_glass
�� 10��� rrho��� grho��� brho
�������� rtau��� gtau��� btau
�������� 0��� 0��� 0
�������� glazing.cal
�� 0
�� 18��� 0��� 0��� 0
�������� 0��� 0��� 0
�������� 0.07428��� 0.08322��� 0.08556
�������� 0.07567��� 0.08418��� 0.08538
�������� 0.84636��� 0.90553��� 0.89251

Also, you might want to check out glass1.cal and glass2.cal which is part of the newest HEAD radiance release.� It just distinguishes between single pane and double pane which have different angular dependance functions.� Also, check out glaze.csh in the latest release, I was just informed of this and have not checked it out personally, but I understand it helps create these definitions.

So, I think the BRTDFunc methods can provide greater accuracy than the glass primitive.

I hope I have not mistated any of this, anyone please correct me if so.

Regards,
Zack

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

--
# John E. de Valpine
# president
#
# visarc incorporated
# http://www.visarc.com
#
# channeling technology for superior design and construction

Hi Greg
Many thanks for the feedback -

Actually, refraction is never ignored in Radiance, even when tracing to light sources. The sources will be missed or not depending on how big they are and how much refraction goes on. If a pane of glass is modeled using dielectric, so that rays are refracted going through it, they get bent back straight so they still head in the same direction, albeit shifted, slightly.

Ok that's interesting - it means that refraction through parallel surfaces will never fail for direct sunlight - since they will be heading in the right direction to hit the sun source. Great.

Seems that for non-parallel situations refraction treatment in the direct calc in Radiance is different to other raytracers in that when the ray misses a direct source there is a null result - whereas i think the usual treatment is to ignore refraction. I'm thinking of sunlight only through a cylindrical glass of water - both packages will show the scene through the glass refracted - but in std raytracer the sunlight passes through and is cast onto the table simply changed by the transmittance of the media.

Radiance will presumably record transmission in places (small deflection) and in other parts not so. (Not a criticism, Greg - just good to be aware in some situations, such as a wavey-glass brick wall, may transmit less of the sunlight than anticipated by the material spec).

Spheres and lenses are a different matter of course, and caustics are not modeled correctly for that reason. You need to use the photon map for that!

Indeed - mind you perhaps the caustics produced will ultimately split out just into the three primaries.
  I'm thinking of a virtual Newton conducting his classic prism experiment :wink:

I think refractive index also does not apply when tracing rays as part of the indirect calculation - even though missing a large area source (sky) is not likely to be a problem.

I don't know where you heard this, but it's not true.

I guess i got it from the (wrong) idea that refraction only works for view rays.

Reflectance - in atria there are likely to be complex and multiple glazing surfaces - eg the roof and then in large areas along the offices lining the edge....

That's partially true. Interreflections of the sky and other parts of the ambient calculation will consider the multiple reflections going on, specular as well as diffuse. However, you would have to use virtual sources to get the pure specular reflections from light sources, which can be expensive. You're better off doing that only when it really matters -- like when you have a mirrored building facade or something.

Specular contributions are probably neglected more often than they should, especially when we are dealing with direct sunlight on polished floors or glazing around entrances or in atria. It may not be important overall - but in specific areas it can be highly significant.

The upside is that the source is just the sun and these specular surfaces often lie in the same plane so that a single expanse of 'mirror' will do the job for many windows. By comparison with the ambient calculation the creation of one or two extra virtual suns to cover these pathways in the direct calculation need not be costly.

(Daniel - this may have relevance for your work) it does not include the contribution of indirect sources eg bright overcast skies are not going to be specularly reflected around the atrium. The Radiance indirect calculation essentially deals with diffuse-diffuse pathways only.

Again, these are accounted for correctly.

OK Great! One subsequent question to clarify:
Consider if we have no direct sources and a view ray that hits a diffuse floor - we have hemisphere sampling and ambient bounce 1 - if any of these rays is incident on a specular surface then the ray is traced back with specular reflection and then, for instance finds the sky.

  So would this pathway (where sky illuminates floor via glazing) require a setting of -ab 3 as a minimum as would be expected from a purely diffuse pathway (1 ambient bounce - 2 specular reflection - 3 indirect sky source)?

  If the operator decides to switch to modelling the atrium aperture as an illum (switching the indirect sky to a the direct source) - then this pathway is no longer included - again unless the surface is identified explicitly as a mirror (modified by the reflection function used on the glazing).

This is useful to be aware of because the notion of changing a source requiring a change to the model specs is not necessarily obvious - and it may account for some of the differences in results between using an illum or relying on the ambient calculation.

Ok so does that mean specs and functions for reflectance changing with angle of incidence are going to effect the appearance of the scene visible in the glazing, the light transmitted, but not the light reflected?

They affect both.

And what about direct sunlight and diffusing glass? Is the light transmitted - or does the random scattering cause the same problem as refraction about missing the target when tracing the ray backwards?

The diffuse or rough specular part of transmission (and reflection) gets included in the indirect (ambient) calculation. If modeled using the directional diffuse part of one of the *func or *data material types, this gets lumped into the Lambertian component, which admittedly is a very crude approximation. Perhaps this is what you are thinking of above -- however, it doesn't apply to the Gaussian materials (plastic, metal, trans, plastic2, metal2, trans2). These all work properly, which is why you should use them whenever possible. Problems remain when you get strong caustics from a low roughness surface, however.

Still not sure about this - a ray in the direct calc is traced back toward the sun - but is incident on some diffusing glass and is scattered randomly and presumably misses its target. (?)

I agree about using the Gaussian materials as far as possible especially given the role of indirect lighting in daylighting - i'm not entirely convinced given the Lambertian diffuse approximation and nevertheless good results in most cases - if going to the trouble of measuring and specifying BRTD materials often really make that much difference.

The number of times i've seen lighting studies blown away because some such thing as people deciding to keep their blinds drawn so they can see their computer screens clearly :slight_smile:

Many thanks again Greg - very useful to clarify things.
cheers
alex

···

*******************************************************
A. J. Summerfield [email protected]
Faculty of Architecture, University of Sydney

Outside of a dog, a book is man's best friend.
Inside a dog, it's too dark to read. Groucho Marx
*******************************************************

Hi Alex,

From: alex Summerfield <[email protected]>
Date: January 18, 2004 4:51:33 AM PST

Hi Greg
Many thanks for the feedback -

Actually, refraction is never ignored in Radiance, even when tracing to light sources. The sources will be missed or not depending on how big they are and how much refraction goes on. If a pane of glass is modeled using dielectric, so that rays are refracted going through it, they get bent back straight so they still head in the same direction, albeit shifted, slightly.

Ok that's interesting - it means that refraction through parallel surfaces will never fail for direct sunlight - since they will be heading in the right direction to hit the sun source. Great.

Seems that for non-parallel situations refraction treatment in the direct calc in Radiance is different to other raytracers in that when the ray misses a direct source there is a null result - whereas i think the usual treatment is to ignore refraction. I'm thinking of sunlight only through a cylindrical glass of water - both packages will show the scene through the glass refracted - but in std raytracer the sunlight passes through and is cast onto the table simply changed by the transmittance of the media.

Radiance will presumably record transmission in places (small deflection) and in other parts not so. (Not a criticism, Greg - just good to be aware in some situations, such as a wavey-glass brick wall, may transmit less of the sunlight than anticipated by the material spec).

You're absolutely right -- it is good to be aware of these things. I never liked the approximation of "no refraction" in other ray-tracers. What I have is also wrong, and perhaps less well-balanced from an energy standpoint in the case of direct illumination through curved dielectrics, but at least it doesn't look quite so bizarre as light streaming unperturbed through a glass of water. I was making the assumption that such objects were generally not as important for lighting in most architectural contexts. This of course is not true if you have some kind of light redirecting system involving prisms and the like, which is why there are special materials for these sorts of surfaces.

Spheres and lenses are a different matter of course, and caustics are not modeled correctly for that reason. You need to use the photon map for that!

Indeed - mind you perhaps the caustics produced will ultimately split out just into the three primaries.
I'm thinking of a virtual Newton conducting his classic prism experiment :wink:

I think refractive index also does not apply when tracing rays as part of the indirect calculation - even though missing a large area source (sky) is not likely to be a problem.

I don't know where you heard this, but it's not true.

I guess i got it from the (wrong) idea that refraction only works for view rays.

Reflectance - in atria there are likely to be complex and multiple glazing surfaces - eg the roof and then in large areas along the offices lining the edge....

That's partially true. Interreflections of the sky and other parts of the ambient calculation will consider the multiple reflections going on, specular as well as diffuse. However, you would have to use virtual sources to get the pure specular reflections from light sources, which can be expensive. You're better off doing that only when it really matters -- like when you have a mirrored building facade or something.

Specular contributions are probably neglected more often than they should, especially when we are dealing with direct sunlight on polished floors or glazing around entrances or in atria. It may not be important overall - but in specific areas it can be highly significant.

The upside is that the source is just the sun and these specular surfaces often lie in the same plane so that a single expanse of 'mirror' will do the job for many windows. By comparison with the ambient calculation the creation of one or two extra virtual suns to cover these pathways in the direct calculation need not be costly.

That's an excellent point. I was thinking more in terms of your atrium example -- I'd hate to think what adding a mirror for every glazed surface in an atrium would give you, though your trick of reducing coplanar glazings to single surfaces might help there, too. There are quite a few optimizations in the virtual source calculation to prevent potential but impossible interreflections from creating a plethora of virtual lights, but these are no guarantee in all situations.

(Daniel - this may have relevance for your work) it does not include the contribution of indirect sources eg bright overcast skies are not going to be specularly reflected around the atrium. The Radiance indirect calculation essentially deals with diffuse-diffuse pathways only.

Again, these are accounted for correctly.

OK Great! One subsequent question to clarify:
Consider if we have no direct sources and a view ray that hits a diffuse floor - we have hemisphere sampling and ambient bounce 1 - if any of these rays is incident on a specular surface then the ray is traced back with specular reflection and then, for instance finds the sky.

So would this pathway (where sky illuminates floor via glazing) require a setting of -ab 3 as a minimum as would be expected from a purely diffuse pathway (1 ambient bounce - 2 specular reflection - 3 indirect sky source)?

No, it's just a 1-bounce calculation for the -ab parameter. Remember -ab only counts diffuse scattering, and these rays are traced fully, wherever they go, including from the diffuse floor to a specular surface to the sky.

If the operator decides to switch to modelling the atrium aperture as an illum (switching the indirect sky to a the direct source) - then this pathway is no longer included - again unless the surface is identified explicitly as a mirror (modified by the reflection function used on the glazing).

This is true. I actually had to double-check the "source" code to be sure of this. Any ambient ray striking (directly or indirectly) a light or illum is discounted in the calculation to avoid over-counting of source contributions. Before the advent of virtual sources, I actually used to include ambient rays that then took specular paths, but had to remove it again for this reason.

This is useful to be aware of because the notion of changing a source requiring a change to the model specs is not necessarily obvious - and it may account for some of the differences in results between using an illum or relying on the ambient calculation.

No argument. This difference could be as little as a few percent to something quite a bit larger near grazing angles.

Ok so does that mean specs and functions for reflectance changing with angle of incidence are going to effect the appearance of the scene visible in the glazing, the light transmitted, but not the light reflected?

They affect both.

And what about direct sunlight and diffusing glass? Is the light transmitted - or does the random scattering cause the same problem as refraction about missing the target when tracing the ray backwards?

The diffuse or rough specular part of transmission (and reflection) gets included in the indirect (ambient) calculation. If modeled using the directional diffuse part of one of the *func or *data material types, this gets lumped into the Lambertian component, which admittedly is a very crude approximation. Perhaps this is what you are thinking of above -- however, it doesn't apply to the Gaussian materials (plastic, metal, trans, plastic2, metal2, trans2). These all work properly, which is why you should use them whenever possible. Problems remain when you get strong caustics from a low roughness surface, however.

Still not sure about this - a ray in the direct calc is traced back toward the sun - but is incident on some diffusing glass and is scattered randomly and presumably misses its target. (?)

It's all rather complicated, isn't it? The pure specular (transmitted) component of trans, trans2, and glass types is sent straight through to light sources. Surface normal perturbations are ignored for shadow rays in this case. The Lambertian and directional-diffuse portions are accounted for in the ambient calculation, if you have one. Otherwise, these contributions (indirect from light sources) are lost.

I agree about using the Gaussian materials as far as possible especially given the role of indirect lighting in daylighting - i'm not entirely convinced given the Lambertian diffuse approximation and nevertheless good results in most cases - if going to the trouble of measuring and specifying BRTD materials often really make that much difference.

The number of times i've seen lighting studies blown away because some such thing as people deciding to keep their blinds drawn so they can see their computer screens clearly :slight_smile:

Many thanks again Greg - very useful to clarify things.
cheers
alex

I guess most people don't really think carefully about these issues -- but it's a good idea to know what's going on in the calculation. When I'm uncertain, I go back to the source code, and this is one of the benefits of an open source simulation. The book is also quite useful on many of these points, and I'm happy to report that we should have a printing service online for that, shortly, thanks to Charles Ehrlich's continuing efforts.