|
|
|
|
namespace Magnum {
|
|
|
|
|
/** @mainpage
|
|
|
|
|
|
|
|
|
|
%Magnum is 3D graphics engine written in C++11 and OpenGL 3 Core Profile.
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Easy-to-use templated @ref Math "mathematical library" for
|
|
|
|
|
@ref matrix-vector "matrix/vector calculations" and
|
|
|
|
|
@ref Math::Geometry "geometry".
|
|
|
|
|
- Classes wrapping OpenGL objects and simplifying their usage -
|
|
|
|
|
@ref AbstractShaderProgram "shaders", @ref Buffer "buffers",
|
|
|
|
|
@ref Mesh "meshes" and @ref AbstractTexture "textures". Access to
|
|
|
|
|
@ref Framebuffer "framebuffer" and @ref AbstractQuery "occlusion queries".
|
|
|
|
|
- @ref MeshTools "Mesh tools" for cleaning, optimizing and generating meshes,
|
|
|
|
|
utility classes for @ref Color.h "color conversion", @ref Timeline "timeline"
|
|
|
|
|
and @ref Profiler "profiling".
|
|
|
|
|
- Hierarchical @ref SceneGraph "scene graph" which supports transformation
|
|
|
|
|
caching for better performance, @ref Physics "physics library" for collision
|
|
|
|
|
detection and rigid body dynamics.
|
|
|
|
|
- Plugin-based @ref Trade "data exchange framework" for importing image, mesh,
|
|
|
|
|
material and scene data in various formats.
|
|
|
|
|
- Collection of pre-made @ref Primitives "graphic primitives" and
|
|
|
|
|
@ref Shaders "shaders" for testing purposes.
|
|
|
|
|
- Classes for easy creation of OpenGL context with @ref Contexts
|
|
|
|
|
"various toolkits", methods for querying
|
|
|
|
|
@ref Context "supported OpenGL version and available extensions".
|
|
|
|
|
- Comprehensive use of C++11 features for safety, performance and ease of
|
|
|
|
|
development. All code which doesn't directly interact with OpenGL is
|
|
|
|
|
covered with unit tests.
|
|
|
|
|
|
|
|
|
|
The engine is meant to be run on OpenGL 3 capable hardware, but most of the
|
|
|
|
|
functionality is working on OpenGL 2.1 hardware too. The engine can be built
|
|
|
|
|
also for OpenGL ES with limited functionality. See also @ref required-extensions.
|
|
|
|
|
|
|
|
|
|
@section download-build Downloading and building Magnum
|
|
|
|
|
|
|
|
|
|
Guide @ref building "how to download and build Magnum" on different platforms.
|
|
|
|
|
|
|
|
|
|
@section getting-started Getting started
|
|
|
|
|
|
|
|
|
|
To get up and running, you must first subclass one of the provided window
|
|
|
|
|
context classes and implement required functions. %Magnum provides
|
|
|
|
|
implementations for the most common toolkits (such as GLUT, Xlib, or SDL2) in
|
|
|
|
|
Contexts namespace.
|
|
|
|
|
|
|
|
|
|
Then you can either draw your meshes directly or use SceneGraph which will
|
|
|
|
|
help you with object hierarchy, transformations and resource management.
|
|
|
|
|
|
|
|
|
|
@subsection getting-started-examples Tutorials and examples
|
|
|
|
|
|
|
|
|
|
The best way to get started is to render your first triangle in
|
|
|
|
|
@ref example-index "step-by-step tutorial". Then you can dig deeper and try
|
|
|
|
|
other examples, read about @ref features "fundamental principles" in the
|
|
|
|
|
documentation or start experimenting on your own!
|
|
|
|
|
|
|
|
|
|
@subsection getting-started-hacking Hacking Magnum
|
|
|
|
|
|
|
|
|
|
If you want to hack on this engine, if you spotted a bug, need an feature or
|
|
|
|
|
have an awesome idea, you can get a copy of the sources from GitHub and start
|
|
|
|
|
right now! There is the already mentioned guide about
|
|
|
|
|
@ref building "how to download and build Magnum" and also guide about
|
|
|
|
|
@ref coding-style "coding style and best practices" which you should follow to
|
|
|
|
|
make the library as consistent and maintainable as possible.
|
|
|
|
|
|
|
|
|
|
Feel free to get more information or contact the author at:
|
|
|
|
|
|
|
|
|
|
- GitHub - https://github.com/mosra/magnum
|
|
|
|
|
- Website - http://mosra.cz/blog/
|
|
|
|
|
- E-mail - mosra@centrum.cz
|
|
|
|
|
- Jabber - mosra@jabbim.cz
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
}
|