Skip to content

Physically based unidirectional path tracer for realistic rendering

License

Notifications You must be signed in to change notification settings

kamilsan/haruno-renderer

Repository files navigation

Haruno Renderer

Haruno is a physically-based unidirectional path tracer, capable of rendering realistic images by performing light transport simulation and handling global illumination.

lucy

Features

  • Unbiased
  • Support for Area Lights
  • Next Event Estimation (direct light sampling)
  • Importance Sampling BRDFs
  • Russian Roulette
  • Multithreader
  • Basic support for OBJ triangle meshes
  • Pinhole and thin lens cameras
  • Additional integrators: direct lighting, ambient occlusion, normals, albedo, depth

Preparation

Haruno uses minimal amount of dependencies, one of which is a googletest library, used to write some basic unit tests. This library is included as a git submodule so before building the application run following command to initialize it:

$ git submodule update --init

For loading and storing images, Sean Barrett's header-only stb-image library is used and it is included with project's source code.

Build

Project can be build using CMake 3.10 or newer:

$ cmake .
$ make -j8

Run

$ ./haruno

Test

Some unit tests are provided and are being build alongside main application. To execute them simply run:

$ ./test