"Improved Computation of Finite-Width Glint Lobes in SPIRITS," J. A. Conant, 12th SPIRITS User Group Meeting, Hanscom AFB, MA, 12-16 May, 2008.
In previous versions of SPIRITS a single-ray approximation was used for reflections from extended and secondary sources, where the specular lobe was collapsed down into a delta-function for those sources; that is, all of the specular reflectance was concentrated into a single ray in the ideal specular direction. The code then would ray-trace in that direction to see which source (e.g., earth or facet) was the light source. This approximation is accurate for paints with narrow specular lobes, or wherever the light source varies slowly in angle across the lobe. Large errors can occur for reflections where the radiance has a sharp gradient, such as from the horizon, from near to the Sun, or from a small hot spot (such as an engine nozzle). In SPIRITS-AC2r2 we implemented an upgrade which performs a rough approximation of the specular radiance*BRDF integral for extended sources. The new approach is to sample the glint lobe at multiple angles, (1) computing a separate BRDF value for each sample, and (2) sending out a ray for each sample, to determine the light source for that glint sample. Summing the contributions provides the desired integral. The algorithm allows the user to select either one, five, or nine samples per glint lobe. The use of just one sample gives the original SPIRITS algorithm. The weighting applied to each sample ensures that energy is conserved. The upgrade was tested against simple "known" cases, and against measured aircraft data. These comparisons show both qualitative and quantitative improvements over the original algorithm.