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.
Illumination algorithms:
- Direct Illumination
- Photon mapping
Light sources:
- Point light (and the like)
- Directional light
- Area light (mesh-based)
- Environmental light
Materials:
- Matte
- Plastic
- Transparent
- Metal
- Substrate
- Measured (MERL-based)
Supported input formats:
- PBRT scene description files
General:
- Based on triangle meshes. The system supports a number of geometric shapes (such as spheres etc.) by triangulating them to triangle meshes. Object instancing is supported.
- Supports volumetric scattering.
- Multi-threaded. The system uses the Intel TBB library to take advantage of multi-core systems.
The gallery contains a number of interesting scenes rendered by Skwarka to illustrate its functionality.
- Source/ : The source code of the raytracer along with the MSVC project files.
- ThirdParty/ : Third-party dependency libraries.
- Binaries/ : An output directory automatically generated by the build process. Contains final binaries necessary to run the application.
- Intermediate/ : A temporary directory automatically generated by the build process. Contains intermediate binaries for the build process.
- Install MSVC version 2013 or later.
- Download third-party libraries.
Some third-party libraries are not in the repository (to save space) and must be downloaded and extracted manually.
- 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 - 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
- Boost
- 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.
The project is distributed under the GNU General Public License Version 3 - see the accompanying LICENSE file for more details.
The project is based on the PBRT and reuses some of its ideas and code.
The project also uses the following third-party libraries: