This project is a partial implementation of the RadFoam paper, featuring a real-time ray tracing renderer built with the Vulkan SDK. It supports user navigation and novel view synthesis, with a focus on familiarizing myself with Vulkan and improving rendering performance.
- Real-Time Ray Tracing: Built using Vulkan and GLSL for efficient rendering
- User Navigation: Intuitive keyboard controls for 6-DOF scene exploration
- High Performance: Optimized for fast rendering speeds (200+ FPS)
- Platform Support: Currently limited to Windows Vulkan implementations
- xmake build system
- Vulkan SDK 1.3+
- GPU with Vulkan 1.3 support
git clone https://github.com/lzlcs/vulkan-radfoam-viewer.git
cd vulkan-radfoam-viewer
# Run in your RadFoam environment
python convert.py -c [path/to/checkpoint]/config.yaml
▸ Input: RadFoam checkpoint directory config file
▸ Output: sh_scene.ply
with corrected color data
xmake b
xmake r radfoam-vulkan-viewer [path/to/checkpoint]/sh_scene.ply
Movement | Rotation |
---|---|
W - Forward |
J - Roll Left |
S - Backward |
L - Roll Right |
A - Left |
I - Tilt Up |
D - Right |
K - Tilt Down |
Q - Ascend |
U - Rotate CW |
E - Descend |
O - Rotate CCW |
- 🔄 Dynamic swapchain recreation for window resizing
- 🎛️ Enhanced camera control parameters
- 📱 Cross-platform support (Android/MacOS Metal)
- 🧩 Modular architecture refactoring
- 🎨 Advanced material system integration
- Inspired by RadFoam research
- Built with Vulkan Memory Allocator
- Built with GLFW
This project is licensed under the MIT License - see the LICENSE file for details.
For questions/suggestions:
lzlcs | GitHub Issues