/EagleEngine

Eagle Engine is a mobile and web-first rendering engine, Graphics API uses Vulkan and WebGL/WebGPU.

Primary LanguageC++MIT LicenseMIT

Eagle Logo

EagleEngine

Eagle Engine is a mobile and web-first rendering engine, Graphics API uses Vulkan and WebGL/WebGPU. Developed with C++14.

Architecture diagram

We organize and submit the model data of the scene through the Render Graph.

  FRAME LAYER                RENDER PIPELINE                             GRAPHICS
┌-------------┐             ┌---------------┐                          ┌----------┐
| SceneGraph  | ------------|               ├------------------------> |          |
| Components  |             |  SceneCulling |                          |          |
| Models      |             |               |                          |  GFX API |
| SubModels   |             |  RenderGraph  |                          |          |
| ......      | <---------- |               ├<------------------------ |          |
└-------------┘             └---------------┘                          └----------┘
    |             
    |               APPLICATION              
    |     ┌----------------------------┐
    └---->|  EagleApplication/Renderer |
          └----------------------------┘

Cloning

This repository contains submodules for external dependencies, so when doing a fresh clone you need to clone recursively:

git clone git@github.com:GengineJS/EagleEngine.git --recurse-submodules

Existing repositories can be updated manually:

git submodule init
git submodule update

Assets

Many examples require assets from the asset pack that is not part of this repository due to file size. A python script is included to download the asset pack that. Run

python download_assets.py

from the root of the repository after cloning or see this for manual download.

Building

Currently our supported platforms include windows, macos, ios and android.

Windows

Use the provided CMakeLists.txt with CMake to generate a build configuration for your favorite IDE or compiler, e.g.:

cmake -G "Visual Studio 16 2019" -A x64

Building on Android is done using the Gradle Build Tool:

cd android
./gradlew assembleDebug

This will download gradle locally, build all samples and output the apks to android\examples\bin.

On Windows execute gradlew.bat assembleDebug.

If you want to build and install on a connected device or emulator image, run gradle installDebug instead.

Building for iOS and macOS is done using the examples Xcode project found in the xcode directory. These examples use the MoltenVK Vulkan driver to provide Vulkan support on iOS and macOS, and require an iOS or macOS device that supports Metal. Please see the MoltenVK Examples readme for more info on acquiring MoltenVK and building and deploying the examples on iOS and macOS.

MacOS

Use the provided CMakeLists.txt with CMake to generate a build configuration for your favorite IDE or compiler, e.g.:

cmake -G "Xcode"