Frequently Asked Questions

Frequently Asked Questions (FAQ) from the Radiance community. Most of these are compiled from the archives of the Radiance users' mailing list. You can subscribe to this list and browse the archives on the Radiance community website at

errors and warnings (2)

What about all those messages, errors, warnings? Reading <stderr>...

Is my scene invalid, and why is the resulting image not completely black?

Radiance basically supports two classes of modifiers representing emitting sources in a scene.

  • Probably the most obvious one consists of light, illum and spotlight. At any collision of a ray with a surface of your scene, visibility of surfaces attributed by any modifier of this class will be tested. Secondary sources generated at run-time due to occurance of surfaces attributed by mirror modifiers are treated the same way.
  • The second class of modifiers emitting into the scene consists only of the glow modifier. It is not directly tested for, but only gets accounted for if hit by a (random) ray sent out during the ambient calculation.

The warning "No light sources found" refers only to the first class of emitting modifiers. As recent developments have encouraged useage of scenes with glow-type modifiers as only sources, the warning message has become a common experience. Still, unless you know that you used nothing but glow sources in your scene, it should point you into the right direction checking you light source definitions. You should never get this warning when using skies with direct sun (gensky -s) or artificial lighting modeled using candela distribution data (e.g. imported using ies2rad).
While working with rtcontrib and patch-based sky models, you can however probably ignore the warning.


luminaires (1)

Defining your light sources from available vendor data, file formats for distribution data, sources for candela distribution data.

materials (4)

Everything about surface properties. Reflection, transmission, data aquisition, background info on how to solve typical problems with physically correct material definitions.

I have some surfaces that I want to be invisible in my Radiance renderings, but I do not want to change my scene geometry. How can I achieve that?

- void
void polygon ghost
9 0 0 0
1 0 0
1 1 0

- trans
void trans completely_clear
7 1 1 1 0 0 1 1


model geometry (2)

How to build your model in efficient ways, using Radiance generator tools, import and export of scene data.

Radiance provides two tools to import geometry in Wavefront OBJ format. Which one should I use?

The OBJ format is a mesh format supported by many modeling tools to output either pure geometry or complete scenes including material definitions, vertex normals and image maps. Radiance has been supporting OBJ for a long time by providing a typical input filter, obj2rad. obj2mesh is a rather late (2003 with Radiance 3.5) addition, provided to support a new geometric primitive called mesh. This primitive is similar to the instance primitive, as both represent precompiled geometry consisting of flat surfaces. The mesh primitive however adds support to share vertices between faces, which is an even more memory-efficient approach compared to instances. Besides, uv-coordinates are maintained (and can be accessed as variables Lu and Lv in Radiance), allowing e.g. image-maps to be adjusted in modelling software instead of mathematically describing the mapping to Radiance's geometric primitives. You will find detailed instructions on using the obj2mesh command and the resulting mesh file (with its default file extension being .rtm) in the manpage:
man obj2mesh


pixel works and postprocessing (1)

Using Radiance filters, tools for analyzing and presentation, pixel math.

pcond - irreversible, prepares images for specific output devices.
pfilt - reversible, integral part of the rendering chain.


software (4)

topics related to software - building and installation, performance, configuration

I think that Radiance could be helpful in my work, but how do I start using it?

Get the software
Radiance is distributed under an open source license. You can read the current version of the license at Releases are typically distributed as downloads from the two main web-sites and
In the beginning, you should choose the provided binaries of the latest stable release and follow the installation instructions. Advanced users, who want to keep track with code development including latest bug-fixes and newest features, as well as those running on unsupported platforms or willing to get best performance for their platform, will download the source-code. The sources are not available only for the stable releases, but are also made available as daily snapshots. Source downloads are split into two archived. One is the library and support files, which do not change that much. Second is the source code for the binaries, which reflect latest developments. You will need to get both for compiling and installing the software.

If you want to use the precompiled binaries, you should follow the installation instructions for your operating system (OS). These should provide you with the information on where to copy the content of the archives, how to set the needed environment variables, and how to fullfill possible software requirements.
If you decided to compile, the target path will be asked by the makeall script, which controls compilation.
In any case, you should make sure that the OS finds the executable binaries, which means that the /bin-directory containing the programs get somehow included in the search path of the OS. A typical case would be to set export PATH=$PATH;/opt/radiance-4.1/bin. This depends on the OS you are using as well as on the command shell. Besides the program search path used by the OS, Radiance relies on a second environment variable called RAYPATH. This is the search path used by all Radiance tools to look for all kind of files - scene geometry, octrees, pictures for texture mapping and .cal-files for functions. The RAYPATH must at least include the /lib-directory containing the file, but in many cases you will want to include a directory with your own library as well as the current directory. So a typical setting may be export RAYPATH=$RAYPATH;/opt/radiance-4.1/lib;/share/radiance/textures;/share/radiance/objects;/share/radiance/materials.
A great tutorial on installating Radiance on different platforms is provided by Francesco Anselmo's Radiance Knowledge Base.

Beginners tend to underestimate the importance of working through the available tutorials. Radiance has a rather steep learning curve at the beginning. Still, taking some days to go through the very valuable tutorials by Greg Ward and by Axel Jacobswill help you avoiding a lot of frustration. The process of setting up simulations in Radiance is basically a chain of steps, such as generating and converting geometry, defining light sources and materials, assembling these into scene files, running the raytracing code, filtering and analyzing the results. Once you have gone through it, it will be much easier to vary these steps and adopt the tool-box to your needs. However, starting with an overly complicated model, getting lost and ending up asking basic questions about what is just too complicated for the beginning, leads to frustration both for the new user and those trying to help.
After passing through one of the tutorials, you will be able to complete most of the basic tasks of lighting simulation. But you would not have choosen Radiance if it was just for the common basics. There is a vast number of publications, advanced tutorials, the archives of the mailing list and the old digest. Still, the most important ressource for any serious Radiance user is the book "Rendering with Radiance". It is not only the reference for using the software, but also documents the algorithms and code structure needed to understand what is happening behind the scenes. Another great wiki-like collection of information from various sources is available at Francesco Anselmo's Radiance Knowledge Base.

Use, practice and share
Radiance is a powerful environment not only because of the quality of the codebase, but also because it is accompagnied by an active community of users and developers willing to openly discuss their work and share their results and insights. Usually no question will be left unanswered, as long as it is not obviously covered by the available documentation. But sharing your work is not only useful for others to learn - it is also a means of verify being on the right track, getting comments that may prove to be helpful for improving ones work or point at weaknesses that need some review.
Besides the support channels such as mailing lists and web sites, once a year a workshop is organized. These workshops are a valuable insight into current activities from measurement, software development over everything related to lighting and daylighting. Besides that, they are the perfect opportunity to meet the folks of a worl-wide community in person. Workshops are announced on the mailing list, most past workshops' presentations can be browsed at .