This is an advanced graphics rendering project built on top of the Walnut App Template. It utilizes the Vulkan API to produce high-quality ray-traced graphics. Unlike the basic Walnut example, this project keeps Walnut as an external submodule, ideal for building scalable and complex applications.
- Clone this repository.
- Customize the
premake5.lua
andRayTracing/RayTracingRenderer/premake5.lua
files as needed. - Run
scripts/Setup.bat
to generate Visual Studio 2022 solution/project files. - Your main app is located in the
RayTracing/RayTracingRenderer/src/WalnutApp.cpp
directory. Start modifying this project to suit your needs.
- Ray and Sphere Calculations
- Sphere Rendering
- Ray Casting
- Lighting and Shading
- Interactive 3D Camera System
- Multi-Object Rendering
- Ray Tracing Pipeline
- Physically Based Materials
- Path Tracing
- Multithreading
- Performance Optimization
- Emissive Materials
- Fast Random Generation
- Enable/Disable Accumulation for Noise
- Change Materials and Transforms of Objects
- Vulkan
- C++
- Walnut as an external submodule
-
Development Path: This project originated as a CPU-based renderer and is now transitioning to leverage GPU capabilities.
-
Future Considerations: Techniques like NVIDIA DLSs (Deep Learning Super Sampling) or AI Sampling may be integrated in the future.
-
Compatibility: This project is based on the Walnut App Template and can serve as a foundational base for future game engines.
Transition to full GPU-based rendering is currently underway to unlock next-level performance and quality.