Skip to content
/ NRay Public

Rendering Engine with Vulkan backend for research in computer graphics

Notifications You must be signed in to change notification settings

noir-nik/NRay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NRay

Rendering Engine with Vulkan backend

Editor preview

The goal of this project is to build a foundation for research in high-performance computer graphics with aim on integrating neural networks into existing pipelines.

Features:

  1. Vulkan:

    • Fully automatic resource management with my helper library vulkan_backend
    • Support for GLSL, Slang and SPIR-V shaders
    • Bindless textures and buffers
    • Graphics pipeline library
    • MSAA
  2. Engine:

    • Physically-based rendering (PBR) with metallic-roughness pipeline
    • glTF 2.0 scene loading
    • Entity component system based on EnTT
    • Scene graph
    • Editor

Requirements

This project targets Vulkan 1.3 and C++20 with plans to remove headers entirely in favour of named modules and the C++23 std module. Currently it compiles successfully with recent releases of GCC, Clang and MSVC.

Dependencies:

Installation

  1. Clone the Repository:
git clone https://github.com/noir-nik/NRay.git
cd NRay
git submodule update --init --recursive
  1. Build the Project:
mkdir build
cd build
cmake ..
cmake --build . -j8
  1. Render a Scene:
./NRay <path-to-gltf>

You can inspect your scene using Maya-like controls.

Future plans:

  1. Ray Tracing: research of ray tracing acceleration methods including BVH traversal with machine learning.
  2. Differentiable rendering: optimization of materials and textures with the help of Slang automatic differentiation.
  3. Neural rendering of meshes and volumes and replacing PBR lighting functions with neural networks.

License

This project is licensed under the MIT License.


Asset used in preview was created by me using industry standard PBR metallic-roughness pipeline

About

Rendering Engine with Vulkan backend for research in computer graphics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published