| 1 |
|
.\" RCSid "$Id$" |
| 2 |
|
.\" Print using the -ms macro package |
| 3 |
< |
.DA 8/31/2020 |
| 3 |
> |
.DA 07/22/2025 |
| 4 |
|
.LP |
| 5 |
< |
.tl """Copyright \(co 2020 Regents, University of California |
| 5 |
> |
.tl """Copyright \(co 2025 Regents, University of California |
| 6 |
|
.sp 2 |
| 7 |
|
.TL |
| 8 |
|
The |
| 422 |
|
0 |
| 423 |
|
3 red green blue |
| 424 |
|
.DE |
| 425 |
+ |
While alternate materials that are reflective will appear as normal, |
| 426 |
+ |
indirect rays will use the mirror's reflectance rather than the |
| 427 |
+ |
alternate type. |
| 428 |
+ |
Transmitting materials are an exception, where both transmission and |
| 429 |
+ |
reflection will use the alternate type for all rays not specifically |
| 430 |
+ |
targeting virtual light sources. |
| 431 |
+ |
In this case, it is important that any reflections be purely specular |
| 432 |
+ |
(mirror-like) and equal to the mirror's reflectivity |
| 433 |
+ |
to maintain a valid result. |
| 434 |
+ |
A pure diffuse reflection may be added if desired. |
| 435 |
+ |
.PP |
| 436 |
+ |
The mirror material type reflects light sources only from the front side |
| 437 |
+ |
of a surface, regardless of any alternate material. |
| 438 |
+ |
If virtual source generation is desired on both sides, two coincident |
| 439 |
+ |
surfaces with opposite normal orientations may be employed to achieve |
| 440 |
+ |
this effect. |
| 441 |
+ |
The reflectance and alternate material type may be |
| 442 |
+ |
different for the overlapped surfaces, |
| 443 |
+ |
and the two sides will behave accordingly. |
| 444 |
|
.LP |
| 445 |
|
.UL Prism1 |
| 446 |
|
.PP |
| 649 |
|
Also, rather than roughness, specular power is used, which has no |
| 650 |
|
physical meaning other than larger numbers are equivalent to a smoother |
| 651 |
|
surface. |
| 652 |
+ |
Unlike other material types, total reflectance is the sum of |
| 653 |
+ |
diffuse and specular colors, and should be adjusted accordingly. |
| 654 |
|
.DS |
| 655 |
|
mod ashik2 id |
| 656 |
|
4+ ux uy uz funcfile transform |
| 658 |
|
8 dred dgrn dblu sred sgrn sblu u-power v-power |
| 659 |
|
.DE |
| 660 |
|
.LP |
| 661 |
+ |
.UL WGMDfunc |
| 662 |
+ |
.PP |
| 663 |
+ |
WGMDfunc is a more programmable version of trans2, |
| 664 |
+ |
with separate modifier paths and variables to control each component. |
| 665 |
+ |
(WGMD stands for Ward-Geisler-Moroder-Duer, which is the basis for |
| 666 |
+ |
this empirical model, similar to the previous ones beside Ashik2.)\0 |
| 667 |
+ |
The specification of this material is given below. |
| 668 |
+ |
.DS |
| 669 |
+ |
mod WGMDfunc id |
| 670 |
+ |
13+ rs_mod rs rs_urough rs_vrough |
| 671 |
+ |
ts_mod ts ts_urough ts_vrough |
| 672 |
+ |
td_mod |
| 673 |
+ |
ux uy uz funcfile transform |
| 674 |
+ |
0 |
| 675 |
+ |
9+ rfdif gfdif bfdif |
| 676 |
+ |
rbdif gbdif bbdif |
| 677 |
+ |
rtdif gtdif btdif |
| 678 |
+ |
A10 .. |
| 679 |
+ |
.DE |
| 680 |
+ |
The sum of specular reflectance ( |
| 681 |
+ |
.I rs |
| 682 |
+ |
), specular transmittance ( |
| 683 |
+ |
.I ts |
| 684 |
+ |
), diffuse reflectance ( |
| 685 |
+ |
.I "rfdif gfdif bfdif" |
| 686 |
+ |
for front and |
| 687 |
+ |
.I "rbdif gbdif bbdif" |
| 688 |
+ |
for back) |
| 689 |
+ |
and diffuse transmittance ( |
| 690 |
+ |
.I "rtdif gtdif btdif" |
| 691 |
+ |
) should be less than 1 for each |
| 692 |
+ |
channel. |
| 693 |
+ |
.PP |
| 694 |
+ |
Unique to this material, separate modifier channels are |
| 695 |
+ |
provided for each component. |
| 696 |
+ |
The main modifier is used on the diffuse reflectance, both |
| 697 |
+ |
front and back. |
| 698 |
+ |
The |
| 699 |
+ |
.I rs_mod |
| 700 |
+ |
modifier is used for specular reflectance. |
| 701 |
+ |
If "void" is given for |
| 702 |
+ |
.I rs_mod, |
| 703 |
+ |
then the specular reflection color will be white. |
| 704 |
+ |
The special "inherit" keyword may also be given, in which case |
| 705 |
+ |
specular reflectance will share the main modifier. |
| 706 |
+ |
This behavior is replicated for the specular transmittance modifier |
| 707 |
+ |
.I ts_mod, |
| 708 |
+ |
which has its own independent roughness expressions. |
| 709 |
+ |
Finally, the diffuse transmittance modifier is given as |
| 710 |
+ |
.I td_mod, |
| 711 |
+ |
which may also be "void" or "inherit". |
| 712 |
+ |
Note that any spectra or color for specular components must be |
| 713 |
+ |
carried by the named modifier(s). |
| 714 |
+ |
.PP |
| 715 |
+ |
The main advantage to this material over BRTDfunc and |
| 716 |
+ |
other programmable types described below is that the specular sampling is |
| 717 |
+ |
well-defined, so that all components are fully computed. |
| 718 |
+ |
.LP |
| 719 |
|
.UL Dielectric |
| 720 |
|
.PP |
| 721 |
|
A dielectric material is transparent, and it refracts light |
| 1104 |
|
.I zdfname. |
| 1105 |
|
.DS |
| 1106 |
|
mod texdata id |
| 1107 |
< |
8+ xfunc yfunc zfunc xdfname ydfname zdfname vfname x0 x1 .. xf |
| 1107 |
> |
8+ xfunc yfunc zfunc xdfname ydfname zdfname funcfile x0 x1 .. xf |
| 1108 |
|
0 |
| 1109 |
|
n A1 A2 .. An |
| 1110 |
|
.DE |
| 1271 |
|
font such as hexbit4x1.fnt, calls for uniform spacing. |
| 1272 |
|
Reasonable magnitudes for proportional spacing are |
| 1273 |
|
between 0.1 (for tightly spaced characters) and 0.3 (for wide spacing). |
| 1274 |
+ |
.LP |
| 1275 |
+ |
.UL Spectrum |
| 1276 |
+ |
.PP |
| 1277 |
+ |
The spectrum primitive is the most basic type for introducing spectral |
| 1278 |
+ |
color to a material. |
| 1279 |
+ |
Since materials only provide RGB parameters, spectral patterns |
| 1280 |
+ |
are the only way to superimpose wavelength-dependent behavior. |
| 1281 |
+ |
.DS |
| 1282 |
+ |
mod spectrum id |
| 1283 |
+ |
0 |
| 1284 |
+ |
0 |
| 1285 |
+ |
5+ nmA nmB s1 s2 .. sN |
| 1286 |
+ |
.DE |
| 1287 |
+ |
The first two real arguments indicate the extrema of the |
| 1288 |
+ |
spectral range in nanometers. |
| 1289 |
+ |
Subsequent real values correspond to multipliers at each wavelength. |
| 1290 |
+ |
The nmA wavelength may be greater or less than nmB, |
| 1291 |
+ |
but they may not be equal, and their ordering matches |
| 1292 |
+ |
the order of the spectral values. |
| 1293 |
+ |
A minimum of 3 values must be given, which would act |
| 1294 |
+ |
more or less the same as a constant RGB multiplier. |
| 1295 |
+ |
As with RGB values, spectral quantities normally range between 0 |
| 1296 |
+ |
and 1 at each wavelength, or average to 1.0 against a standard |
| 1297 |
+ |
sensitivity functions such as V(lambda). |
| 1298 |
+ |
The best results obtain when the spectral range and number |
| 1299 |
+ |
of samples match rendering options, though resampling will handle |
| 1300 |
+ |
any differences, zero-filling wavelenths outside the nmA to nmB |
| 1301 |
+ |
range. |
| 1302 |
+ |
A warning will be issued if the given wavelength range does not |
| 1303 |
+ |
adequately cover the visible spectrum. |
| 1304 |
+ |
.LP |
| 1305 |
+ |
.UL Specfile |
| 1306 |
+ |
.PP |
| 1307 |
+ |
The specfile primitive is equivalent to the spectrum type, but |
| 1308 |
+ |
the wavelength range and values are contained in a 1-dimensional |
| 1309 |
+ |
data file. |
| 1310 |
+ |
This may be a more convenient way to specify a spectral color, |
| 1311 |
+ |
especially one corresponding to a standard illuminant such as D65 |
| 1312 |
+ |
or a library of measured spectra. |
| 1313 |
+ |
.DS |
| 1314 |
+ |
mod specfile id |
| 1315 |
+ |
1 datafile |
| 1316 |
+ |
0 |
| 1317 |
+ |
0 |
| 1318 |
+ |
.DE |
| 1319 |
+ |
As with the spectrum type, rendering wavelengths outside the defined |
| 1320 |
+ |
range will be zero-filled. |
| 1321 |
+ |
Unlike the spectrum type, the file may contain non-uniform samples. |
| 1322 |
+ |
.LP |
| 1323 |
+ |
.UL Specfunc |
| 1324 |
+ |
.PP |
| 1325 |
+ |
The specfunc primitive offers dynamic control over a spectral |
| 1326 |
+ |
pattern, similar to the colorfunc type. |
| 1327 |
+ |
.DS |
| 1328 |
+ |
mod specfunc id |
| 1329 |
+ |
2+ sfunc funcfile transform |
| 1330 |
+ |
0 |
| 1331 |
+ |
2+ nmA nmB A3 .. |
| 1332 |
+ |
.DE |
| 1333 |
+ |
Like the spectrum primitive, the wavelength range is specified |
| 1334 |
+ |
in the first two real arguments, and additional real values are |
| 1335 |
+ |
set in the evaluation context. |
| 1336 |
+ |
This function is fed a wavelenth sample |
| 1337 |
+ |
between nmA and nmB as its only argument, |
| 1338 |
+ |
and it returns the corresponding spectral intensity. |
| 1339 |
+ |
.LP |
| 1340 |
+ |
.UL Specdata |
| 1341 |
+ |
.PP |
| 1342 |
+ |
Specdata is like brightdata and colordata, but with more |
| 1343 |
+ |
than 3 specular samples. |
| 1344 |
+ |
.DS |
| 1345 |
+ |
mod specdata id |
| 1346 |
+ |
3+n+ |
| 1347 |
+ |
func datafile |
| 1348 |
+ |
funcfile x1 x2 .. xn transform |
| 1349 |
+ |
0 |
| 1350 |
+ |
m A1 A2 .. Am |
| 1351 |
+ |
.DE |
| 1352 |
+ |
The data file must have one more dimension than the coordinate |
| 1353 |
+ |
variable count, as this final dimension corresponds to the covered |
| 1354 |
+ |
spectrum. |
| 1355 |
+ |
The starting and ending wavelengths are specified in "datafile" |
| 1356 |
+ |
as well as the number of spectral samples. |
| 1357 |
+ |
The function "func" will be called with two parameters, the |
| 1358 |
+ |
interpolated spectral value for the current coordinate and the |
| 1359 |
+ |
associated wavelength. |
| 1360 |
+ |
If the spectrum is broken into 12 components, then 12 calls |
| 1361 |
+ |
will be made to "func" for the relevant ray evaluation. |
| 1362 |
+ |
.LP |
| 1363 |
+ |
.UL Specpict |
| 1364 |
+ |
.PP |
| 1365 |
+ |
Specpict is a special case of specdata, where the pattern is |
| 1366 |
+ |
a hyperspectral image stored in the common-exponent file format. |
| 1367 |
+ |
The dimensions of the image data are determined by the picture |
| 1368 |
+ |
just as with the colorpict primitive. |
| 1369 |
+ |
.DS |
| 1370 |
+ |
mod specpict id |
| 1371 |
+ |
5+ |
| 1372 |
+ |
func specfile |
| 1373 |
+ |
funcfile u v transform |
| 1374 |
+ |
0 |
| 1375 |
+ |
m A1 A2 .. Am |
| 1376 |
+ |
.DE |
| 1377 |
+ |
The function "func" is called with the interpolated pixel value |
| 1378 |
+ |
and the wavelength sample in nanometers, the same as specdata, |
| 1379 |
+ |
with as many calls made as there are components in "specfile". |
| 1380 |
|
.NH 3 |
| 1381 |
|
Mixtures |
| 1382 |
|
.PP |
| 1593 |
|
sign ('#') and continuing to the end of line. |
| 1594 |
|
All numbers are decimal integers: |
| 1595 |
|
.DS |
| 1596 |
< |
code n |
| 1412 |
< |
x0 y0 |
| 1596 |
> |
code N |
| 1597 |
|
x1 y1 |
| 1598 |
+ |
x2 y2 |
| 1599 |
|
... |
| 1600 |
|
xn yn |
| 1601 |
|
... |
| 1714 |
|
License |
| 1715 |
|
.PP |
| 1716 |
|
.DS |
| 1717 |
< |
The Radiance Software License, Version 1.0 |
| 1717 |
> |
The Radiance Software License, Version 2.0 |
| 1718 |
|
|
| 1719 |
< |
Copyright (c) 1990 - 2008 The Regents of the University of California, |
| 1720 |
< |
through Lawrence Berkeley National Laboratory. All rights reserved. |
| 1719 |
> |
Radiance v6.0 Copyright (c) 1990 to 2025, The Regents of the University of |
| 1720 |
> |
California, through Lawrence Berkeley National Laboratory (subject to receipt |
| 1721 |
> |
of any required approvals from the U.S. Dept. of Energy). All rights reserved. |
| 1722 |
|
|
| 1723 |
|
Redistribution and use in source and binary forms, with or without |
| 1724 |
< |
modification, are permitted provided that the following conditions |
| 1539 |
< |
are met: |
| 1724 |
> |
modification, are permitted provided that the following conditions are met: |
| 1725 |
|
|
| 1726 |
< |
1. Redistributions of source code must retain the above copyright |
| 1727 |
< |
notice, this list of conditions and the following disclaimer. |
| 1726 |
> |
(1) Redistributions of source code must retain the above copyright notice, |
| 1727 |
> |
this list of conditions and the following disclaimer. |
| 1728 |
|
|
| 1729 |
< |
2. Redistributions in binary form must reproduce the above copyright |
| 1730 |
< |
notice, this list of conditions and the following disclaimer in |
| 1731 |
< |
the documentation and/or other materials provided with the |
| 1547 |
< |
distribution. |
| 1729 |
> |
(2) Redistributions in binary form must reproduce the above copyright |
| 1730 |
> |
notice, this list of conditions and the following disclaimer in the |
| 1731 |
> |
documentation and/or other materials provided with the distribution. |
| 1732 |
|
|
| 1733 |
< |
3. The end-user documentation included with the redistribution, |
| 1734 |
< |
if any, must include the following acknowledgment: |
| 1735 |
< |
"This product includes Radiance software |
| 1736 |
< |
(http://radsite.lbl.gov/) |
| 1553 |
< |
developed by the Lawrence Berkeley National Laboratory |
| 1554 |
< |
(http://www.lbl.gov/)." |
| 1555 |
< |
Alternately, this acknowledgment may appear in the software itself, |
| 1556 |
< |
if and wherever such third-party acknowledgments normally appear. |
| 1733 |
> |
(3) Neither the name of the University of California, Lawrence Berkeley |
| 1734 |
> |
National Laboratory, U.S. Dept. of Energy nor the names of its contributors |
| 1735 |
> |
may be used to endorse or promote products derived from this software |
| 1736 |
> |
without specific prior written permission. |
| 1737 |
|
|
| 1738 |
< |
4. The names "Radiance," "Lawrence Berkeley National Laboratory" |
| 1739 |
< |
and "The Regents of the University of California" must |
| 1740 |
< |
not be used to endorse or promote products derived from this |
| 1741 |
< |
software without prior written permission. For written |
| 1742 |
< |
permission, please contact [email protected]. |
| 1738 |
> |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| 1739 |
> |
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| 1740 |
> |
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| 1741 |
> |
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
| 1742 |
> |
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| 1743 |
> |
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| 1744 |
> |
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| 1745 |
> |
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| 1746 |
> |
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| 1747 |
> |
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 1748 |
> |
POSSIBILITY OF SUCH DAMAGE. |
| 1749 |
|
|
| 1750 |
< |
5. Products derived from this software may not be called "Radiance", |
| 1751 |
< |
nor may "Radiance" appear in their name, without prior written |
| 1752 |
< |
permission of Lawrence Berkeley National Laboratory. |
| 1753 |
< |
|
| 1754 |
< |
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
| 1755 |
< |
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
| 1756 |
< |
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| 1757 |
< |
DISCLAIMED. IN NO EVENT SHALL Lawrence Berkeley National Laboratory OR |
| 1758 |
< |
ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| 1759 |
< |
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 1574 |
< |
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
| 1575 |
< |
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| 1576 |
< |
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| 1577 |
< |
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
| 1578 |
< |
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| 1579 |
< |
SUCH DAMAGE. |
| 1750 |
> |
You are under no obligation whatsoever to provide any bug fixes, patches, |
| 1751 |
> |
or upgrades to the features, functionality or performance of the source |
| 1752 |
> |
code ("Enhancements") to anyone; however, if you choose to make your |
| 1753 |
> |
Enhancements available either publicly, or directly to Lawrence Berkeley |
| 1754 |
> |
National Laboratory, without imposing a separate written license agreement |
| 1755 |
> |
for such Enhancements, then you hereby grant the following license: a |
| 1756 |
> |
non-exclusive, royalty-free perpetual license to install, use, modify, |
| 1757 |
> |
prepare derivative works, incorporate into other computer software, |
| 1758 |
> |
distribute, and sublicense such enhancements or derivative works thereof, |
| 1759 |
> |
in binary and source code form. |
| 1760 |
|
.DE |
| 1761 |
|
.NH 1 |
| 1762 |
|
Acknowledgements |
| 1773 |
|
in Lausanne, Switzerland. |
| 1774 |
|
.NH 1 |
| 1775 |
|
References |
| 1776 |
+ |
.LP |
| 1777 |
+ |
Ward, Gregory J., Bruno Bueno, David Geisler-Moroder, |
| 1778 |
+ |
Lars O. Grobe, Jacob C. Jonsson, Eleanor |
| 1779 |
+ |
S. Lee, Taoning Wang, Helen Rose Wilson, |
| 1780 |
+ |
``Daylight Simulation Workflows Incorporating |
| 1781 |
+ |
Measured Bidirectional Scattering Distribution Functions,'' |
| 1782 |
+ |
.I "Energy & Buildings", |
| 1783 |
+ |
Vol. 259, No. 111890, 2022. |
| 1784 |
|
.LP |
| 1785 |
|
Wang, Taoning, Gregory Ward, Eleanor Lee, |
| 1786 |
|
``Efficient modeling of optically-complex, non-coplanar |