Game Development Reference
Figure 5.4. A screenshot from the AMD Leo Demo.
than 150 lights in the scenes. Artists created about 50 lights by hand. Other lights
are dynamically spawned at runtime for one-bounce indirect illumination lighting
using the technique described in this section. Although Forward+ is capable of
using thousands of dynamic lights, a few hundred lights were more than enough
for our artists to achieve their lighting goals, especially for a single-room indoor
We use a material system in which a material consists of N layers where
each layer can have M weighted BRDF models along with other physically based
constants like those involving transmission, absorption, refraction, and reflections
of incoming light.
Material parameters for a single layer include physical properties for lighting
such as coecients for a microfacet surface and a refractive index as well as many
modifiers for standard lighting parameters. We deliberately allow numeric ranges
to go beyond the “physically correct” values to give artists freedom to bend the
rules for a given desired effect.
For lighting, artists can dynamically create and place any number of omnidi-
rectional lights and spotlights into a scene. The light data structure contains a
material index mask. This variable is used to filter lights to only effect specific
material types. While not physically correct, this greatly helps artists fine-tune
lighting without unwanted side effects.