View on GitHub

Skwarka

A physically based raytracer

Download this project as a .zip file Download this project as a tar.gz file

OVERVIEW

Skwarka is a research-oriented physically based raytracer inspired by the PBRT. It is used primarily as a test platform for global illumination algorithms and research.

GALLERY

The gallery contains a number of interesting scenes rendered by Skwarka to illustrate its functionality.

KEY FEATURES

Illumination algorithms:

Light sources:

Materials:

Supported input formats:

General:

FILE STRUCTURE

  1. Source/ : The source code of the raytracer along with the MSVC project files.
  2. ThirdParty/ : Third-party dependency libraries.
  3. Binaries/ : An output directory automatically generated by the build process. Contains final binaries necessary to run the application.
  4. Intermediate/ : A temporary directory automatically generated by the build process. Contains intermediate binaries for the build process.

SETUP AND BUILD

  1. Install MSVC version 2013 or later.
  2. Download third-party libraries. Some third-party libraries are not in the repository (to save space) and must be downloaded and extracted manually.
    1. Boost
      Download and extract boost library from the website http://www.boost.org/
      The currently used version is 1.56 and it needs to be extracted to ThirdParty/boost/1.56 directory
    2. TBB
      Download and extract TBB library from the website https://www.threadingbuildingblocks.org/
      The currently used version is 4.2 and it needs to be extracted to ThirdParty/TBB/4.2 directory
  3. Open Source/RayLibs/RayLibs.sln file in MSVC and it should be instantly ready for build (except for the unit tests).
    If you also want to build the unit tests (the UnitTests project) you will additionally need to install Python and make sure it's on your PATH env variable.

LICENSE

The project is distributed under the GNU General Public License Version 3 - see the accompanying LICENSE file for more details.

ACKNOWLEDGMENT

The project is based on the PBRT and reuses some of its ideas and code.

The project also uses the following third-party libraries:

  1. Boost
  2. CxxTest
  3. FreeImage
  4. Intel TBB