First Post

Hello World, today is day 45 of development of the engine for Project Aigis. I decided to start this blog to organize my thoughts, and dump some pseudocode.

The engine for Project Aigis currently supports:

  • 2D Sprites
  • Raycasting for sprites
  • Loading models via ASSIMP
  • GUI and True Type via NanoGUI
  • A rendering engine
  • A core engine
The rendering engine is composed of the following:

Scene: Batches all vertex and matrix information, calls relevant methods for binding and rendering.
Shader: Loads and compiles a GLSL file.
Model: Loads a wavefront model, loads its texture, indices, and processes their nodes.
Mesh: Draws and renders the model
TextureManager: Loads and binds a texture using Sean Barrett's stb_image.h
VertexBuffer: Generates and binds VAOs, VBOs, EBOs, respective attributes (including instancing).
RenderingPipeline: Renders all objects.

The rendering engine's UML diagram is as follows:

The black arrows depict composition. Currently, the rendering engine does not support, but plans to add:

  1. 2D sprite animation
  2. Remove object vectors and replace them with matrices. The core engine should handle vectors.
  3. Updating an object's matrix based on some event relayed through the core engine.

Comments

Popular posts from this blog

Core Engine Part 1

Core Engine Part 2