Skip to content

BCaven/OfflineRaytracing

Repository files navigation

tomato in a cornell box

tomato splat in cornell box.

Offline Raytracing

Starting with the raytracing tutorial series by Peter Shirley, Trevor David Black, and Steve Hollasch, this is an offline Monte Carlo raytracer that has support for triangle meshes and multi-core CPU rendering.

This was then expanded to include Gaussian Splats rendered as stochastically sampled volumetric primitives that are first class citizens in the raytracer. This means they support lighting, reflection, shadows, and everything else any other primitive in the engine supports.

Gallery

the council more bears even more bears

Getting started

This project uses:
Boost
Spdlog
STB
GLM

Inspirations

Unified Gaussian Primitives for Scene Representation and Rendering

Support for a non-c++ API is not planned and at the moment users must build the project from scratch. This project has only been tested using Visual Studio and C++20 and is not guarenteed to work on other platforms and configurations.
Aspects of the project might also not work and can be broken on any new release.
At the moment, this project is not optimized and there is not a schedule for further improvements. Expect long render times, bugs, and unsolved issues.

Contributing

If you would like to contribute to this project please make a pull request.