Skip to content

jetd1/kuafu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kuafu: A Real-Time Ray Tracing Renderer

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.

Kuafu Rendering Quality (example: eSpheres)

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:

Active Light Sensing Demo (example: eActive)

Compilation

TODO

Examples

mkdir build && cd build && cmake .. && make kuafu_example -j && ./kuafu_example;

Features & TODOs

  • 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
  • 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
  • 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
    • Load .blend
    • Check .obj appearance with blender
  • Viewer

    • Improve mouse control
    • Fix segfault / vk Exceptions when resizing in SAPIEN

Acknowledgement

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.

About

Real-Time Ray Tracer with Vulkan

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages