JeanPhilippeKernel / RendererEngine

3D Renderer Engine builds with Vulkan and C++ 20

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ZEngine Windows Build ZEngine Linux Build ZEngine macOS Build

Discord Server

ZEngine

ZEngine is an open-source 3D rendering engine written in C++ and using Vulkan as graphic API. It can be used for activities such as:

  • Gaming
  • Scientific computation and visualization

Supported Platforms:

  • Windows
  • macOS (Under active revision as of today)
  • Linux (Debian or Ubuntu are recommended systems) (Under active revision as of today)

Setup

Before building, make sure your setup is correct :

Setup Window machine

  • Install Visual Studio 2022 Community or Professional, make sure to add "Desktop development with C++".
  • Install PowerShell Core
  • Install Python
  • Install CMake 3.20 or later.
  • Install DOTNET SDK 6

Setup macOS machine

  • Install Xcode from the App Store.
  • Install Homebrew from a terminal:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • Install CMake through Homebrew :
    brew update
    brew install cmake
  • Install NuGet through Homebrew :
    brew update
    brew install nuget
  • Install PowerShell Core through Homebrew:
    brew update
    brew install --cask powershell

Building the engine & launcher

  1. Start Powershell Core and make sure that you can run CMake, You can type cmake --version to simply output the current CMake version installed.
  2. Change directories to the location where you've cloned the repository.
  3. Run the following command depending on the configuration:
    • Debug version : .\Scripts\BuildEngine.ps1 -Configurations Debug -RunBuilds $True
    • Release version : .\Scripts\BuildEngine.ps1 -Configurations Release -RunBuilds $True

Building the launcher only

To only build the Launcher only, you can specify -LauncherOnly which will skip building the engine :

  • Debug version : .\Scripts\BuildEngine.ps1 -Configurations Debug -RunBuilds $True -LauncherOnly
  • Release version : .\Scripts\BuildEngine.ps1 -Configurations Release -RunBuilds $True -LauncherOnly

Important Notes:

  • Setting -RunBuilds to $false will result to only generate the build directory.
  • Omitting -Configuration will result to generate and build for both Debug and Release versions.
  • Specifying -ForceShaderRebuild option will force the engine's shaders rebuilding.

Dependencies

The project uses the following dependencies as submodules :

  • GLFW for window creation and user input management for Windows, Linux, and MacOS,
  • GLM for functions and mathematical calculations,
  • STB for loading and manipulating image files for textures.
  • ImGUI for GUI components and interaction.
  • SPDLOG for logging
  • EnTT for entity component system
  • Assimp for managing and loading asset 2D -3D models
  • yaml-cpp for parsing and emitting YAML files

About

3D Renderer Engine builds with Vulkan and C++ 20

License:MIT License


Languages

Language:C++ 89.8%Language:PowerShell 3.3%Language:C# 2.2%Language:C 2.0%Language:GLSL 1.5%Language:CMake 1.2%