Skip to content

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

License

Notifications You must be signed in to change notification settings

jnyfah/RendererEngine

 
 

Repository files navigation

[Engine Build and Tests]

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

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
  • Install DOTNET SDK 6

  • Install ClangFormat through Homebrew:

    brew update
    brew install clang-format@18

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

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 89.3%
  • PowerShell 3.5%
  • C# 2.3%
  • C 2.2%
  • GLSL 1.5%
  • CMake 1.2%