GitHunt
ME

meirbon/rendering-fw

Rendering framework with rasterizers & path tracers implemented using Vulkan, OptiX & OpenGL

Rendering FW

A rendering framework inspired by lighthouse2. This framework
uses a very similar architectural design, but was re-implemented from the ground up. The Vulkan RTX core
for lighthouse2 was developed by me and the Vulkan RTX renderer in this
project shares most of its code with the Vulkan RTX rendercore of lighthouse2.

screenshot0
screenshot0

Building

This project requires the following dependencies:

I recommend using vcpkg as it can provide all the libraries listed above.
To install the dependencies for this project, run: vcpkg install glew glfw3 freeimage vulkan-memory-allocator assimp embree3 cpp-taskflow imgui tinygltf after installing vcpkg.
This project has only been tested on 64 bit platforms. You may be able to get certain renderers working on 32 bit architectures but it is not guarenteed.

Features

  • Overall performance-oriented renderers
  • gLTF with animations
  • Anything Assimp supports including animation through file formats like Collada and FBX
  • Dynamic lighting, point lights, spot lights, directional lights & area lights

Available renderers:

  • Vulkan RTX path tracer
  • OptiX 6.5 RTX path tracer
  • OpenGL Renderer
  • CPU ray tracer using Embree
  • CPU ray tracer using custom BVH implementation (relatively fast as it uses simd packet traversal, but Embree is still a lot faster)
  • CUDA (non-RTX) Path tracer using custom BVH implementation

Planned renderers:

  • Vulkan PBR Rasterizer

Frequent problems

  • If you're running Linux/MacOS and a renderer cannot open/find a specific
    shared library, set LD_LIBRARY_PATH=. as an environment variable on launch.
  • On initial launch, the framework will log 'Camera file "camera.bin" does not exist'.
    This is expected as the file indeed does not (yet) exist. The camera gets saved once the
    program exits and gets loaded back in when relaunching the framework. If the file does not exist,
    a camera with default parameters gets loaded.

Languages

C++91.0%GLSL4.5%Cuda2.5%CMake1.3%C0.7%

Contributors

Apache License 2.0
Created August 20, 2019
Updated November 11, 2025