Intensity of Light
Prev | Chapter 9. Lights On | Next

## Intensity of Light

There are many, many things wrong with the rather primitive lighting models introduced thus far. But one of the most important is the treatment of the lighting intensity.

Thus far, we have used light intensity like a color. We clamp it to the range [0, 1]. We even make sure that combined intensities from different lighting models always are within that range.

What this effectively means is that the light does not brighten the scene. The scene without the light is fully lit; our lights simply darken parts of the scene. They take the diffuse color and make it smaller, because multiplying with a number on the range [0, 1] can only ever make a number smaller (or the same).

This is of course not realistic. In reality, there is no such thing as a “maximum” illumination or brightness. There is no such thing as a (1, 1, 1) light intensity. The actual range of light intensity per wavelength is on the range [0, ∞). This also means that the range of intensity for reflected light is [0, ∞); after all, if you shine a really bright light on a surface, it will reflect a lot of it. A surface that looks dark blue under dim light can appear light blue under very bright light.

Of course in the real world, things tend to catch on fire if you shine too much light at them, but that's not something we need to model.

The concept of lighting darkening a scene was common for a long time in real-time applications. It is another part of the reason why, for so many years, 3D games tended to avoid the bright outdoors, preferring corridors with darker lighting. The sun is a powerful light source; binding lighting intensity to the [0, 1] range does not lead to a realistic vision of the outdoors.

One obvious way to correct this is to take all of the diffuse colors and divide them by a value like 2. Then increase your light intensity range from [0, 1] to [0, 2]. This is a workable solution, to some extent. Lights can be brighter than 1.0, and lighting can serve to increase the brightness of the diffuse color as well as decrease it. Of course, 2 is just as far from infinity as 1 is, so it is not technically any closer to proper lighting. But it is an improvement.

This technique does have its flaws. As we will see in later tutorials, you often will want to render the same object multiple times and combine the results. This method does not work when adding contributions from multiple light sources this way, unless you limit the sum total of all lights to the same value. Just as we did for diffuse when combining it with an ambient term.

It is certainly possible on modern hardware to model light intensity correctly. And we will eventually do that. But these more primitive lighting models do still have their uses in some cases. And it is illustrative to see what an improvement having proper lighting intensity can make on the result. The lighting computations themselves do not change; what changes are the numbers fed into them.

Prev | Up | Next
Global Illumination | Home | In Review