|
|
|
|
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 matrix/vector
|
|
|
|
|
calculations.
|
|
|
|
|
- Comprehensive use of C++11 features for safety, performance and ease of
|
|
|
|
|
development.
|
|
|
|
|
- Hierarchical @ref Scene "scene graph" which supports transformation caching
|
|
|
|
|
for better performance, classes for convenient usage of
|
|
|
|
|
@ref AbstractShaderProgram "shaders", @ref Buffer "buffers" and
|
|
|
|
|
@ref Texture "textures".
|
|
|
|
|
- @ref MeshTools "Mesh tools" for cleaning, optimizing and generating meshes.
|
|
|
|
|
Collection of pre-made @ref Primitives "graphic primitives" and
|
|
|
|
|
@ref Shaders "shaders" for testing purposes.
|
|
|
|
|
|
|
|
|
|
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. See also
|
|
|
|
|
@ref RequiredExtensions.
|
|
|
|
|
|
|
|
|
|
@section BuildingLink Building Magnum
|
|
|
|
|
|
|
|
|
|
Guide @ref Building "how to build Magnum" on different platforms.
|
|
|
|
|
|
|
|
|
|
@section BasicUsage Basic usage
|
|
|
|
|
|
|
|
|
|
%Scene in %Magnum is composed of hierarchically connected object instances.
|
|
|
|
|
To build the scene, you need Scene object with assigned Camera and some Object
|
|
|
|
|
instances. When rendering using Camera::draw(), the engine goes through all
|
|
|
|
|
objects connected to camera scene and calls Object::draw() on them.
|
|
|
|
|
|
|
|
|
|
All objects are by default empty. To make object renderable in the scene,
|
|
|
|
|
you must reimplement Object::draw(), and for example bind an
|
|
|
|
|
@ref AbstractShaderProgram "shader", @ref Texture "texture" and
|
|
|
|
|
render an prepared @ref Mesh "mesh".
|
|
|
|
|
*/
|
|
|
|
|
}
|