Skip to content

WillisMedwell/Graphics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Portable Graphics Engine

An experimental project exploring a range of tools, techniques, and topics related to graphics (OpenGL). Using Emscripten, the project is also portable to the web. The repo is broken into several projects:

  • Engine is the core rendering and window management.
  • Demos is a test project for whatever feature I'm working on.
  • Test is composed of unit and integration tests.

Check out the online tests here!

Features
  • 3D-Model Loading (using Assmip)
  • 3D-Spatial Audio (using OpenAl)
  • Font Batch Rendering (using dynamic font atlas generation with FreeType)
  • Scheduler to dipatch basic tasks
Building

Prerequisites

To build this project for both native and web platforms, you need to install the following tools:

  1. Install Git

  2. Install Vcpkg

    • vcpkg is a C++ Library Manager for Windows, Linux, and MacOS.
    • Follow the instructions on the vcpkg GitHub repository to install it.
  3. Install Emscripten SDK

    • Emscripten is an LLVM-to-WebAssembly compiler.
    • Installation instructions can be found on the Emscripten website.
  4. Install GCC/Clang/MSVC

    • These are popular C++ compilers.
    • GCC and Clang can be installed on most Linux distributions and MacOS.
    • MSVC (Microsoft Visual C++) can be installed as part of Visual Studio on Windows. For Windows, you can download Visual Studio from Microsoft's website.
  5. Install Ninja

Make sure all these tools are correctly installed and configured in your system's PATH before proceeding with the project build.


Windows

  1. You need to change the variables in the build-native.bat and build-web.bat scripts.
    • These variables can sometimes not be set properly by Emscripten and Vcpkg so this is the easiest solution.
    • (Alternatively you could add them to the system's path) then remove them.
  2. Run build-native.bat
  3. Run build-web.bat

Libraries & Licenses
  • OpenGL Mathematics (GLM). Which is licensed under The Happy Bunny License and the MIT License.
    See LICENSE_GLM for more details.

  • Assimp Model Import Library. Which is licensed under the BSD License.
    See LICENSE_ASSIMP for more details.

  • Google Test Framework (gtest). Which is licensed under a revised BSD 2-Clause License.
    See LICENSE_GTEST for more details.

  • EnTT Entity Component System Library. Which is licensed under the MIT License.
    See LICENSE_ENTT for more details.

  • Bullet Physics SDK (bullet3). Which is licensed under the zlib License.
    See LICENSE_BULLET3 for more details.

  • LodePNG. Which is licensed under the zlib License.
    See LICENSE_LODEPNG for more details.

  • GLFW (glfw3). Which is licensed under the zlib/libpng License.
    See LICENSE_GLFW for more details.

  • GLEW (glew). Which is licensed under the Modified BSD License, the Mesa 3D License (MIT License), and the Khronos License (MIT License).
    See LICENSE_GLEW for more details.

Releases

No releases published

Packages

No packages published

Languages