[Radiance-general] how to generate a customized cumulative sky based on an arbitrarily defined sky brightness formular?

Lars O. Grobe grobe at gmx.net
Tue Mar 15 12:12:17 PDT 2011


Hi Ji Zhang!

> L = f(altitude, azimuth)
>
> how to generate a sky file which describes the cumulative sky brightness
> distribution pattern based on this formular.

Did you take a look at skybright.cal? It should serve as a starting 
point. Your file should be far less complicated, though. Learning the 
cal-file-language in Radiance is done best by

1) studying examples (the lib/ directory is full of them)

2) studying rayinit.cal (it contains all the variables that are 
available to you as well as functions - e.g. the surface normal Nx Ny Nz 
that should useful

4) trying with simple examples, debugging / comparing results to what is 
expected

Later, if you modify (using brightfunc) a source of type glow (RGB 1 1 
1) calling the cal file, you can multiply the (1 1 1) by the variable 
selected in the brighfunc definition and (hopefully) defined in the 
cal-file.

Using gensky, everyone is already doing this. Looking at the output of 
calling "gensky 03 21 10CET +i -a 51 -o 7":

(...)
void brightfunc skyfunc
2 skybr skybright.cal
0
7 4 1.05e+01 3.82e+00 1.12e+00 0.807462 -0.462819 0.365792
(...)

This means that skyfunc is a modifier that, if applied to a glow 
material, will multiply each of the three channels (which is usually 
RGB) of the glow material with the value of variable skybr.

The value of skybr is found by evaluating the skybright.cal file (which 
is in your Radiance library directory):

(...)
skybr = wmean((Dz+1.01)^10,
                 select(A1, sunnysky, cloudysky, unifsky, intersky),
                 (Dz+1.01)^-10, A3);
(...)
A1 is the first parameter passed into the cal-file (the first parameter 
of the fourth line of the calling brightfunc definition, '4' in this 
example. The select command here checks the value, and, as it is '4' 
here, returns the 4th of the four skytype-variables - intersky. Compare 
to the gensky command line: gensky 03 21 10CET +i -a 51 -o 7 (+i means 
intermediate sky with sun).

A3 is 3.82e+00 according to my skyfunc definition (see above), and 
refers to the ground plane brightness.

Dz is defined in rayinit.cal: Dx, Dy, Dz is the ray direction vector at 
the time of evaluation - which means at the time the ray hits the 
geometry modified by the brightfunc, which is the sky dome here.

This is as an example how the typically used gensky tool makes use of 
cal-files. Again, yours should be less complicated. Just keep everything 
clean and in accordance with Radiance concepts and everything in SI 
units, and write comments :-)

Another idea, you mention cumulative skies - unless there are problems 
with interpolation, you may consider brighdat, which uses data files for 
input.

Cheers, Lars.



More information about the Radiance-general mailing list