1207 |
|
0 |
1208 |
|
5+ nmA nmB s1 s2 .. sN |
1209 |
|
.DE |
1210 |
< |
The first two real arguments indicate the limits of the covered |
1210 |
> |
The first two real arguments indicate the extrema of the |
1211 |
|
spectral range in nanometers. |
1212 |
< |
Subsequent real values correspond to multipliers in each wavelength band, |
1213 |
< |
where the first band goes from nmA to nmA+(nmB-nmA)/N, and N is the |
1214 |
< |
number of bands (i.e., the number of real arguments minus 2). |
1212 |
> |
Subsequent real values correspond to multipliers at each wavelength. |
1213 |
|
The nmA wavelength may be greater or less than nmB, |
1214 |
|
but they may not be equal, and their ordering matches |
1215 |
|
the order of the spectral values. |
1249 |
|
pattern, similar to the colorfunc type. |
1250 |
|
.DS |
1251 |
|
mod specfunc id |
1252 |
< |
2+ sval funcfile transform |
1252 |
> |
2+ sfunc funcfile transform |
1253 |
|
0 |
1254 |
|
2+ nmA nmB A3 .. |
1255 |
|
.DE |
1256 |
|
Like the spectrum primitive, the wavelength range is specified |
1257 |
|
in the first two real arguments, and additional real values are |
1258 |
< |
accessible to the sval function. |
1258 |
> |
set in the evaluation context. |
1259 |
|
This function is fed a wavelenth sample |
1260 |
|
between nmA and nmB as its only argument, |
1261 |
|
and it returns the corresponding spectral intensity. |
1262 |
+ |
.LP |
1263 |
+ |
.UL Specdata |
1264 |
+ |
.PP |
1265 |
+ |
Specdata is like brightdata and colordata, but with more |
1266 |
+ |
than 3 specular samples. |
1267 |
+ |
.DS |
1268 |
+ |
mod specdata id |
1269 |
+ |
3+n+ |
1270 |
+ |
func datafile |
1271 |
+ |
funcfile x1 x2 .. xn transform |
1272 |
+ |
0 |
1273 |
+ |
m A1 A2 .. Am |
1274 |
+ |
.DE |
1275 |
+ |
The data file must have one more dimension than the coordinate |
1276 |
+ |
variable count, as this final dimension corresponds to the covered |
1277 |
+ |
spectrum. |
1278 |
+ |
The starting and ending wavelengths are specified in "datafile" |
1279 |
+ |
as well as the number of spectral samples. |
1280 |
+ |
The function "func" will be called with two parameters, the |
1281 |
+ |
interpolated spectral value for the current coordinate and the |
1282 |
+ |
associated wavelength. |
1283 |
+ |
If the spectrum is broken into 12 components, then 12 calls |
1284 |
+ |
will be made to "func" for the relevant ray evaluation. |
1285 |
+ |
.LP |
1286 |
+ |
.UL Specpict |
1287 |
+ |
.PP |
1288 |
+ |
Specpict is a special case of specdata, where the pattern is |
1289 |
+ |
a hyperspectral image stored in the common-exponent file format. |
1290 |
+ |
The dimensions of the image data are determined by the picture |
1291 |
+ |
just as with the colorpict primitive. |
1292 |
+ |
.DS |
1293 |
+ |
mod specpict id |
1294 |
+ |
5+ |
1295 |
+ |
func specfile |
1296 |
+ |
funcfile u v transform |
1297 |
+ |
0 |
1298 |
+ |
m A1 A2 .. Am |
1299 |
+ |
.DE |
1300 |
+ |
The function "func" is called with the interpolated pixel value |
1301 |
+ |
and the wavelength sample in nanometers, the same as specdata, |
1302 |
+ |
with as many calls made as there are components in "specfile". |
1303 |
|
.NH 3 |
1304 |
|
Mixtures |
1305 |
|
.PP |