Magnum.engine: Lightweight C++ Graphics Middleware for Data Visualization & Games
A modular graphics engine for building data visualization, games, and VR applications with features like scene management, file I/O, cameras, material system, textures, meshes, shaders, lights, animations.
What is Magnum.engine?
Magnum.engine is a lightweight and modular C++ graphics middleware engine designed to simplify the development of data visualization, games and virtual reality applications. It's main goals are:
- C++11 (now also C++14 and C++17) as the only dependency that needs to be configured, buildsystem-agnostic (CMake is the default one)
- Fast compilation, low coupling between features
- Encapsulation and stateless APIs to avoid errors
- No black boxes, everything is documented
- Portability to a wide variety of platforms, including desktop PCs, mobile devices, browsers, consoles
- Sane defaults balanced with customization options
Some key features of Magnum include:
- Scene graph with interface-driven design for high flexibility
- Wide variety of general utilities usable independently of graphics engine
- Powerful material system supporting GLSL shaders for custom materials
- Integration with various image loading libraries such as FreeImage, DevIL, DrMinGW, StbImage, OpenGEX to load most common image formats
- Geometry shader support for NVIDIA, ATI/AMD and Intel GPUs
- High-level abstractions for OpenGL textures, framebuffers, buffers, meshes, shaders and more
- Resource management for efficient use of GPU memory
- Math types and functions, matrix and quaternion transformations
- 2D graphics engine built on OpenGL
- Audio engine using OpenAL, sound buffer caching, multiple listener support