NoorRay
Real-time, cross-platform, minimal-dependency Pathtracer built with Vulkan, SLD3 and ImGui. Includes HWRT and compute shader backends.
Install / Use
/learn @Ka1serM/NoorRayREADME
NoorRay
My personal path tracer for exploring graphics programming and testing out new rendering techniques.
<img width="962" height="563" alt="image" src="https://github.com/user-attachments/assets/3a4894e1-7d78-478f-8da2-89a528f2d4d7" />Features
-
Multiple Backends: Implements path tracing with both Vulkan hardware-accelerated ray tracing (via the official Vulkan ray tracing extension) and a compute-shader fallback.
-
Path Tracing with MIS: Uses unidirectional path tracing with multiple importance sampling (MIS). Supports combined Lambertian diffuse and GGX specular materials.
-
Scene Loading: Supports loading scenes from Wavefront
.objfiles and Khronos.gltffiles. -
Material System: Full Disney PBR support with albedo, roughness, metallic, normal, transmission, opacity, and emission.
-
ImGui Interface: Provides a user interface to edit scene parameters, including camera settings, scene graph, and material properties in real-time.
-
Cross-Platform: Supports Windows, MacOS, and Linux.
Build Instructions
Prerequisites
- Vulkan SDK: Ensure the Vulkan SDK is installed and the
VULKAN_SDKenvironment variable is set. - CMake: Version 3.10 or higher.
- Compiler: A C++23-compatible compiler. MinGW is recommended (on Windows) due to usage of the
#embeddirective in the source code.
Clone the Repository
Clone the repository including its submodules:
git clone --recursive https://github.com/Ka1serM/VulkanToyPathtracer.git
cd VulkanToyPathtracer
Building the Project
-
Create a build directory:
mkdir build cd build -
Configure the project with CMake (MinGW + Release mode):
cmake .. -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -
Build the project:
cmake --build . --config Release -
Run the executable:
The output executable will be located in the
build/directory.
Shader Compilation
The shaders are compiled using glslc from the Vulkan SDK. A recompile.bat script is provided in the src/Shaders directory to automate this process.
-
Navigate to the shader directory:
cd src/Shaders -
Run the script:
recompile.batThis script compiles GLSL shaders to SPIR-V bytecode using
glslc.
Dependencies
This project uses the following libraries (included as submodules):
- SDL3
- Dear ImGui
- GLM
- portable-file-dialogs
- tinyobjloader
- tinygltf
- stb_image
Related Skills
node-connect
342.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.7kCommit, push, and open a PR
