Kuafu is real-time ray tracing renderer implemented using Vulkan. Kuafu supports physically based materials (PrincipledBSDF) and various realistic light settings. The project is developed as a rendering backend for the high-performance simulator SAPIEN. It can also serve as a standalone renderer / scene builder.
The name Kuafu (夸父) is from the Chinese mythology Kuafu chasing the Sun (夸父追日).
New: Active Light Sensing Support Now Added
Kuafu now features full active light sensing support. A Demo simulating Intel RealSense D415:
TODO
mkdir build && cd build && cmake .. && make kuafu_example -j && ./kuafu_example;
-
Physically based materials (PrincipledBSDF / Disney PBR)
- Diffuse
- Diffuse texture
- Specular
- Specular texture
- Roughness
- Oren–Nayar reflectance
- Roughness Metallic texture
- Roughness texture
- Transmission
- Transmission texture
- Refraction w/ roughness
- Caustics
- Align behavior with Blender
- Beer's Law & Fresnel
- Emission
- Align behavior with Blender
- Check numerical issues
- Normals texture
- Diffuse
-
Realistic Lights
- Directional Light (Sun / Distant)
- Point Light
- Spot Light
- Active Light
- Area Light
- Shadow ray traced area light
- Environment Map
- Load from images
-
Pipeline
- Image download
- Lazy image downloads
- Fix validation error when downloading
- Async rendering
- Separate scene from Renderer
- Depth download
- Segmentation download
- Offscreen rendering
- Online shader compilation
- (Maybe) Use libgls
- Hide render
- No rebuilding Blas
- As an instance property
- Image download
-
Import / Export
- Assimp scene loader
- Embedded materials
- Async loading
- Load full glTF
- Check with blender glTF
- Note: Blender (2.93) does not export Specular, IOR and Transmission
- Check with blender glTF
- Load
.blend
- Check
.obj
appearance with blender
-
Viewer
- Improve mouse control
- Fix segfault / vk Exceptions when resizing in SAPIEN
This project itself is licensed under the MIT License. A large portion of code in this repository is derived from open source projects e.g. Rayex, vkCore and vk_raytracing_tutorial_KHR. Please DO NOT remove license information in the headers. We sincerely thank Christian Hilpert for their substantial work on Rayex, which is the cornerstone of this project.