In the Real World, everything is about photons. In fact, (almost) everything is a light source. It's just a matter of emission and transmission of photons. For example, when metal wire inside a light bulb is hot enough, it glows. Then we have a glass layer that can be clear or frosted (each creates different effect). Then the light stream is capped by a case of some kind. The result photons are reflected by walls, ceiling and other objects in the room. All those factors allow different effect and/or subtle adjustments which are not possible in realtime GPU graphics.
We can categorize lights in CG graphics into several categories:
- point light -- a light cast by a single point in space that has no volume
- sphere light -- similiar to point light but the light have a volume (size), allowing penumbra effect
- spot light -- volume of light is cone instead of sphere (think of flashlight)
- directional light -- if the light source is far away enough (like the Sun visible on Earth), we can assume that all rays are parallel and attenuation is constant
- area light -- light cast not by a point, but by an area of some kind (for example rectangle-shaped ceiling light)
Modelling such lights is no real problems (however proper shadows are very difficult for some of them, especially area lights). However I'd like to focus on point and spot lights.
Point lights are the simple and very useful, however have several disadvantages: mostly that real-time shadows are expensive, but without shadows there is no occlusion of light (which is unlikely to happen IRL because there must be at least something that light is attached to). This can be however solved by using either shadows or light volumes. The simplest version of (virtual, as there is no material lightsource here) point light looks like this:
The light is visible on ceiling and floor. We can add additional effect if we use volumetric effect -- it simulates foggy air being illuminated by the light itself. It's even more visible if light is small:
Spot lights can be interesting as well. This is the simplest version of spot light.
We can add shadow:
And special gobo texture. This is useful for varying shape of spotlight.
We can of course combine it with shadow:
And add volumetric effect using light shafts:
And finally, all effects combined: spotlight with gobos, shadows and light shafts:
We can also use gobo for semitransparency effect. Here: spotlight with & without shadow:
Now adding gobo:
And some light shafts as well (they can be separated from gobos):
You can also watch video: