This project is a GPU-accelerated path tracing engine built with CUDA and Vulkan. It is still in the early stages of development, in addition to the core rendering system, it also includes a scene system, a camera system, and a UI system. It is built with the intention of being a learning experience for me, and to serve as a foundation for future projects.
- Real-time path tracing using CUDA
- Physically based rendering (PBR) with Cook-Torrance BRDF
- Support for diffuse and metallic materials with configurable properties:
- Albedo
- Roughness
- Metallic factor
- Fresnel reflection (F0)
- Multiple importance sampling for efficient light sampling
- Cosine weighted hemisphere sampling
- GGX microfacet distribution
- Accumulation buffer for progressive refinement
- Sphere primitive support with configurable:
- Position
- Radius
- Material assignment
- Point light system with:
- Position
- Color
- Intensity
- Interactive camera with:
- WASD movement
- Mouse look
- FOV control
- Near/far clip planes
- Hybrid rendering pipeline using Vulkan for display and CUDA for compute
- Multi-threaded ray direction computation
- ImGui-based UI for real-time parameter tuning
- GLFW windowing system
- GLM math library integration
- Parallel ray tracing on GPU
- Configurable bounce depth
- Frame accumulation for noise reduction
- Real-time FPS counter and render time display
Currently only supports Windows 10/11 with Visual Studio 2022, to be tested on Linux.
Requires:
- CUDA Toolkit
- Vulkan SDK
- GLFW
- GLM
- ImGui
-
Clone recursively:
git clone --recursive https://github.com/1neskk/Ataraxia
-
Run the dependency installer if needed:
Scripts/dependencies.bat
-
Run the build script:
Scripts/build.bat
-
Open the resulting solution file:
cd build && start Ataraxia.sln
The engine provides an interactive viewport where you can:
- Move the camera using WASD keys and right mouse button
- Adjust material properties in real-time
- Configure light parameters
- Toggle accumulation for higher quality renders
- Reset frame accumulation when needed
- Monitor performance metrics
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a pull request.