Rendering Engine supports two application development workflows and a separate runtime environment.
Dev Mode
Dev Mode uses the Rendering Engine source tree directly. It is intended for both engine development and application development when full access to the engine source code is useful.
In this mode, developers can:
- modify and rebuild the Rendering Engine;
- build TestApplications and ContentExamples from the same source tree;
- create applications that evolve together with engine features;
- debug through both application and engine code.
Dev Mode requires the complete Rendering Engine build environment, including the engine's third-party implementation dependencies.
SDK User Mode
SDK User Mode uses the precompiled Rendering Engine SDK.
It is intended for applications that consume the engine as a binary dependency and do not need to modify or debug the engine implementation.
SDK users require a C++ toolchain, CMake, Python, the Vulkan SDK, and the precompiled Rendering Engine SDK. The engine's implementation dependencies are already included in the precompiled Rendering Engine library.
Windows
Dev Mode
Requirements Visual Studio, CMake, Python
- Install vcpkg:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg.exe integrate install
- Set the VCPKG_ROOT environment variable to the folder where you cloned vcpkg:
Variable name: VCPKG_ROOT
Variable value: Path\To\vcpkg
- Install required libraries:
.\vcpkg install glm nlohmann-json gtest
- Download and install the Vulkan SDK
- Set the glslc environment variable to point to the glslc.exe binary included in the SDK: Variable name:
glslc Variable value: Path\To\glslc.exe
- Download the source code:
git clone git@github.com:alexanderobzherin/RenderingEngine.git
cd RenderingEngine
- Prepare static dependencies
.\vcpkg install --triplet x64-windows-static-md glfw3 libpng libjpeg-turbo freetype harfbuzz assimp
- Build engine
Run
SDK User Mode
Requirements Visual Studio, CMake, Python
- Download latest release from
Rendering Engine SDK Releases
- Here you can build content examples such as
ContentExamples\MultilingualTextDemo\build_project.bat
and/or create new projects. See: Project Creation Guide
Ubuntu
Dev Mode
- Install build tools and libraries:
sudo apt update
sudo apt install git cmake build-essential nasm pkg-config libglm-dev libgtest-dev nlohmann-json3-dev chrpath
- Install the Vulkan SDK Note: As of May 2025, LunarG has discontinued updating Vulkan SDK packages in the official Ubuntu repositories. The following approaches are now officially recommended:
Option 1: Install from tarball (universal, for any Linux/Unix-like system) See instructions here: https://vulkan.lunarg.com/doc/sdk/1.4.313.0/linux/getting_started.html
Option 2: Install via LunarG APT repository (recommended for Ubuntu)
wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-noble.list http://packages.lunarg.com/vulkan/lunarg-vulkan-noble.list
sudo apt update
sudo apt install vulkan-sdk
- Download the source code:
git clone git@github.com:alexanderobzherin/RenderingEngine.git
cd RenderingEngine
- Prepare static dependencies
The Rendering Engine provides a helper script that downloads, builds and installs all required implementation libraries automatically.
Run
./RenderingEngine/Scripts/build_static_dependencies_unix.sh
- Build engine
Run
./build_engine.sh --engine-only
SDK User Mode
- Install build tools and libraries:
sudo apt update
sudo apt install git cmake build-essential nasm pkg-config chrpath
- Install the Vulkan SDK Note: As of May 2025, LunarG has discontinued updating Vulkan SDK packages in the official Ubuntu repositories. The following approaches are now officially recommended:
Option 1: Install from tarball (universal, for any Linux/Unix-like system) See instructions here: https://vulkan.lunarg.com/doc/sdk/1.4.313.0/linux/getting_started.html
Option 2: Install via LunarG APT repository (recommended for Ubuntu)
wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-noble.list http://packages.lunarg.com/vulkan/lunarg-vulkan-noble.list
sudo apt update
sudo apt install vulkan-sdk
- Download latest release from
Rendering Engine SDK Releases
Here you can build content examples such as
ContentExamples/MultilingualTextDemo/build_project.sh
and/or create new projects. See: Project Creation Guide
FreeBSD
Dev Mode
- Install build tools and libraries:
sudo pkg install pkgconf glm googletest vulkan-loader vulkan-headers shaderc nlohmann-json chrpath
- Download the source code:
git clone git@github.com:alexanderobzherin/RenderingEngine.git
cd RenderingEngine
- Prepare static dependencies
The Rendering Engine provides a helper script that downloads, builds and installs all required implementation libraries automatically.
Run
./RenderingEngine/Scripts/build_static_dependencies_unix.sh
- Build engine
Run
./build_engine.sh --engine-only
SDK User Mode
- Install build tools and libraries:
sudo pkg install pkgconf glm vulkan-loader shaderc chrpath
- Download latest release from
Rendering Engine SDK Releases
Here you can build content examples such as
ContentExamples/MultilingualTextDemo/build_project.sh
and/or create new projects. See: Project Creation Guide
Application Deployment
Applications built with the Rendering Engine are intended to have a minimal runtime footprint.
By default, user applications link dynamically against the Rendering Engine shared library.
Typical runtime requirements are:
- RenderingEngine.dll / libRenderingEngine.so
- Vulkan loader and compatible graphics driver
- zlib (Linux and FreeBSD)
- Standard operating-system runtime libraries
For more details see: