Brenta Engine 1.1
Loading...
Searching...
No Matches
Home

Introduction

Hi and welcome to the Brenta Engine documentation! Brenta Engine is a simple 3D engine written in modern C++/OpenGL using the Entity Component System architecture. The engine was created by Giovanni Santini in the summer of 2024, the name is inspired by the Brenta Dolimites in the Italian Alps.

The Submodules

The Engine is composed of many different submodules, each one with its own purpose. The submodules are mostly independent from each other so you can use any of the submodules you are interested into. I said mostly because all the submodules that work in a graphical environment need the opengl context from the Screen.

The main submodules are:

In addition, the engine has multiple classes to provide more functionalities. Those are mostly wrappers around opengl primitives or handy classes providing utilities. Classes with many variables also provide a Builder to nicely iniitalize them.

The classes are:

Graphics

The engine uses OpenGL for the graphics and provides classes to interact with opengl.

The engine natively provides the following features:

  • Color Blending
  • Cull Face
  • Multisample
  • Depth Test
  • MSAA
  • Vsync
  • obj model loading
  • Text rendering
  • Lighting: Ambient, Diffuse and Specular lighting.
  • Texture atlas: texture atlas support.
  • GPU Particles: particle system in the GPU.

Although the engine currently implements only basic graphics features, it provides all the building blocks to create more complex graphics. Effort will be put into implementing various graphics techniques, if you want to contribute check out the Contributing page. This issue tracks future features to implement.

In the next section we are going to see how to build the engine.

License

The engine is released under the MIT license. You can find the license in the repository.