Energy sources in the matrix.

Photon provides several kinds of light sources, and insists on using physically based units for input arguments. The reason is three-fold:

  • Photon is physically based, using physically based inputs is natural and more accurate.
  • Users can expect consistent renderings between different versions of the software with identical inputs.
  • It is easier to verify the results with real world measurements.

The following sections give a brief overview on the types of light sources implemented in Photon.

Area and Model Light

Photon currently supports three kinds of area light, which are rectangle, sphere and point. People may be surprised that in Photon, point lights belongs to area light. The rationale behind this is that traditional point light introduces an additional singularity in the rendering equation, and we already have quite a lot of them in the system, e.g., pinhole camera and mirror reflection/transmission (and traditional point lights are not physically possible anyway). Each singularity may need special routines or conditionals to handle properly, and to make them working nicely altogether can be pretty hard (at least for me). The idea is to make point lights have a finite volume, typically a sphere with a 1- to 3-cm radius resembling the size of common light bulbs. Maxwell Renderer (http://www.nextlimit.com/maxwell/) has a similar design decision (though I am not sure whether the reason behind it is the same). Below is a series of area light sources, all of them emit 5W of energy (and thus should be of roughly the same brightness):

5W point light (note that our point light has a finite volume).
5W rectangle light (10x10cm).
5W sphere light (5cm radius).

Model light is a variant of area light. While area light need to have constant emission profile, model light lifted this limitation and allow using variable emission profile (such as textures) on arbitrary geometry:

Textured model light (Utah teapot).

Dome

A powerful method of lighting is image based techniques, also known as environment map or HDRI lighting. The main idea is to assume energy come from far regions can be tabulated with direction vectors as entries. Lighting up a scene with HDRIs is usually the fastest and the most effective way of achieving natural-looking results. In photon we call this type of light source as dome. Visit https://hdrihaven.com/ for a nice collection of HDR environment maps.

A scene lit with a dome source.
The dome source in latitude-longitude format (captured by Greg Zaal).

IES Light Profile

An IES light profile stores the distribution of emitted energy of a light fixture. The majority of the dataset are provided by lighting manufacturers, which is useful for interior design (architecture visualization). Most commercial renderers are able to parse and render IES lights, and even some game engines support it. Photon does not treat IES light profiles as an energy distribution function, rather, they are interpreted as energy attenuating filters (energy values are normalized to [0, 1]). The reason of doing this is that user can freely modify the total energy a light emits; otherwise IES light profiles stores absolute energy values. On the other hand, it is always possible to extract the total energy from an IES data file then applying the attenuation to faithfully reproduce the light fixture in the renderer.

A wide spread angle described by an IES data file.
A pretty narrow spread angle described by an IES data file.
An interesting IES light profile.
Another interesting IES light profile.