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.

48 lines
2.0 KiB

namespace Magnum {
15 years ago
/** @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.
15 years ago
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.
15 years ago
@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".
15 years ago
*/
}