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.41 by greg, Wed Nov 15 18:28:09 2023 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 11/13/2023
3 > .DA 12/09/2024
4   .LP
5 < .tl """Copyright \(co 2023 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 639 | 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 1207 | Line 1284 | mod spectrum id
1284   0
1285   5+ nmA nmB s1 s2 .. sN
1286   .DE
1287 < The first two real arguments indicate the limits of the covered
1287 > The first two real arguments indicate the extrema of the
1288   spectral range in nanometers.
1289 < Subsequent real values correspond to multipliers in each wavelength band,
1290 < where the first band goes from nmA to nmA+(nmB-nmA)/N, and N is the
1291 < number of bands (i.e., the number of real arguments minus 2).
1292 < The nmA wavelength may be greater or less than the nmB wavelength,
1216 < but they may not be equal, and their ordering must correspond to
1217 < the ordering of the spectral values.
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
# Line 1251 | Line 1326 | The specfunc primitive offers dynamic control over a s
1326   pattern, similar to the colorfunc type.
1327   .DS
1328   mod specfunc id
1329 < 2+ sval funcfile transform
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 < accessible to the sval function.
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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines