Abstract
Ray Tracing is one of the two major approaches to 3D rendering. Images produced through ray tracing show a higher degree of visual realism, and are more accurate compared to other 3D rendering methods like rasterisation. It is primarily used to generate photo-realistic imagery, as it is based on tracing the path of light going into the scene space. Ray tracing was initially an offline algorithm, and was seen as more suitable for applications which required high quality rendering, where the render time constraints were not as strict. Still images, animated films and television series thus used Ray tracing
for rendering visual effects like reflections, shadows, refractions etc. accurately. Computer Generated Imagery (CGI) was first used in the science fiction movie Westworld in 1973. In 1995, ’Toy Story’ became the first film to be fully developed using computer animation. RenderMan,
a Ray tracing engine developed by Pixar Studios, made this possible. At that time, rendering enough frames to make a 80-minute film took more than 800,000 machine hours. With massive increases in computational power, and the invention of Graphics Processing Units (GPUs), things have considerably improved, leading to renewed interest in ray tracing research. GPUs gave a huge boost to Ray tracing because of it’s inherently parallel nature. Though GPUs accelerate almost all parts of the Ray trac-
ing pipeline, it was still considered to be impractical for interactive, real-time rendering applications, like games. With the annoucement of specalised hardware units for Ray tracing in the Turing GPU microarchitecture by NVIDIA, real-time ray tracing is believed to be possible now. Camera technology has advanced a lot over the years. With standard optical cameras, it was impor-
tant to focus accurately on the subject, as slight errors would cause a substantial loss of quality in the desired portions of the image. Digital cameras today have the capability to adjust focus and aperture
on their own to accurately focus on a subject. While simulating a camera-esque setup using computer
graphics, we don’t have the flexibility of a refocusing after rendering is completed. The only way is to render the setup again with the correct setting. The light field representation offers a viable solution to this problem. Light field is a 4D function that captures all the radiance information of a scene. Traditionally, the creation of light fields was done by image-based rendering mechanisms. These reconstruct the 4D space using pre-captured imagery from various views and employ refocusing algorithms to generate output images. Plenoptic cameras capture the information of all light coming towards the camera, and use that to generate images at any focus setting. Handheld plenoptic cameras, like the Lytro camera series also capture light fields using a microlens array between the sensor and the main lens, but physical
constraints have limited their spatial and angular resolutions.
The first part of this thesis presents a GPU-based synthetic light field rendering framework that is
robust and physically accurate. It can create light fields of very high resolutions, which are orders of
magnitude higher than currently available in commercial plenoptic cameras. We show how light field
rendering is possible and viable in a synthetic rendering setup, and high-quality images at any desired
focus and aperture setting can be generated in reasonable times with a very low memory footprint.
We explain the theory behind synthetic light field creation, different representations possible for a 4D
light field, and show results based on our implementation, as compared with state-of-the-art ray tracing
frameworks like POVRay.
In the second part of the thesis, we attempt to solve the problem of light field storage. The 4D light
field is inherently rich in information, but is very bulky to store. We address this issue by separating the
light field creation and output image generation passes of a synthetic light field framework. Our thesis
presents a compact representation of the 4D light slabs using a video compression codec and demon-
strate different quality-size combinations using this representation. We demonstrate the equivalence
of the standard light field camera representation, called the sub-aperture representation, with light slab
representation for synthetic light fields. We use this to exhibit the capability of our framework, not only
to trace light fields of very high resolutions, but also to store them in memory. The required images can
therefore be generated independently from the ray tracing pass with a very small cost