next up previous contents
Next: Irradiance Computation Up: Incident Light Metering Previous: Light Metering in Photography

Incident Light Metering in Computer Graphics

In spite of its inability to properly display bright or dark scenes, reflected light metering has been used in computer graphics exclusively up to now. Maybe the computer graphics community has been influenced by the fact that this is the dominant method in photography. It is certainly not convenient for a photographer to measure the incident light in all cases (and sometimes it is simply impossible). However, in computer generated images it can be achieved quite simply, as will be explained now. We will explain the method for the monochrome (or black and white) case in detail first. The extension to the color case is straight forward and described in the appendix.

The main idea is to place a limited number of diffusors into the scene. A diffusor is a half-space integrator used to measure irradiance. In computer graphics a perfectly diffuse surface can be used as the diffusor. Actually, the outgoing radiance of a surface with perfectly Lambertian BRDF is proportional to the surface's irradiance.

Usually only one diffusor is used in photography, as the photographer knows the subject of interest in the scene. For computer generated images more than one diffusor will be used, but the number of diffusors is still low compared to the number of patches or pixels in the final image. We suggest using e.g. tex2html_wrap_inline5487 diffusors in the scene. The number of samples required for incident light measuring is lower than the number for measuring reflected light, because the variance of incident light is much lower. Due to the lower variance, the contrast of irradiance values is also lower than the contrast of radiance values.

Of course it is possible to allow the user to place diffusors interactively into the scene, but our intention was to create an automatic method. Once the diffusors have been placed, the irradiance E of each diffusor should be computed as:
 equation1141
where tex2html_wrap_inline5489 is the incident angle,tex2html_wrap_inline5491 = rad, tex2html_wrap_inline5493 is a solid angle, tex2html_wrap_inline5495 = sr, tex2html_wrap_inline5497 is the hemisphere, tex2html_wrap_inline5499 is the radiance in the d incoming direction, tex2html_wrap_inline5503

In general, for an arbitrary BRDF tex2html_wrap_inline5505 the outgoing radiance for distributed light sources is:
 equation1154
For an ideal Lambertian BRDF
 equation1163
where a is the dimensionless albedo or reflectivity, tex2html_wrap_inline5509. That means that:
 equation1169
Inserting a Lambertian BRDF in (7.2) and using (7.1) gives:
 equation1176
where tex2html_wrap_inline5511 and has the same value for each tex2html_wrap_inline5513 direction of the half space.

In the implementation methods to be described later, diffusors will be realized as perfectly Lambertian, white, elementary metering surfaces, each with the same albedo value: a=1. For the sake of simplicity, let us first assume that the lighting is totally homogeneous, i.e. each diffusor receives the same irradiance value E. Therefore, all of the metering surfaces are the same, corresponding to (7.5):
 equation1186
The linear scale factor m used to map the original radiance image is then:
 equation1193
Different surfaces in the scene can have different albedo values. How will they be displayed using the scale factor m? According to (7.5) each surface emits the radiance tex2html_wrap_inline5523. Multiplying this radiance with m (7.7), results in exactly the albedo "a" being received for displaying. This is the exact, desired, and correct solution!

In the case of inhomogeneous lighting there is a set of positions with different tex2html_wrap_inline5527 (and tex2html_wrap_inline5529) values. From this set, a representative value should be produced to be used as an appropriate scale factor. Our first idea was to use the average value of a truncated histogram of the metering radiances (e.g. the lowest x % and the highest x % of the histogram values are clipped, with an x between 3 and 10), because some very dark or very light areas in the image can greatly influence the average value. The value of x is completely arbitrarily chosen and can be increased in order to eliminate the excessive influence of a dark or light part of the image. To eliminate this effect we use the median value, where x = 50 %. In this general case the scale factor m is:
 equation1207
where tex2html_wrap_inline5543 is the median value of the tex2html_wrap_inline5545 values of the diffusor set.

In the case of inhomogeneous lighting, this method does not produce the exact albedo value "a" for diffuse surfaces. However, the method offers a good compromise, in general a value near to the original "a". Sometimes the resulting device input value will exceed 1, in this case we propose to simply clip such values to 1.

Note that this is a two pass method. In the first pass a small irradiance image is rendered and the scale factor m is found. In the second pass the original image is rendered in the full resolution and this raw image is then mapped using the scale factor m from the first pass. Of course, there are no diffusors in the original scene used to render the final image.

The irradiance computation is included in some rendering packages (e.g. RADIANCE [Ward94a]). The irradiance calculation is often used for lighting engineering purposes. It is interesting that, in spite of this fact, up to now irradiances were not used to simulate incident light metering in computer graphics. In the next chapters we are going to explain how irradiance computation can be implemented in most rendering software that uses any kind of ray tracing or radiosity.


next up previous contents
Next: Irradiance Computation Up: Incident Light Metering Previous: Light Metering in Photography

matkovic@cg.tuwien.ac.at