Skip to content

v1.0.0

Latest

Choose a tag to compare

@mallory-scotton mallory-scotton released this 02 Jun 07:01

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 UniquePtr arrays 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.scene

or

git clone https://github.com/mallory-scotton/raytracer.git
cd raytracer
make
./raytracer Scenes/Dream.scene

See the README for dependency installation and full scene configuration reference.