Imbatracer is an interactive global illumination renderer. It uses a set of efficient ray traversal kernels written in AnyDSL.
On the scene side, the following features are supported :
- Triangle meshes (Wavefront OBJ files)
- Textures (TGA and PNG formats)
- Lights (point lights, directional lights, spot lights, environment lights, and triangular area lights)
- Flexible material system. Currently implemented materials are: Lambertian, Phong, Cook-Torrance, glass, and perfect mirror.
- Instancing with rigid body transformations
On the rendering side, the following algorithms work :
- Path Tracing
- Bi-directional Path Tracing
- Vertex Connection and Merging
- Progressive Photon Mapping
- Light Tracing
This project depends on the AnyDSL framework and the traversal code. Additionally, it requires TBB, libpng, and SDL2. Once the dependencies are installed, use CMake to configure the project:
git clone https://[email protected]/AnyDSL/imbatracer
cd imbatracer
mkdir build
cd build
cmake-gui ..
The renderer can be tested with the Still Life benchmarking scene:
cd build
src/imbatracer/imbatracer ../test/scenes/stilllife/still_life.scene