This is a method I’ve developed for the fast lighting of many diffuse-only lights.

The method works as follows:

  1. Lights’ positions and parameters are gathered
  2. List of areas that are going to be lit is generated
  3. Some points are marked as critical lighting points
  4. For each critical point, a light probe is calculated by integrating all the lights that have an effect on that point
  5. Light probes are then transformed into 3rd-order SH and sent to the GPU
  6. These probes are then used in the lighting shader, alongside with other pre-calculated ambient probes

In the image below, each small cube represents a light source with a unique color. The lighting is calculated for the sphere.

My CPU-based lighting running on a PS3, utilizing 2 SPUs for lighting

As you can see, most of the work is done on the CPU and can be done in parallel on a separate thread. It’s also suitable for the PS3’s SPUs. The image above is taken from a PS3 running the lighting on 2 SPUs.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s