Pathtracer
Backend Development
This project is a sophisticated path tracer developed as a second-year student project at EPITECH. It is built using GLSL and leverages physically-based rendering techniques directly within fragment shaders for high-fidelity image synthesis on the GPU. The renderer is founded on established ray tracing principles, serving as both a practical implementation of computer graphics theory and an educational exploration of modern rendering. It is designed with a modular, extensible plugin-based architecture that supports both real-time interaction and high-quality offline rendering.
Client:
Epitech
Role:
Project Leader
Year:
2025
Challenge
The primary challenge of this project was to design and implement a feature-rich, physically-based path tracer within the constraints of an academic timeline. This involved overcoming several complex technical hurdles. A significant focus was on performance optimization, balancing the computational expense of path tracing with the need for reasonable render times by implementing a two-level Bounding Volume Hierarchy for efficient instancing. Another key challenge was the faithful implementation of physically-based rendering, including the Disney BSDF model and multiple importance sampling, to accurately simulate a wide range of materials and complex lighting. Furthermore, designing a modular and extensible system architecture was crucial to support various plugins for windowing, GUI, and asset formats. Finally, integrating a vast set of geometric primitives, versatile lighting options, and post-processing features like denoising into a single cohesive framework presented a considerable integration challenge.
Objective
The main objective of this project was to develop a comprehensive and robust ray tracing engine that demonstrates a deep understanding of modern computer graphics techniques. A central goal was to implement a physically-based path tracer capable of producing photorealistic images with accurate global illumination, soft shadows, and complex material interactions. This had to be paired with the objective of achieving high performance through GPU-based rendering, advanced acceleration data structures, and optimization techniques like tile-based rendering. The project also aimed to create a flexible and extensible architecture through a plugin system, allowing for the easy integration of new features and libraries. To ensure wide applicability, it was essential to support a broad range of 3D assets and scene descriptions, including industry-standard formats. Lastly, the project sought to provide an interactive user experience with real-time scene manipulation and material editing to facilitate artistic exploration and rapid iteration.
Results
The project successfully culminated in a powerful and versatile ray tracing engine capable of generating stunning, high-quality visuals. The results are evident in the photorealistic renders produced, which showcase advanced capabilities like architectural visualization, character rendering with subsurface scattering, and automotive rendering with realistic reflections. The engine's advanced material and lighting simulation, powered by the Disney BSDF and image-based lighting, allows for the rendering of diverse and challenging materials. The system also demonstrates robust handling of complex geometry, efficiently rendering high-detail meshes and intricate fractals. The final output is a full-featured application with a flexible scene configuration system, a modular plugin architecture, and real-time interactive controls, making it a complete and highly capable rendering solution. The integration with OpenImageDenoise further enhances its utility by significantly improving render times.