ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/doc/ray.1
(Generate patch)

Comparing ray/doc/ray.1 (file contents):
Revision 1.30 by greg, Sun Jul 10 23:41:37 2016 UTC vs.
Revision 1.49 by greg, Fri May 30 16:35:52 2025 UTC

# Line 1 | Line 1
1   .\" RCSid "$Id$"
2   .\" Print using the -ms macro package
3 < .DA 07/10/2016
3 > .DA 12/09/2024
4   .LP
5 < .tl """Copyright \(co 2016 Regents, University of California
5 > .tl """Copyright \(co 2024 Regents, University of California
6   .sp 2
7   .TL
8   The
# Line 422 | Line 422 | mod mirror id
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
# Line 630 | Line 649 | arguments have additional flexibility to specify the s
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
# Line 637 | Line 658 | mod ashik2 id
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
# Line 947 | Line 1026 | invisible from behind.
1026   Unlike other data-driven material types, the BSDF type is fully
1027   supported and all parts of the distribution are properly sampled.
1028   .LP
1029 + .UL aBSDF
1030 + .PP
1031 + The aBSDF material is identical to the BSDF type with two important
1032 + differences.
1033 + First, proxy geometry is not supported, so there is no thickness parameter.
1034 + Second, an aBSDF is assumed to have some specular through component
1035 + (the 'a' stands for "aperture"), which
1036 + is treated specially during the direct calculation and when viewing the
1037 + material.
1038 + Based on the BSDF data, the coefficient of specular transmission is
1039 + determined and used for modifying unscattered shadow and view rays.
1040 + .DS
1041 + mod aBSDF id
1042 + 5+ BSDFfile ux uy uz funcfile transform
1043 + 0
1044 + 0|3|6|9
1045 +     rfdif gfdif bfdif
1046 +     rbdif gbdif bbdif
1047 +     rtdif gtdif btdif
1048 + .DE
1049 + .LP
1050 + If a material has no specular transmitted component, it is much better
1051 + to use the BSDF type with a zero thickness than to use aBSDF.
1052 + .LP
1053   .UL Antimatter
1054   .PP
1055   Antimatter is a material that can "subtract" volumes from other volumes.
# Line 961 | Line 1064 | N mod1 mod2 .. modN
1064   The first modifier will also be used to shade the area leaving the
1065   antimatter volume and entering the regular volume.
1066   If mod1 is void, the antimatter volume is completely invisible.
1067 < Antimatter does not work properly with the material type "trans",
1068 < and multiple antimatter surfaces should be disjoint.
1067 > If shading is desired at antimatter surfaces, it is important
1068 > that the related volumes are closed with outward-facing normals.
1069 > Antimatter surfaces should not intersect with other antimatter boundaries,
1070 > and it is unwise to use the same modifier in nested antimatter volumes.
1071   The viewpoint must be outside all volumes concerned for a correct
1072   rendering.
1073   .NH 3
# Line 1166 | Line 1271 | A section of text meant to depict a picture, perhaps u
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
# Line 1567 | Line 1778 | the Ecole Polytechnique Federale de Lausanne (EPFL Uni
1778   in Lausanne, Switzerland.
1779   .NH 1
1780   References
1781 + .LP
1782 + Ward, Gregory J., Bruno Bueno, David Geisler-Moroder,
1783 + Lars O. Grobe, Jacob C. Jonsson, Eleanor
1784 + S. Lee, Taoning Wang, Helen Rose Wilson,
1785 + ``Daylight Simulation Workflows Incorporating
1786 + Measured Bidirectional Scattering Distribution Functions,''
1787 + .I "Energy & Buildings",
1788 + Vol. 259, No. 111890, 2022.
1789 + .LP
1790 + Wang, Taoning, Gregory Ward, Eleanor Lee,
1791 + ``Efficient modeling of optically-complex, non-coplanar
1792 + exterior shading: Validation of matrix algebraic methods,''
1793 + .I "Energy & Buildings",
1794 + vol. 174, pp. 464-83, Sept. 2018.
1795 + .LP
1796 + Lee, Eleanor S., David Geisler-Moroder, Gregory Ward,
1797 + ``Modeling the direct sun component in buildings using matrix
1798 + algebraic approaches: Methods and validation,''
1799 + .I Solar Energy,
1800 + vol. 160, 15 January 2018, pp 380-395.
1801   .LP
1802   Ward, G., M. Kurt & N. Bonneel,
1803   ``Reducing Anisotropic BSDF Measurement to Common Practice,''

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines