mirror of https://github.com/mosra/magnum.git
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
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". |
|
*/ |
|
}
|
|
|