--- ray/doc/ray.html 2023/12/12 20:25:22 1.37 +++ ray/doc/ray.html 2024/12/09 19:21:38 1.39 @@ -1,5 +1,5 @@ - + The RADIANCE 6.0 Synthetic Imaging System @@ -834,6 +834,62 @@ unless the line integrals consider enclosed geometry. <p> <dt> + <a NAME="WGMDfunc"> + <b>WGMDfunc</b> + </a> + +<dd> + WGMDfunc is a more programmable version of <a HREF="#Trans2">trans2</a>, + with separate modifier paths and variables to control each component. + (WGMD stands for Ward-Geisler-Moroder-Duer, which is the basis for + this empirical model, similar to previous ones beside Ashik2.) + The specification of this material is given below. +<pre> + mod WGMDfunc id + 13+ rs_mod rs rs_urough rs_vrough + ts_mod ts ts_urough ts_vrough + td_mod + ux uy uz funcfile transform + 0 + 9+ rfdif gfdif bfdif + rbdif gbdif bbdif + rtdif gtdif btdif + A10 .. +</pre> + +The sum of specular reflectance (<I>rs</I>), specular transmittance (<I>ts</I>), +diffuse reflectance (<I>rfdif gfdif bfdif</I> for front and <I>rbdif gbdif bbdif</I> for back) +and diffuse transmittance (<I>rtdif gtdif btdif</I>) should be less than 1 for each +channel. + +<p> + +Unique to this material, separate modifier channels are +provided for each component. +The main modifier is used on the diffuse reflectance, both +front and back. +The <I>rs_mod</I> modifier is used for specular reflectance. +If "void" is given for <I>rs_mod</I>, +then the specular reflection color will be white. +The special "inherit" keyword may also be given, in which case +specular reflectance will share the main modifier. +This behavior is replicated for the specular transmittance modifier +<I>ts_mod</I>, which also has its own independent roughness expressions. +Finally, the diffuse transmittance modifier is given as +<I>td_mod</I>, which may also be "void" or "inherit". +Note that any spectra or color for specular components must be +carried by the named modifier(s). + +<p> + +The main advantage to this material over +<a HREF="#BRTDfunc">BRTDfunc</a> and +other programmable types described below is that the specular sampling is +well-defined, so that all components are fully computed. + +<p> + +<dt> <a NAME="Dielectric"> <b>Dielectric</b> </a> @@ -1552,6 +1608,61 @@ or: This function is fed a wavelenth sample between nmA and nmB as its only argument, and it returns the corresponding spectral intensity. + +<dt> + <a NAME="Specdata"> + <b>Specdata</b> + </a> + +<dd> + Specdata is like brightdata and colordata, but with more + than 3 specular samples. + +<pre> + mod specdata id + 3+n+ + func datafile + funcfile x1 x2 .. xn transform + 0 + m A1 A2 .. Am +</pre> + +<p> + The data file must have one more dimension than the coordinate + variable count, as this final dimension corresponds to the covered + spectrum. + The starting and ending wavelengths are specified in "datafile" + as well as the number of spectral samples. + The function "func" will be called with two parameters, the + interpolated spectral value for the current coordinate and the + associated wavelength. + If the spectrum is broken into 12 components, then 12 calls + will be made to "func" for the relevant ray evaluation. + +<dt> + <a NAME="Specpict"> + <b>Specpict</b> + </a> + +<dd> + Specpict is a special case of specdata, where the pattern is + a hyperspectral image stored in the common-exponent file format. + The dimensions of the image data are determined by the picture + just as with the colorpict primitive. + +<pre> + mod specpict id + 5+ + func specfile + funcfile u v transform + 0 + m A1 A2 .. Am +</pre> + +<p> + The function "func" is called with the interpolated pixel value + and the wavelength sample in nanometers, the same as specdata, + with as many calls made as there are components in "specfile". </dl>