a Vulkan real-time rendering engine (Windows and Linux).

Overview

Luz Engine

License: MIT Windows Ubuntu

A Vulkan engine that I'm developing to study and implement modern rendering techniques used by AAA games.

Features

  • PBR Shading with metallic, roughness, normal, ambient occlusion and emission
  • Vulkan bindless resources
  • Scene hierarchy
  • Asynchronous glTF and OBJ model loading
  • Viewport camera with Perspective and Orthographic projections and Fly and Orbit controls
  • Widgets for adjusting Vulkan settings at runtime

Gallery

  • PBR Shading and glTF models pbr

  • Textures drag and drop dragndrop

  • Asynchronous model loading async

  • Viewport camera with Perspective and Orthographic projections and Fly and Orbit controls cameras

Requirements

For Linux

This projects uses GLFW library, to compile it under Linux with X11 (like the default Ubuntu 20.04) you will need:

sudo apt-get install xorg-dev

If you are using another window manager (like Wayland) you can check the dependencies here.

Build and Run

git clone --recursive https://github.com/hadryansalles/Luz
cd Luz
mkdir build
cd build
cmake ..
  • GCC or Clang:
make run -j
  • Visual Studio: open build/Luz.sln and compile/run the project Luz.

References and Credits

  • GLFW used to open the application window
  • glm used as the math library
  • ImGui used to make the user interface
  • ImGuizmo used to create 3D gizmos
  • spdlog used as the logging library
  • stb_image used to load image files
  • tiny_obj_loader used to load wavefront .obj files
  • optick used to profile the engine
You might also like...
A crude untested example showing how to retrieve and display images from multiple cameras with OpenCV and wxWidgets.

About wxOpenCVCameras is a crude untested example of how to retrieve and display images from multiple cameras, using OpenCV to grab images from a came

Generate Height map with Generator (OpenGL and imgui) and Construct Splat Map with generated height map using Algorithm
Generate Height map with Generator (OpenGL and imgui) and Construct Splat Map with generated height map using Algorithm

Generate Height map with Generator (OpenGL and imgui) and Construct Splat Map with generated height map using Algorithm(DPS, BFS, Gradient Descent ... etc) . At Renderer, with height map and blend map which are generated in front of this stage, render high quality terrain with OpenGL

PNG encoder and decoder in C and C++.

PNG encoder and decoder in C and C++, without dependencies

An image and texture viewer for tga, png, apng, exr, dds, gif, hdr, jpg, tif, ico, webp, and bmp files
An image and texture viewer for tga, png, apng, exr, dds, gif, hdr, jpg, tif, ico, webp, and bmp files

An image and texture viewer for tga, png, apng, exr, dds, gif, hdr, jpg, tif, ico, webp, and bmp files. Uses Dear ImGui, OpenGL, and Tacent. Useful for game devs as it displays information like the presence of an alpha channel and querying specific pixels for their colour.

A bunch of functions and helpers classes for D3D12, and DXGI libraries

TypedD3D A bunch of functions and helpers classes for D3D12, and DXGI libraries Namespaces Helpers A bunch of helper functions that interface more wit

Reading, writing, and processing images in a wide variety of file formats, using a format-agnostic API, aimed at VFX applications.

README for OpenImageIO Introduction The primary target audience for OIIO is VFX studios and developers of tools such as renderers, compositors, viewer

Tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG.

TinyEXIF: Tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG Introduction TinyEXIF is a tiny, lightweight C++ library for parsing the metada

Video++, a C++14 high performance video and image processing library.

Video++ Video++ is a video and image processing library taking advantage of the C++14 standard to ease the writing of fast video and image processing

A computationally efficient and convenient toolkit of iterated Kalman filter.
A computationally efficient and convenient toolkit of iterated Kalman filter.

IKFoM IKFoM (Iterated Kalman Filters on Manifolds) is a computationally efficient and convenient toolkit for deploying iterated Kalman filters on vari

Owner
Hadryan Salles
Computer Engineering student and Graphics enthusiast.
Hadryan Salles
lunasvg is a standalone SVG rendering library in C++

lunasvg is a standalone SVG rendering library in C++

Nwutobo Samuel Ugochukwu 573 Jan 6, 2023
Slate is a bitmap editor available for Linux, Windows and Mac.

Slate is a bitmap editor available for Linux, Windows and Mac.

Mitch Curtis 943 Dec 30, 2022
A toolkit for making real world machine learning and data analysis applications in C++

dlib C++ library Dlib is a modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ to solve real worl

Davis E. King 11.6k Dec 31, 2022
The minimal opencv for Android, iOS and ARM Linux

opencv-mobile ✔️ This project provides the minimal build of opencv library for the Android, iOS and ARM Linux platforms. ✔️ We provide prebuild binary

null 992 Dec 27, 2022
A GIF art engine that will allow you to generate multi-layer GIFs from single GIFs as layers.

A GIF art engine that will allow you to generate multi-layer GIFs from single GIFs as layers. All the code in this repository has been written by me in c++, inspired by the generative art engine of HashLips that does not support GIFs as layers. The problem arose from my and my teamleader's need to generate animated images and then GIFs, in the same way as HashLips generated static images.

Andre 63 Jan 2, 2023
Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Aaron Feng 8.7k Jan 7, 2023
C++ image processing and machine learning library with using of SIMD: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX-512, VMX(Altivec) and VSX(Power7), NEON for ARM.

Introduction The Simd Library is a free open source image processing and machine learning library, designed for C and C++ programmers. It provides man

Ihar Yermalayeu 1.7k Jan 5, 2023
CGIF, A fast and lightweight GIF encoder that can create GIF animations and images

CGIF, a GIF encoder written in C A fast and lightweight GIF encoder that can create GIF animations and images. Summary of the main features: user-defi

Daniel Löbl 75 Dec 28, 2022
libspng is a C library for reading and writing PNG format files with a focus on security and ease of use.

libspng (simple png) is a C library for reading and writing Portable Network Graphics (PNG) format files with a focus on security and ease of use.

Randy 570 Dec 29, 2022