Master Thesis: Octree Light Propagation Volumes

Octree light propagation volumes are an extension to traditional light propagation volumes. The difference is that it uses a data structure based on octrees rather then a uniform grid. The technique, just like traditional light propagation volumes, aims to provide diffuse indirect illumination in real-time. Unlike many other techniques it supports fully dynamic scenes and light sources. 

The development of the octree light propagation volumes was created as the master thesis project of my computer science M.Sc. degree. It was demonstrated in the form of a real-time implementation and a corresponding offline simulator. The real-time implementation was implemented using the C++ programming language with the help of OpenSceneGraph, osgCompute, CUDA, GLSL and CMake. It runs the complete technique in real-time on modern hardware and allows for a multitude of configuration options. 

The simulator was implemented using the Java programming language and is focused towards conveniently visualizing the behavior of the technique and different variations to the algorithm used for light propagation. 

 

Change log

  • Version 1.0 [2012-10-08] - Initial release.

 

Specifications

The real-time implementation was implemented using C++ with OpenSceneGraph, osgCompute, NVIDIA CUDA, OpenGL GLSL and CMake

The simulator was implemented using Java with EpsGraphics, JFreeChart, OpenCSV and Java3D VecMath

 

Team

  • John David "Jiddo" Olovsson - Student
  • Michael Doggett - Supervisor
  • Tomas Akenine-Möller - Examiner

 

Download

Project report (.pdf)

Project presentation slides (.pdf)

Real-time implementation source (.zip) (Don't expect being able to build this. It's only ever been build on Linux and requires some slightly modified OSG and osgCompute libraries to work. This is just provided in case anyone is interested. It also does not include the Crytek Sponza scene.)

Simulator distribution (.zip)

 

Screenshots