2.9 KiB
Magnum is 3D graphics engine written in C++11 and OpenGL 3 Core Profile. Features:
- Easy-to-use templated mathematical library for matrix/vector calculations.
- Comprehensive use of C++11 features for safety, performance and ease of development.
- Hierarchical scene graph which supports transformation caching for better performance, classes for convenient usage of shaders, buffers and textures.
- Mesh tools for cleaning, optimizing and generating meshes. Collection of pre-made graphic primitives and shaders for testing purposes.
INSTALLATION
You can either use packaging scripts, which are stored in package/ subdirectory, or compile and install everything manually. Note that Doxygen documentation contains more comprehensive guide for building, packaging and crosscompiling.
Minimal dependencies
- C++ compiler with good C++11 support. Currently the only compiler which supports everything needed is GCC >= 4.6. Clang >= 3.1 (from SVN) will probably work too.
- CMake >= 2.6
- OpenGL headers, on Linux most probably shipped with Mesa
- GLEW - OpenGL extension wrangler
- Corrade - Plugin management and utility library. You can get it at http://mosra.cz/blog/corrade.php
Compilation, installation
The library can be built and installed using these four commands:
mkdir -p build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr .. && make
make install
Building and running unit tests
If you want to build also unit tests (which are not built by default), pass
-DBUILD_TESTS=True to CMake. Unit tests use QtTest framework (you need at
least Qt 4.6) and can be run using
ctest -V
in build directory. Everything should pass ;-)
Building documentation
The documentation (which you are currently reading) is written in Doxygen (preferrably 1.8 with Markdown support, but older versions should do good job too) and additionally uses Graphviz for class diagrams. The documentation can be build by running
doxygen
in root directory (i.e. where Doxyfile is). Resulting HTML documentation
will be in build/doc/ directory.
PLUGINS AND EXAMPLES
Various importer plugins for image and 3D model formats are maintained in separate repository, which can be found at http://github.com/mosra/magnum-plugins .
There are also examples of engine usage, varying from simple Hello World-like example to more advanced applications, such as viewer for complex 3D models. Example repository is at http://github.com/mosra/magnum-examples .
CONTACT
Want to learn more about the library? Found a bug or want to tell me an awesome idea? Feel free to visit my website or contact me at:
- Website - http://mosra.cz/blog/
- GitHub - https://github.com/mosra/magnum
- E-mail - mosra@centrum.cz
- Jabber - mosra@jabbim.cz