Radiance is intended to aid lighting designers and architects by predicting the light levels and appearance of a space prior to construction. The package includes programs for modeling and translating scene geometry, luminaire data and material properties, all of which are needed as input to the simulation. The lighting simulation itself uses ray tracing techniques to compute radiance values (ie. the quantity of light passing through a specific point in a specific direction), which are typically arranged to form a photographic quality image. The resulting image may be analyzed, displayed and manipulated within the package, and converted to other popular image file formats for export to other packages, facilitating the production of hard copy output.
Method of Solution
The major portion of the Radiance package, and the part that is of chief interest to users, is the lighting simulation engine that calculates light levels and renders images. The input required for this simulation is a description of the 3-dimensional surface geometry, materials, and light sources in a scene. Rendering an image requires additional specification for the view point, direction, and angles desired.
Once a scene's geometry has been described, it is compiled into an "octree" that acts as an efficient data structure for the ray tracing process (ie. determining which surface a ray intersects). Without an octree or similar sorting method, ray tracing is not practical.
The lighting simulation engine of Radiance uses a hybrid approach of Monte Carlo and deterministic ray tracing to achieve a reasonably accurate result in a reasonable time. The method employed starts at a measurement point (usually a viewpoint) and traces rays of light backwards to the sources (ie. emitters). The calculation can be divided into three main parts: the direct component, the specular indirect component, and the diffuse indirect component.
The direct component consists of the light arriving at a surface directly from light sources or via one or more perfectly specular transfers from other surfaces. A list of emitters is used and sorted based on potential contribution to minimize the number of rays required for visibility test ing. Monte Carlo sampling is coupled with adaptive subdivision of large sources for accurate penumbra calculation. Specular transfers from large planar surfaces is handled efficiently through the use of "virtual" light sources, which guide the direct calculation to the original sources.
The specular indirect component consists of light arriving at a surface from other surfaces and being reflected off or transmitted through in a directional manner. Perfectly specular transfers are handled by simply redirecting the ray in the appropriate reflected or transmitted direction. Rough specular transfers are modeled with Monte Carlo sampling of the reflected and/or transmitted direction.
The diffuse indirect component consists of light arriving at a surface and being reflected or transmitted with no directional preference. The nature of this component requires that hundreds of directions be examined in order to make a reasonable Monte Carlo estimate. Fortunately, the diffuse indirect component changes slowly over surfaces, thus a few carefully calculated values at properly spaced intervals may be interpolated at the points in between. This is the basic assumption of the "radiosity" method, which is similar in principle to the diffuse indirect calculation of Radiance, but places additional restrictions on the input (ie. simple geometry and diffuse surfaces). The indirect irradiance caching scheme of Radiance also makes use of gradient information available during each Monte Carlo evaluation to further improve the interpolation used.
In addition to the basic simulation method described, a secondary light source calculation may be performed for windows, skylights and other illumination "portholes". The distribution of such a source is computed in a preprocess, greatly improving the efficiency and accuracy of the final rendering.
Restrictions on the Complexity of the Problem
Geometric input to Radiance consists of a boundary representation using N-sided polygons (concave or convex, holes represented with seams), spheres, cones, cylinders and rings (ie. circles with holes). (There is also an "antimatter" type that permits surface subtraction under limited circumstances.) Scene complexity is limited by available memory, where 2000 surfaces requires approximately 1 megabyte of RAM and the requirement grows linearly with the number of surfaces. This requirement may be avoided in cases of repetitive detail through the uses of "instances", ie. geometric shapes duplicated in different scene locations. Instancing permits scenes with millions or even billions of surfaces to be modeled efficiently.
Materials are specified using predefined types such as light, plastic, metal and glass, and may be modified by procedural or data-driven patterns and textures. Reflectance and transmittance properties are general in the sense that an arbitrary bidirectional reflectance or transmittance distribution function may be given, but only the predefined types will include the specular indirect component.
Light sources are typically modeled as emitting surfaces with specific output distributions either computed separately or taken from photometric measurements. Near field as well as far-field photometry may be used, and there is no limit to the size or number of light sources in a scene. The cost of the calculation is strongly influenced by the number of light sources, however, and a scene with a hundred sources will take approximately four times as long as a scene with 10 light sources. (The relationship between light source number and calculation time is sublinear because Radiance checks the importance of each light source before deciding if shadow testing is necessary, and the more sources there are, the smaller the percentage of important ones.)
Although Radiance attempts to account for all significant sources of illumination, there are a few cases that are not adequately modeled in the present calculation. The most important of these is the reflection of intense light from curved specular surfaces, such as might be found within a heliostat or parabolic light fixture. Computing light from such a system requires a ray tracing method that follows light in the forward direction, starting at the emitters and working outward. Since Radiance works strictly in the reverse direction, a separate preprocess is necessary to compute these output distributions. This hypothetical preprocessor is not included in the present package.
Rendering time depends strongly on the output image resolution, the number of light sources, scene complexity, the importance of indirect illumination, and the desired accuracy. Rendering time depends weakly on the materials used, emitting surface dimensions and output distributions, and the number of images rendered under the same lighting conditions (since diffuse indirect values may be reused just like radiosities).
A low resolution rendering of an empty space with a single light source will take a few seconds on a modern workstation (eg. Silicon Graphics IRIS or Sun SPARCstation). A high resolution rendering of a moderately complex office space with a direct lighting system will take about 1 hour on the same machine. The same rendering with daylight entering through venetian blinds will take about 2 hours. If the direct lighting system is replaced by an indirect hanging system, the rendering time will increase to about 4 hours. A large auditorium with 100 pendant fixtures will take about 12 hours to render at high resolution. An atrium space with significant indirect illumination could take as long as 20 hours. Such a rendering could be distributed among 20 workstations and be done in close to 2 hours. A 30 second walk-through animation of a large auditorium would take approximately 3 weeks to compute on a single workstation. This work could be distributed among 10 workstations and be done in a little more than 2 days.
Because the rendering of high resolution images is often a time-consuming affair, a crude, interactive render ing program is provided. This program permits a scene to be rendered at low resolution from any perspective, providing a convenient means for studying a proposed design and selecting viewpoints for high-resolution batch rendering or animation. Since even the interactive program is performing physically accurate lighting calculations, information about illumination level and glare is available almost instantly with this tool.
Unusual Features of the Software
Radiance includes many of the features of popular computer graphics rendering programs with the physical accuracy of an advanced lighting simulation. This combination of flexibility and accuracy makes it unique in providing realistic images with predictive power for architects, engineers and lighting designers. Its flexibility is demonstrated in applications as diverse as forensics (ie. roadway accident reenactment by Failure Analysis and Associates, CA) and aerospace (ie. space station design by NASA, Goddard).
Radiance has been compared to other lighting calculations, scale model measurements and real spaces to validate its capabilities. No other lighting calculation has undergone a more rigorous validation.
Many others have attempted to develop a lighting simulation system with similar capabilities, and there have been few notable successes. At least three major European firms (Ove Arup in London, Abacus Simulations in Glasgow, and Siemens Lighting in Germany) have abandoned their own in-house lighting simulations in favor of using Radiance.
A reference manual and UNIX man pages are available online as part of the standard distribution. The methods employed in the calculation have been described in some detail in a number of technical papers.
A book by G.W. Larson and R.A. Shakespeare has been recently published by Morgan Kaufmann, called Rendering with Radiance.
See the Reference Materials page for additional documents, notes and information.
Other Programming or Operating Information or Restrictions
Material functions and patterns may be described in a functional language included as part of the Radiance package. This same language may be used to describe functional surfaces with one of the several geometry generators.
Generally, the package is well-suited to programmers and people with a high degree of computer proficiency. The interface is command-based in a fashion that is familiar to UNIX users, but uncomfortable for many who are used to the menus and point-and-click interfaces of modern software.
Name and Establishment of Author or Contributor
Greg Ward developed RADIANCE during his employment (1985 - 1997) at Lawrence Berkeley National Laboratory. Greg is still mantaining and developing Radiance through a contract with LBNL and other sources of funding when available.
Radiance was developed by the Building Technologies Program in the Environmental Energy Technologies Division of Lawrence Berkeley National Laboratory in Berkeley, California. This work was supported by the Assistant Secretary for Conservation and Renewable Energy, Office of Building Technologies, Buildings Equipment Division of the U.S. Department of Energy under Contract No. DE-AC03-76SF00098.
Additional funding has been provided by the Technical Research Group at Apple Computer Corporation under the direction of Ken Turkowski, and the Swiss National Energy Research Fund (NEFF) as part of the LUMEN project, directed by Jean-Louis Scartezzini of the LESO-PB at the EPFL in Lausanne, Switzerland. Partial funding has also been provided by the U.S. Department of Navy, Carderock Division, and the Federal Aviation Administration.