A 3D engine developed in C++ using OpenGL and a set of modern libraries to provide efficient rendering and modular features. This project is designed as a simple yet powerful foundation for experimenting with 3D rendering concepts and ECS systems.
- MTL File Parser: Load and manage materials with support for
ambient
,diffuse
, andspecular
properties. - Phong Illumination: Realistic simulation of reflections and lighting.
- Lighting Maps: Advanced management of lighting textures, including diffuse and specular maps.
- Lighting System: Supports directional, point, and spotlights with soft edges.
- Primitive Creation: Parametric creation of cubes and spheres.
- Smooth movement using mouse and keyboard.
- FPS and orbital camera modes.
- Powered by the
glm
library for 3D transformations and calculations.
- Minimal entity and component management for clear organization of scene objects.
- Easily extendable to add new features like animations or custom behaviors.
- Load 3D models via Assimp (supported formats:
.obj
,.fbx
, etc.). - Parse and manage materials from
.mtl
files.
- Built with Google Test (gtest) to ensure engine stability and reliability.
- Integration of Dear ImGui for interactive inspection and debugging tools.
- OpenGL: Graphics rendering API.
- GLM: Mathematical library for transformations and 3D calculations.
- SDL2: Window, input, and event management.
- Assimp: 3D model loading and parsing.
- GLAD: OpenGL extension loader.
- Dear ImGui: Graphical user interface.
- Google Test: Unit testing framework.
- nlohmann-json: JSON parsing and manipulation for configurations.
The vcpkg package manager is used to handle all external libraries.