Home Page

Home Page

Comp 238

Programming Assignment 3:  Light Field Viewer

Page 1

Introduction

This project represents my first significant foray into image-based rendering (IBR). I implemented a simple light field viewer that can generate novel views of a scene given a collection of images as input. The viewer assumes that the source images are created on a (planar) regular grid. The animation to the right shows an 8x8 sequence of images similar to the sequence created to test the viewer. The image resolution of the animation is 128x128, whereas the resolution of the actual source images is 512x512.

Details

I implemented a straightforward ray tracing renderer using the parameterization described in "Dynamically Reparameterized Light Fields" by Isaksen, McMillan, and Gortler. Thus, the "scene" consists of a planar camera surface that is fixed in space and a planar focal surface that can be moved. See the figure below (taken from the paper) for more details.

To render an image from a desired virtual camera position, the algorithm is as follows:

For each pixel
{
    Create ray from virtual camera center of projection (cop) through the current pixel
    Find the intersection of the ray with the camera surface
    If the intersection is within range of the data cameras
    {
        Find the intersection of the ray with the focal plane
        Project that intersection onto the image plane of each of the four closest data cameras
        Bi-linearly interpolate within each of the corresponding source images
        Bi-linearly interpolate between the resulting four colors based on where you are on 
            the camera surface (i.e. based on s and t)
    }
}

See the figure below (taken from the paper) for more details.

Example Images

The two images below illustrate the advantage of a movable focal plane. In the image to the left, the focal plane is at a depth that is significantly behind the geometry of the original scene. Since the camera surface is sparsely sampled (i.e. only an 8x8 image set with the samples spaced fairly far apart), significant ghosting appears in the rendered image. In the image to the right, the focal plane has been moved to a depth that better approximates the geometry of the original scene, and the resulting rendering is much improved.

The remaining two images appearing below show renders from two different camera positions (just to show that I can move the camera around).

Email Jason Stewart