Skip to content

An interactive Global Illumination Renderer written in C++

Notifications You must be signed in to change notification settings

AnyDSL/imbatracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Imbatracer

Imbatracer is an interactive global illumination renderer. It uses a set of efficient ray traversal kernels written in AnyDSL.

alt text

Status

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

Building

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://user@github.com/AnyDSL/imbatracer
cd imbatracer
mkdir build
cd build
cmake-gui .. 

Running

The renderer can be tested with the Still Life benchmarking scene:

cd build
src/imbatracer/imbatracer ../test/scenes/stilllife/still_life.scene

About

An interactive Global Illumination Renderer written in C++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published