A simple path tracer implemented in an OpenGL compute shader and C++
The program features both a raster and path traced renderer, a BVH for faster ray traversal and a GUI for quality settings. Most of the engine code for GameObjects and project scenes was taken and expanded upon from my previous project, CoaEngine, but some features are not yet ported over. (See TODO)
The camera is controlled using WASD for movement and Q and E for rotation.
- OpenGL 4.6 capable GPU with support for
GL_ARB_bindless_texture
- CMake >= 3.16
- C++ 17 capable compiler
- GLFW, glm and assimp libraries in a place where CMake can find and link them
mkdir build && cd build
cmake ..
make
Copy the CMakePresets.json
file from the Microsoft vcpkg getting started guide and run the following commands:
vcpkg new --application
vcpkg add port assimp
vcpkg add port glm
vcpkg add port glfw3
cmake --preset=default
cmake --build build
To port from CoaEngine:
- Lit shader for raster
- Skybox for raster renderer
- Transparency
To implement:
- Refraction and semi transparent materials
- Normalmapping
Emission mapsExporting render to image