--- ray/doc/ray.1 2023/11/15 18:28:09 1.41 +++ ray/doc/ray.1 2023/12/12 20:25:22 1.45 @@ -1,4 +1,4 @@ -.\" RCSid "$Id: ray.1,v 1.41 2023/11/15 18:28:09 greg Exp $" +.\" RCSid "$Id: ray.1,v 1.45 2023/12/12 20:25:22 greg Exp $" .\" Print using the -ms macro package .DA 11/13/2023 .LP @@ -1207,14 +1207,12 @@ mod spectrum id 0 5+ nmA nmB s1 s2 .. sN .DE -The first two real arguments indicate the limits of the covered +The first two real arguments indicate the extrema of the spectral range in nanometers. -Subsequent real values correspond to multipliers in each wavelength band, -where the first band goes from nmA to nmA+(nmB-nmA)/N, and N is the -number of bands (i.e., the number of real arguments minus 2). -The nmA wavelength may be greater or less than the nmB wavelength, -but they may not be equal, and their ordering must correspond to -the ordering of the spectral values. +Subsequent real values correspond to multipliers at each wavelength. +The nmA wavelength may be greater or less than nmB, +but they may not be equal, and their ordering matches +the order of the spectral values. A minimum of 3 values must be given, which would act more or less the same as a constant RGB multiplier. As with RGB values, spectral quantities normally range between 0 @@ -1251,13 +1249,13 @@ The specfunc primitive offers dynamic control over a s pattern, similar to the colorfunc type. .DS mod specfunc id -2+ sval funcfile transform +2+ sfunc funcfile transform 0 2+ nmA nmB A3 .. .DE Like the spectrum primitive, the wavelength range is specified in the first two real arguments, and additional real values are -accessible to the sval function. +set in the evaluation context. This function is fed a wavelenth sample between nmA and nmB as its only argument, and it returns the corresponding spectral intensity.