COS 526 - Advanced Computer Graphics

Fall 2003

Course home Outline and lecture notes Assignments

Programming Assignment 2: Light Fields

Due Wednesday, Nov. 5


For this assignment, you will implement a light field viewer based on the techniques described by Levoy & Hanrahan 96.

I. Deriving Equations

The basic operation performed by the light field viewer is looking up the color corresponding to a given ray in space. Since the light field is represented by "slabs" (pairs of planes in space), you will need to derive code for intersecting a ray in space with a rectangular region of a plane (specified with the region's four corners).


II. Basic Light Field Viewer (60%)

  1. Begin with code to read a single-slab, uncompressed light field given as a pair of files:

    Some sample data files are here.

  2. For each frame, do the following:

III. Extensions (40%)

Implement extensions (A and B) xor C:

A. Interpolation

In addition to the "closest-point" sampling implemented above, implement the following interpolation schemes:

Which of the first 2 appears to produce better results? Why?

B. Multiple Slabs

Extend your viewer to handle light fields consisting of multiple slabs. Some data is here.

C. VQ Decompression

Extend your system to handle VQ-compressed data. The changes in the data format are as follows:

Some data to get you started is here. However, once you have VQ decompression implemented, it should be possible to view the .lif files available here. The only tedious part is parsing the .lif header, documented here.

Note that for this assignment, it is acceptable to decompress the data in memory before the start of rendering - it is not necessary to render directly from the VQ-compressed data.


Please submit your source code together with a writeup (as plain text or HTML) that contains a description of your implementation as well as sample screen-shots.

Please put your code and writeup in a .zip or .tar.gz file and attach it in an email to, with "CS526" in the subject line. Please see the general notes on submitting your assignments, as well as the late policy and the collaboration policy.

Last update 29-Dec-2010 12:02:54