All Projects → meirbon → rendering-fw

meirbon / rendering-fw

Licence: Apache-2.0 license
Rendering framework with rasterizers & path tracers implemented using Vulkan, OptiX & OpenGL

Programming Languages

C++
36643 projects - #6 most used programming language
GLSL
2045 projects
Cuda
1817 projects
CMake
9771 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to rendering-fw

LuisaRender
High-Performance Multiple-Backend Renderer Based on LuisaCompute
Stars: ✭ 47 (-41.98%)
Mutual labels:  metal, ray-tracing, optix, path-tracing
Nabla
OpenGL/OpenGL ES/Vulkan/CUDA/OptiX Modular Rendering Framework for PC/Linux/Android
Stars: ✭ 235 (+190.12%)
Mutual labels:  vulkan, optix, path-tracing
The Forge
The Forge Cross-Platform Rendering Framework PC Windows, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4, PS5, Switch, Quest 2
Stars: ✭ 2,710 (+3245.68%)
Mutual labels:  metal, vulkan, ray-tracing
GoldenSun
A path tracer based on hardware ray tracing
Stars: ✭ 20 (-75.31%)
Mutual labels:  ray-tracing, path-tracing
RavEngine
A fast, easy to use C++20 3D game library for modern computers
Stars: ✭ 122 (+50.62%)
Mutual labels:  metal, vulkan
ray-tracer
A simple ray tracing engine
Stars: ✭ 27 (-66.67%)
Mutual labels:  ray-tracing, path-tracing
Signed
Signed is a 3D modeling and construction language based on Lua and SDFs. Signed will be available for macOS and iOS and is heavily optimized for Metal.
Stars: ✭ 90 (+11.11%)
Mutual labels:  metal, path-tracing
wgpu-mc
Rust-based replacement for the default Minecraft renderer
Stars: ✭ 254 (+213.58%)
Mutual labels:  metal, vulkan
evplp
Implementation of Efficient Energy-Compensated VPLs using Photon Splatting (and various rendering techniques)
Stars: ✭ 26 (-67.9%)
Mutual labels:  optix, path-tracing
VkInline
A tool to make it easy to use Vulkan from Python. An interface for computation and off-screen rendering.
Stars: ✭ 16 (-80.25%)
Mutual labels:  vulkan, ray-tracing
mojoshader
Use Direct3D shaders with other 3D rendering APIs.
Stars: ✭ 91 (+12.35%)
Mutual labels:  metal, vulkan
smallpt
☀️ The Rosetta smallpt (small path tracing) project
Stars: ✭ 68 (-16.05%)
Mutual labels:  ray-tracing, path-tracing
spirv cross
Safe Rust wrapper around SPIRV-Cross
Stars: ✭ 75 (-7.41%)
Mutual labels:  metal, vulkan
bgfx-header-extension-library
Header-only effects and helper library for Bgfx to help you hit the ground running. Includes a bunch of post processing filters to complete common graphical tasks
Stars: ✭ 35 (-56.79%)
Mutual labels:  metal, vulkan
f3d
Fast and minimalist 3D viewer.
Stars: ✭ 791 (+876.54%)
Mutual labels:  gltf, fbx
virtualGizmo3D
Virtual GIZMO - 3D object manipulator / orientator, via mouse, with pan and dolly/zoom features
Stars: ✭ 36 (-55.56%)
Mutual labels:  metal, vulkan
LowLevelAPIDemo
Evergine Low-Level API samples.
Stars: ✭ 12 (-85.19%)
Mutual labels:  metal, vulkan
fresnel
Publication quality path tracing in real time.
Stars: ✭ 80 (-1.23%)
Mutual labels:  optix, path-tracing
rend3
Easy to use, customizable, efficient 3D renderer library built on wgpu.
Stars: ✭ 546 (+574.07%)
Mutual labels:  metal, vulkan
Mg
C# Vulkan interface/polyfill for WINDOWS and MacOS
Stars: ✭ 19 (-76.54%)
Mutual labels:  metal, vulkan

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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].