The Light Field Rendering method is an interesting variation on achieving realism. Once authentic imagery has been acquired using a camera gantry, detailed novel views can be synthetically generated from various view points.

One common application of this technique is when a user "walks" through a virtual world.In this situation,only a subset of the previously stored light field is required,and considerable computation burden is encountered inprocessing the input field to obtain this subset. In reference [a], its shown how appropriate portions of the light field can be cached at select "nodal points" that depend on the camera walk. Once spartanly and quickly cached, scenes can be rendered from any point on the walk efficiently.

We modified the present code(for 2D) so as to implement the 3D-Incremental-Camera-Walk algorithm mentioned in reference [a].


Camera Walk on a plane parallel to the UV plane.

  1. Starting from the initial position on the camera path curve, mark nodal points at
    a distance δx = δl × R, where R is the ratio of the distance between the camera
    plane and the ST plane, and the distance between the UV and ST plane. For
    simplicity, the nodal points are selected parallel to the u & v directions as shown
    in the following figure. A grid is thus created.

  2. The light field is cached at four nodal points in the grid enclosing the query point.
  3. Apply following algorithms [1] & [2] to calculate the radiance at any query point inside the initial cell.

    [1] All-Directions(qi)

    • Determine nodal points bounding qi.
    • for all s ε S do

      Shoot a ray from query point qi to s and apply following algo.
      [2] Fixed-Direction (q, s)

      • Shoot a ray from q to s to obtain q' on U.
      • Mark points N1' and N2' on U at a distance d = δl/2 apart on either side of q'.
        This determines the nodal points N1 and N2 on C.
      • if assoc(N1) is Gi then
        L[q] = L[N1]
        L[q] = L[N2]
        end if
      Output radiance L[q], in the direction of s.
    • end for
  4. As the walk exits a grid cell, update the nodal points and go to Step 2.


Camera Walk along any arbitrary path in 3-dimension.

  1. Compute nodal points Ni and Ni+1 on the line (termed Canonicalci ) parallel to U
    using Algorithm
    [2] Fixed-Direction (q, s)
  2. Cache light field at these nodal points as in Step 2 of 2D-Algorithm.
  3. Compute interval Ij on Canonicalci defined by the intersections of the two line
    segments from the two corners of S to qj on walk.
    If Ij ε [Ni,Ni+1], use Algorithm [1] All-Directions(qi) to calculate L[qj].
    Increment j, go to Step 3.
  4. Otherwise, increment i and go to Step 1.


Nodal plane is a list of points, such that the first four members of each list act as the nodal points for the rest of them. A query point is said to belong to a particular nodal plane if the region, enclosed between the points of intersection of the ray joining the query point to the end points of ST plane and the particular nodal plane in consideration, lies inside the nodal region.

For each nodal plane, light field is cached at the four points(only once) and the image for the query points is drawn using minimum distance method. For the next nodal plane, the previous nodal data is discarded and then data is reread for the respective nodal points(incremental method) In this algorithm the amount of data to be maintained is much less than the previous method as at a time only the light field for four nodal points is required.



Rendered images of Buddha on a camera walk

Rendered images of Dragon on a camera walk


  • [a] Biswarup Choudhury - Efficient Light Field Based Camera Walk ..
  • [b] Biswarup Choudhury, A. Pandey and S. Chandran. - Efficient Image Updates using LightFields.
    Accpeted in Pattern Recognition Letters, Elsevier.