Getting materials into Radiance
Most commonly, material parameters are guessed with minimal assumptions about the physical material properties. Comparing the rendered
image with reality and then fine tuning the parameters iteratively works pretty well and is effective if based on experience.
But only for a scene with fixed lamps and fixed observer.
To come up with a material model that behaves well for various incident and observer directions proves quite difficult without some help from
physics and by using measured BRTF data.
To model surfaces, rhodh and taudh are only useful as first approximation, sine they don't specify what the angular
distribution of the reflected/transmitted light is. Sadly, in most cases that's what is solely available from manufactures. Special
measurement devices (e.g. pab gonio-photometer) give the full information needed, or more exact, they
measure the BRTF of the surface in question averaged over the solid angles of a detector and light source at specific angles
Gonio-Photometers differ in angular resolution, solid angles of source and detector, dynamic range of the detector and whether they do relative or
Broadly scattering materials are easy to measure, shiny materials with very "peakish" BRTFs are trickier and need higher classes of
Measurements are typically done by adjusting the incident direction and taking measurements for different outgoing angles, than
stepping to the next incident direction and repeating the process.
Outgoing resolution can be very fine, up to 100000 directions on the hemisphere. The more "peakish" the BRTF, the finer the angular
resolution needed to resolve the peaks. The incident directions depend on symmetries of the BRTF and vary typically in steps of
For one incident direction a file with measured BRTF values of the above mentioned ISE-FhG gonio-photometer looks rather trivial:
#using beam file: pab-aluA-st1:beam.mpc.refint 0.063626
with the outgoing direction given as thetaout, phiout in column 1 and 2 and the absolute BRTF
in column 7.
#measurements done at Fraunhofer Institute for Solar Energy Systems, FhG-ISE
#contact email@example.com for details
#small beam, no-lense detector
#input aperture used: def
#detector aperture used: def
#incident angle theta [degree]:
#incident angle phi [degree]:
#backgrounds: left side lamp on/off, right side lamp on/off, [uA]
#background2: 2.73701e-06 2.57384e-06
#theta phi beam-ref org-data minus-background/beam-ref cosine-out-corrected brtf voronoi-cell-size
95.5176 119.535 9.9e+37 5.14761e-06 -1.60952e-05 -0.000167394 -0.00263091 0.0351119
95.526 240.467 9.9e+37 1.96535e-06 -1.92775e-05 -0.000200187 -0.0031463 0.0351942
96.2589 235.494 9.9e+37 2.20671e-06 -1.90361e-05 -0.000174609 -0.0027443 0.0110056
96.2645 124.505 9.9e+37 5.79507e-06 -1.54477e-05 -0.000141569 -0.00222501 0.0110376
96.9904 230.514 9.9e+37 2.04376e-06 -1.91991e-05 -0.000157753 -0.00247938 0.0119793
97.0222 129.481 9.9e+37 0.000205099 0.000183856 0.00150389 0.0236364 0.0120372
Directly using raw measured data in Radiance (e.g. as brightdata) is not advisable for two reasons: raw data files are large and
more important, they don't provide a sound way to interpolate between directions: Interpolation for xout is
typically done by indexing into an array and works only for data values on a regular xout grid, which is either
very coarse or even larger than the original measured data. 1
Interpolation for xin is even harder: The shape of the BRTF for an xin given e.g.
as (thetain, phiin)=(45,0) is only the average of the BRTF measured at
(40,0) and (50,0), if the BRTF is totally flat and the material is ideal diffuse. For all other materials, the BRTF shape changes, typically
its maximum in xout moves with xin, and the interpolation would have to be done in a much
smarter way. By the way, the same problem holds for all compression techniques of the BRTF in xout using a
non-physical motivated, general method, e.g. spherical harmonics or wavelets.
Fitting of BRTF models
The idea described in 1995 by the author is quite simple and works in two steps:
First a reasonably decent model of the BRTF and its dependency on incoming and outgoing directions is fitted with a minimum of parameters to the
measured BRTF in xout, while xin is kept constant. This works for data measured on a
regular grid or on an adaptive one, and results in some (approx 2-6) parameters for each xin. For consecutive
xin, e.g. (thetain,phiin)=(40,0),(50,0),(55,0) , these parameters
should be well behaved and depend smoothly on variations in thetain, phiin .
Interpolation between xin is thereby solved.
Obviously, this depends on a good choice of the "reasonably decent model" in the first place. This choice is not easily automated for new
classes of materials with different BRTF types, which is the main drawback of this idea.
Radiance could, in theory, use the indexing function of brightdata to generate
an index with a higher angular resolution in specific regions of the hemisphere, but I don't see a decent reason someone wants to take the
hassle of synchronizing the mapping function and the data values in a general and automatic way, especially because the next problem is much
trickier and important anyway.
Last modified Tuesday July 20, 2004