GPU-Accelerated Path Tracer
This is a work-in-progress CUDA implementation of a path tracer, largely based on Peter Shirley’s Ray Tracing in One Weekend series of tutorials plus other resources.
Features currently implemented are:
- Materials: Difuse, Metallic Dielectric and Emissive.
- Area lights.
- Bounding Volume Hierarchy (BVH) partitioning.
- Depth of Field.
- Geometry: spheres and planes.
Future features will include:
- Arbitrary geometry (i.e.: FBX, OBJ).
- Probabilistic sampling.
- Deep-Learing-based supersampling.
For more details see here
Dependencies:
CUDA Version:
The CUDA version is implemented as a Visual Studio 2019 project and requires CUDA Toolkit 10.2 for cuda, curand and a couple things from the thrust library.
CPU-Only Version:
There is also a CPU-only implementation closely following Shirley's Ray Tracing in One Weekend as an Xcode project for MacOS. This version only requires glm (included in the Xcode folder) for some SIMD / broadcasting operations.
The CPU-only version does not implement emissive materials nor plane geometry and will not be further updated.
Installation:
Clone the repo and compile the Visual Studio (for CUDA) or Xcode project. Then run it!
References: