Portfolio | Voxel Octree Renderer

Voxel Octree Renderer

An OpenCL-accelerated application to visualise octrees.

Role: Programmer
Responsibilities: Build a voxel-based ray tracer using OpenCL and C++.
Employer: Self.


Having seen Minecraft and projects such as Atomontage as well as the Unlimited Detail Technology, I was inspired to work on something similar. I had discovered OpenCL, a parallel computing language while looking around for ways to implement ray tracing engines. I had also done some research for representing spatial data in ways which would be efficient in terms of storage as well as traversal, which lead me to octrees. Combining these ideas together resulted in the application demonstrated above.

I utilised the publication by J.Revelles et. al. titled “An Efficient Parametric Algorithm for Octree Traversal” as it provided sample code for CPU-based traversal of octrees. The main problem I had to overcome was to convert this algorithm into code which would be executable on the GPU, in a parallel manner.

Stage of development as of now:

The application is capable of rendering millions of cubes at an acceptable framerate. However, it’s not stable enough for a release version. It requires a lot of optimizations for performance and data compression.