Opposite Renderer
This project is a part of Stian Pedersen's master's thesis project at NTNU. This demo renderer contains a GPU implementation of the Progressive Photon Mapping algorithm. It is written in C++ using CUDA and OptiX. The renderer has a GUI and can load scenes from the well known Collada (.dae) scene format. It has a client-server architecture allowing multi-GPU (distributed) rendering with any number of GPUs. It has been tested with up to six GPUs via Gigabit ethernet with very good speedup.
Master's Thesis
An introduction to ray-tracing, photon mapping, participating media, as well as details on implementation and results are available in the full thesis.
Download binary
A precompiled version for Windows 7 64-bit is available for testing. A Nvidia CUDA capable card is required. If you click on the images below, you will find more .DAE scenes you can test the implementation on.
Disclaimer: This is only a prototype implementation, not for any production use. Use at your own risk.
Source code
Source code is released on github. Feel free to use this for anything if you want. The necessary libraries are listed below. You must link against these to compile, and it may require trickery to compile on other systems than 64-bit Windows.
Libraries
Some libaries were used for this project: Qt 4.8.3, Nvidia CUDA 4.2.9, Nvidia OptiX 3.0.0, Open Asset Import Library 3.0, libtga 1.0.1.
Rendered images
These images was rendered as a part of the thesis. Click on them to find more details about render time and see full resolution image.