--- ray/doc/ray.html 2018/06/26 14:42:18 1.26 +++ ray/doc/ray.html 2024/12/09 19:21:38 1.39 @@ -1,8 +1,8 @@ - + -The RADIANCE 5.2 Synthetic Imaging System +The RADIANCE 6.0 Synthetic Imaging System @@ -10,7 +10,7 @@ The RADIANCE 5.2 Synthetic Imaging System

-The RADIANCE 5.2 Synthetic Imaging System +The RADIANCE 6.0 Synthetic Imaging System

@@ -83,7 +83,7 @@ The diagram in Figure 1 shows the flow between program (ovals). The central program is rpict, which produces a picture from a scene description. -Rview is a variation of rpict that computes and displays images +Rvu is a variation of rpict that computes and displays images interactively, and rtrace computes single ray values. Other programs (not shown) connect many of these elements together, such as the executive programs @@ -822,6 +822,8 @@ unless the line integrals consider enclosed geometry. Also, rather than roughness, specular power is used, which has no physical meaning other than larger numbers are equivalent to a smoother surface. + Unlike other material types, total reflectance is the sum of + diffuse and specular colors, and should be adjusted accordingly.

 	mod ashik2 id
 	4+ ux uy uz funcfile transform
@@ -832,6 +834,62 @@ unless the line integrals consider enclosed geometry.
 

+ + WGMDfunc + + +
+ WGMDfunc is a more programmable version of trans2, + 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. +
+	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 ..
+
+ +The sum of specular reflectance (rs), specular transmittance (ts), +diffuse reflectance (rfdif gfdif bfdif for front and rbdif gbdif bbdif for back) +and diffuse transmittance (rtdif gtdif btdif) should be less than 1 for each +channel. + +

+ +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 rs_mod modifier is used for specular reflectance. +If "void" is given for rs_mod, +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 +ts_mod, which also has its own independent roughness expressions. +Finally, the diffuse transmittance modifier is given as +td_mod, which may also be "void" or "inherit". +Note that any spectra or color for specular components must be +carried by the named modifier(s). + +

+ +The main advantage to this material over +BRTDfunc and +other programmable types described below is that the specular sampling is +well-defined, so that all components are fully computed. + +

+ +

Dielectric @@ -1459,6 +1517,153 @@ or: A section of text meant to depict a picture, perhaps using a special purpose font such as hexbit4x1.fnt, calls for uniform spacing. Reasonable magnitudes for proportional spacing are between 0.1 (for tightly spaced characters) and 0.3 (for wide spacing). +

+ +

+ + Spectrum + + +
+ The spectrum primitive is the most basic type for introducing spectral + color to a material. + Since materials only provide RGB parameters, spectral patterns + are the only way to superimpose wavelength-dependent behavior. + +
+        mod spectrum id
+	0
+	0
+	5+ nmA nmB s1 s2 .. sN
+
+ +

+ The first two real arguments indicate the extrema of the + spectral range in nanometers. + 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 + and 1 at each wavelength, or average to 1.0 against a standard + sensitivity functions such as V(lambda). + The best results obtain when the spectral range and number + of samples match rendering options, though resampling will handle + any differences, zero-filling wavelenths outside the nmA to nmB + range. + A warning will be issued if the given wavelength range does not + adequately cover the visible spectrum. + +

+ +

+ + Specfile + + +
+ The specfile primitive is equivalent to the spectrum type, but + the wavelength range and values are contained in a 1-dimensional + data file. + This may be a more convenient way to specify a spectral color, + especially one corresponding to a standard illuminant such as D65 + or a library of measured spectra. + +
+        mod specfile id
+	1 datafile
+	0
+	0
+
+ +

+ As with the spectrum type, rendering wavelengths outside the defined + range will be zero-filled. + Unlike the spectrum type, the file may contain non-uniform samples. + +

+ +

+ + Specfunc + + +
+ The specfunc primitive offers dynamic control over a spectral + pattern, similar to the colorfunc type. + +
+        mod specfunc id
+	2+ sfunc funcfile transform
+	0
+	2+ nmA nmB A3 ..
+
+ +

+ Like the spectrum primitive, the wavelength range is specified + in the first two real arguments, and additional real values are + 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. + +

+ + Specdata + + +
+ Specdata is like brightdata and colordata, but with more + than 3 specular samples. + +
+	mod specdata id
+	3+n+
+		func datafile
+		funcfile x1 x2 .. xn transform
+	0
+	m A1 A2 .. Am
+
+ +

+ 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. + +

+ + Specpict + + +
+ 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. + +
+	mod specpict id
+	5+
+		func specfile
+		funcfile u v transform
+	0
+	m A1 A2 .. Am
+
+ +

+ 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". +

@@ -1807,7 +2012,7 @@ The details of this process are not important, but directs the use of a scene description.