Skip to content

Monte Carlo path tracer for physics based rendering coded in C++

Notifications You must be signed in to change notification settings

D1rk123/PathTracer

Repository files navigation

PathTracer

This is a hobby project in which I implemented Monte Carlo path tracing for physics based rendering.

Current Features

  • Unidirectional path tracing
  • Multithreaded execution based on the C++11 threading library
  • 2 Types of geometry (spheres and infinite planes)
  • 3 Materials (diffuse colored surfaces, mirrors and glass)
  • 2 Types of light sources (point lights with next event estimation or emissive surfaces)
  • Saving images as HDR exr files and LDR ppm files

The image below was rendered using the path tracer in this repository. Example Render

Building and running the code

At the moment there is no user interface yet, so to change the scene you have to recompile the code. A visual studio project is provided in this repository. Two libraries are used (GLM and TinyEXR) but both are header only so they don't need to be compiled separately. These libraries are included as submodules so make sure to clone the repository recursively.

About

Monte Carlo path tracer for physics based rendering coded in C++

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages