You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

47 lines
2.0 KiB

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 and @ref Math::Geometry "geometry".
- Hierarchical @ref Object "scene graph" which supports transformation caching
for better performance, classes for convenient usage of
@ref AbstractShaderProgram "shaders", @ref Buffer "buffers" and
@ref AbstractTexture "textures". Access to @ref Framebuffer "framebuffer"
and @ref AbstractQuery "occlusion queries".
- @ref Physics "Physics library" for collision detection and rigid body
dynamics, @ref MeshTools "Mesh tools" for cleaning, optimizing and
generating meshes.
- 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".
- 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. 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".
*/
}