CS488 - Introduction to Computer Graphics - Lecture 26

Global Illumination

Comment on global illumination. If you are doing a walk-through, you can calculate the illumination on each polygon once, then re-render (re-project) the scene from different viewpoints as the user moves around.


Calculating illumination

Each small bit of surface in the scene

  1. receives some amount of light (possibly none)
  2. emits some amount of light (possibly none)
  3. re-emits some amount of light (possibly none)

Solve the resulting equations.

  1. F(x, y)dx.dy is known from the geometry
  2. I(x, <z>, \lambda) and R(<z-in>, <z-out>, \lambda) are surface properties in the model
  3. B(x, <z>, \lambda) and L(x, <z>, \lambda) are unknown.
  4. Substitute B into the third equation.
  5. The result is a set of linear equations that can be solved for L

Once L is known,

  1. B is easily calculated.
  2. The light field is easily calculated at point P

The Light Field

Plenoptic Function

Think about what the viewer can do.

  1. The seriously handicapped viewer can

    Ray tracing is perfect.

  2. The mildly handicapped viewer can

    Ray trace onto a sphere surrounding the viewer and reproject from the sphere to a view plane whenever the direction of gaze changes.

  3. The unhandicapped viewer can

    Ray trace onto a sphere at each accessible point.

The third is the light field, also called the plenoptic function, and it has to be recalculated every time something in the scene moves.

Filling Space with Light

Let's turn our attention away from the surfaces of objects and onto the volume between objects

At every point in this volume there is a light density

This quantity LF(P, <z>, \lambda ) is the light field. If we knew it we could

The evaluation is, in fact, just a projective transformation of the light field.

How do we get the light field?

  1. by measurement
  2. by calculation

How is the light field used in 2009?

But tomorrow!!

`Backdrop' Applications

Imagine making a game or a movie

An easy backdrop

Return to: