games
vapier@gentoo.org
Mike Frysinger
OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D
engine written in C++ designed to make it easier and more intuitive for developers
to produce games and demos utilising 3D hardware. The class library abstracts all
the details of using the underlying system libraries like Direct3D and OpenGL and
provides an interface based on world objects and other intuitive classes.
Productivity features
* Simple, easy to use OO interface designed to minimise the effort required to render 3D scenes, and to be independent of 3D implementation e.g. Direct3D/OpenGL/Glide etc.
* Extensible example framework makes getting your application running is quick and simple
* Common requirements like render state management, hierarchical culling, dealing with transparency are done for you automatically saving you valuable time
* Clean, uncluttered design and full documentation of all engine classes
Platform and 3D API support
* Direct3D and OpenGL support
* Windows (all major versions), Linux and Mac OSX support
* Builds on Visual C++ 6 (with STLport), Visual C++.Net (with STLport), Visual C++.Net 2003
* Builds on gcc 3+ on Linux / Mac OSX
Material / Shader support
* Load textures from PNG, JPEG or TGA files, MipMaps generated automatically, resizes maps to align with hardware requirements
* Procedural texture coordinate generation (e.g. environment mapping) and modification (scrolls, warps, rotations)
* Unbounded number of texture layers with many texture blending effects, animated textures
* Multitexturing hardware used to best effect automatically, combined with automatic fallback to mulitpass rendering
* Object transparency and other scene-level blending effects
* All defineable through text scripts to allow you to set up and tweak advanced materials without recompiling
Meshes
* Flexible mesh data formats accepted
* Export from Milkshape3D direct to OGRE .mesh and .skeleton format
* Skeletal animation (including blending of multiple animations)
* Biquadric Bezier patches for curved surfaces
* Progressive meshes
Scene Features
* Highly customisable, flexible scene management, not tied to any single scene type. Use predefined classes for scene organisation if they suit or plug in your own subclass to gain full control over the scene organisation
* Generic SceneManager hierarchically culls by bounding volumes
* Example plugin (BspSceneManager) specialises to allow fast indoor renders, loading Quake3 levels inc. shader script parsing support
* Hierarchical scene graph; nodes allow objects to be attached to each other and follow each others movements, articulated structures etc
* Scene querying features
Special Effects
* Particle Systems, including easily extensible emitters and affectors (customisable through plugins). Systems can be defined in text scripts for easy tweaking. Automatic use of particle pooling for maximum performance
* Support for skyboxes, skyplanes and skydomes, very easy to use
* Billboarding for sprite graphics
* Transparent objects automatically managed (rendering order and depth buffer settings all set up for you)
Misc features
* Common resource infrastructure for memory management and loading from archives (ZIP, PK3)
* Flexible plugin architecture allows engine to be extended without recompilation
* 'Controllers' allow you to easily organise derived values between objects e.g. changing the colour of a ship based on shields left
* Debugging memory manager for identifying memory leaks
* ReferenceAppLayer provides an example of how to combine OGRE with other libraries, for example ODE for collision and physics
* XMLConverter to convert efficient runtime binary formats to/from XML for interchange or editing
Exporters
* 3D Studio Max (meshes and animation)
* Milkshape 3D (meshes and animation)
* Blender3D (meshes)
* Wings3D (meshes)
* VRML97 (meshes)
* Maya (meshes)