Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/graphics-projects/quantumforge

In this project, I created my own graphics framework, with opengl c++. You can use it as a base library for any opengl project
https://github.com/graphics-projects/quantumforge

graphics-framework maths opengl physics

Last synced: 19 days ago
JSON representation

In this project, I created my own graphics framework, with opengl c++. You can use it as a base library for any opengl project

Awesome Lists containing this project

README

        

# QuantumForge

QuantumForge is an advanced OpenGL-based graphics engine built for modern game development and interactive 3D applications. It is designed to be highly modular, efficient, and developer-friendly, offering a complete suite of features for rendering, physics, sound, UI, and more.

## Table of Contents

- [Features](#features)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Usage](#usage)
- [Project Structure](#project-structure)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)

## Features

- **Real-time Rendering:** Supports high-performance real-time 3D rendering using OpenGL.
- **Physics Engine:** Integrated physics system for realistic object interaction.
- **Audio Engine:** 3D sound integration using OpenAL.
- **Entity-Component System:** Efficient entity management powered by EnTT.
- **UI System:** Built-in ImGui and custom widgets for creating interactive interfaces.
- **Custom Shader System:** Easily manage and create OpenGL shaders.
- **Model Loading:** Assimp support for loading a wide range of 3D model formats.
- **Scene Management:** Organize and render complex scenes efficiently.
- **Cross-Platform:** Supports Windows, Linux, and macOS.

## Getting Started

### Prerequisites

Before you begin, ensure you have the following installed:

- C++17 or higher
- OpenGL 3.3 or higher
- makefile
- GLFW
- GLAD
- glm
- stb
- json
- Assimp
- FreeType (for text rendering)
- OpenAL (for audio)
- ImGui and ImGuizmo

### Installation

1. Clone the repository:
```bash
git clone https://github.com/Graphics-Project/QuantumForge.git
cd QuantumForge
```

2. Create a build directory and compile:
```bash
mkdir build
cd build
make
```

3. Run the application:
```bash
./QuantumForge
```

## Usage

Once the engine is compiled, you can start developing your 3D applications. The engine supports custom shaders, model loading, and scene management right out of the box.

### Example Code

Here's a simple example to load a 3D model and render it:

```cpp
#include
#include
#include

int main() {
vega::Window window(1280, 720, "QuantumForge Demo");
vega::Renderer renderer;

vega::Model model("path/to/your/model.obj");

while (!window.shouldClose()) {
window.processInput();
renderer.render(model);
window.swapBuffers();
}

return 0;
}