v1.0.0
First public release of the GLSL path tracer, 318 commits, built over a semester at EPITECH by three people.
What's in this release
GPU path tracer
- Unidirectional path tracer running entirely in fragment shaders
- Disney BSDF with full PBR material support (albedo, metallic-roughness, normal, emission maps)
- Multiple importance sampling for variance reduction
- Two-level BVH acceleration structure for instanced geometry
- Russian Roulette path termination
- Stochastic alpha testing for transparency
Lighting
- Analytic lights: sphere, rectangle, directional
- Image-based lighting via HDR environment maps
- Configurable environment rotation and intensity
Geometry
- 19 built-in primitives: sphere, cube, plane, infinite plane, cylinder, cone, torus, Möbius strip, Sierpinski fractal, capsule, disc, ellipsoid, pyramid, tetrahedron, octahedron, dodecahedron, icosahedron, prism, helix
- Mesh import: OBJ, GLTF, GLB
- MagicaVoxel homogeneous volume rendering
Performance
- Tile-based rendering to manage GPU memory pressure
- OpenImageDenoise integration for AI-accelerated noise reduction
- Progressive refinement with configurable max samples per pixel
Scene system
- LibConfig++ scene format with full support for materials, primitives, meshes, lights, and camera keyframes
- Runtime parameter modification without recompiling shaders
- 20 bundled demo scenes: Dragon, Dream, Jinx, Mustang, Hyperion, Teapot, TorusKnot, and more
Plugin system
- Windowing backends: SDL2, SFML
- ImGui GUI plugin with live scene and material editing, file dialog, and export button
- Automated PPM export when no GUI plugin is loaded
Bug fixes (notable)
- Renderer GL state isolation to prevent ImGui corruption
- OIDN denoising pipeline corrected
- Scene and mesh ownership migrated from raw pointers to RAII smart pointers
- Resizing no longer triggers shader recompilation
- Matrix 4x4 identity default corrected
- GLTF loader using
UniquePtrarrays throughout
Contributors
@mallory-scotton, Hugo-Cathelain, nathan-fievet
Installation
Download the pre-built Linux x86_64 binary from the assets below, or build from source:
tar -xzvf pathtracer-linux-x86_64.tar.gz
cd pathtracer-linux-x86_64
# Run a sample scene
./run.sh Scenes/PBR.sceneor
git clone https://github.com/mallory-scotton/raytracer.git
cd raytracer
make
./raytracer Scenes/Dream.sceneSee the README for dependency installation and full scene configuration reference.