--- ray/doc/ray.html 2006/05/10 19:50:30 1.6 +++ ray/doc/ray.html 2023/12/12 20:25:22 1.37 @@ -1,7 +1,8 @@ + -The RADIANCE 3.7 Synthetic Imaging System +The RADIANCE 6.0 Synthetic Imaging System @@ -9,7 +10,7 @@ The RADIANCE 3.7 Synthetic Imaging System

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

@@ -82,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 @@ -659,7 +660,7 @@ a perfectly scattering medium (no absorption). The scattering eccentricity parameter will likewise override the global setting if it is present. Scattering eccentricity indicates how much scattered light favors the -forward direction, as fit by the Heyney-Greenstein function: +forward direction, as fit by the Henyey-Greenstein function:

 	P(theta) = (1 - g*g) / (1 + g*g - 2*g*cos(theta))^1.5
@@ -797,7 +798,8 @@ unless the line integrals consider enclosed geometry.
 
 
Trans2 is the anisotropic version of trans. - The string arguments are the same as for plastic2, and the real arguments are the same as for trans but with an additional roughness value. + The string arguments are the same as for plastic2, + and the real arguments are the same as for trans but with an additional roughness value.
         mod trans2 id
@@ -809,6 +811,29 @@ unless the line integrals consider enclosed geometry.
 

+ + Ashik2 + + +
+ Ashik2 is the anisotropic reflectance model by Ashikhmin & Shirley. + The string arguments are the same as for plastic2, but the real + arguments have additional flexibility to specify the specular color. + 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
+	0
+	8 dred dgrn dblu sred sgrn sblu u-power v-power
+
+ +

+ +

Dielectric @@ -1053,6 +1078,116 @@ unless the line integrals consider enclosed geometry.

+ + BSDF + + +
+ The BSDF material type loads an XML (eXtensible Markup Language) + file describing a bidirectional scattering distribution function. + Real arguments to this material may define additional + diffuse components that augment the BSDF data. + String arguments are used to define thickness for proxied + surfaces and the "up" orientation for the material. + +
+	mod BSDF id
+	6+ thick BSDFfile ux uy uz funcfile transform
+	0
+	0|3|6|9
+		rfdif gfdif bfdif
+		rbdif gbdif bbdif
+		rtdif gtdif btdif
+
+ +

+ The first string argument is a "thickness" parameter that may be used + to hide detail geometry being proxied by an aggregate BSDF material. + If a view or shadow ray hits a BSDF proxy with non-zero thickness, + it will pass directly through as if the surface were not there. + Similar to the illum type, this permits direct viewing and + shadow testing of complex geometry. + The BSDF is used when a scattered (indirect) ray hits the surface, + and any transmitted sample rays will be offset by the thickness amount + to avoid the hidden geometry and gather samples from the other side. + In this manner, BSDF surfaces can improve the results for indirect + scattering from complex systems without sacrificing appearance or + shadow accuracy. + If the BSDF has transmission and back-side reflection data, + a parallel BSDF surface may be + placed slightly less than the given thickness away from the front surface + to enclose the complex geometry on both sides. + The sign of the thickness is important, as it indicates + whether the proxied geometry is behind the BSDF + surface (when thickness is positive) or in front (when + thickness is negative). +

+ The second string argument is the name of the BSDF file, + which is found in the usual auxiliary locations. The + following three string parameters name variables for an + "up" vector, which together with the surface + normal, define the local coordinate system that orients the + BSDF. These variables, along with the thickness, are defined + in a function file given as the next string argument. An + optional transform is used to scale the thickness and + reorient the up vector. +

+ If no real arguments are given, the BSDF is used by itself + to determine reflection and transmission. If there are at + least 3 real arguments, the first triplet is an additional + diffuse reflectance for the front side. At least 6 real + arguments adds diffuse reflectance to the rear side of the + surface. If there are 9 real arguments, the final triplet + will be taken as an additional diffuse transmittance. All + diffuse components as well as the non-diffuse transmission + are modified by patterns applied to this material. The + non-diffuse reflection from either side are unaffected. + Textures perturb the effective surface normal in the usual + way. +

+ The surface normal of this type is not altered to face the + incoming ray, so the front and back BSDF reflections may + differ. (Transmission is identical front-to-back by physical + law.) If back visibility is turned off during rendering and + there is no transmission or back-side reflection, only then + the surface will be invisible from behind. Unlike other + data-driven material types, the BSDF type is fully supported + and all parts of the distribution are properly sampled. +

+ +

+ + aBSDF + + +
+ The aBSDF material is identical to the BSDF type with two + important differences. First, proxy geometry is not + supported, so there is no thickness parameter. Second, an + aBSDF is assumed to have some specular through component + (the ’a’ stands for "aperture"), + which is treated specially during the direct calculation + and when viewing the material. Based on the BSDF data, the + coefficient of specular transmission is determined and used + for modifying unscattered shadow and view rays. + +
+	mod aBSDF id
+	5+ BSDFfile ux uy uz funcfile transform
+	0
+	0|3|6|9
+	     rfdif gfdif bfdif
+	     rbdif gbdif bbdif
+	     rtdif gtdif btdif
+
+ +

+ If a material has no specular transmitted component, it is + much better to use the BSDF type with a zero thickness + than to use aBSDF. +

+ +

Antimatter @@ -1326,6 +1461,98 @@ 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. +

@@ -1336,6 +1563,7 @@ or: A mixture is a blend of one or more materials or textures and patterns. +Blended materials should not be light source types or virtual source types. The basic types are given below.

@@ -1365,8 +1593,6 @@ A mixfunc mixes two modifiers procedurally. It i which serves as a form of opacity control when used with a material.) Vname is the coefficient defined in funcfile that determines the influence of foreground. The background coefficient is always (1-vname). - Since the references are not resolved until run-time, the last definitions of the modifier id's will be used. - This can result in modifier loops, which are detected by the renderer.

@@ -1410,7 +1636,6 @@ A mixfunc mixes two modifiers procedurally. It i arguments, the red, green and blue values corresponding to the pixel at (u,v). -

@@ -1528,10 +1753,8 @@ If no file is needed by a given primitive because all the required variables are global, a period (`.') can be given in place of the file name. It is also possible to give an expression instead -of a straight variable name in a scene file, -although such expressions should be kept -simple if possible. -Also, functions (requiring parameters) must be given +of a straight variable name in a scene file. +Functions (requiring parameters) must be given as names and not as expressions.

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