OGRE (Object-Oriented Graphics Rendering Engine)
Feature Status
What is this document for?
This document is to give OGRE users a guide to how complete / mature each aspect of the engine is, so they can make informed decisions about the parts they can definitely rely on out of the box, and which parts they might need to extend, or at least be a little careful around because they are new or unfinished.Here's a guide to the statuses I've chosen to use: Status |
Description |
Incomplete | This feature has been started, but is not complete so should not be considered usable unless you are willing to extend what's there yourself. These features are not listed on the OGRE features list or on the ChangeLog for obvious reasons, but are listed here because you will discover them in the code and the generated documents, albeit not advertised. |
Alpha | This feature is included, but is very new and has not been extensively tested yet. Because it is in it's first version it may undergo significant changes in future releases. There is also a reasonable chance that you will find bugs in it. |
Beta | This feature has been tested frequently by the team and probably other keen people who keep up with CVS. It is therefore considered to be pretty stable, but is still quite new. |
Production | This feature has been included in the engine for some time and is considered stable and mature. |
This document is divided into sections relating to the structure of the CVS repository, which broadly conforms to OGRE's module structure:
This is the core module of the system and is on the whole very mature. Here are the specifics:OgreMain
PlatformManagers
SDL
Win32
Plugins
BspSceneManager
FileSystem
GuiElements
OctreeSceneManager
ParticleFX
RenderSystems
Direct3D7
Direct3D8
SDL
Tools
3ds2oof
3dsMaxExport
BitmapFontBuilderTool
MilkshapeExport
PythonInterface
XMLConverter
Feature | Example classes | Status | Notes |
Hierarchical scene graph | Node, SceneNode, SceneManager, Camera, MovableObject | Production | Still under incremental enhancement and subject to the odd bugfix, but generally very stable. |
Material management | MaterialManager, Material, Material::TextureLayer | Production | |
Dynamic loading plugin system | Root, DynLibManager, DynLib | Production | |
Mathematical routines | Math, Vector3, Matrix3, Matrix4, Quaternion | Production | |
Rendering & geometry pipeline | RenderSystem, RenderQueue, Renderable | Production | |
Mesh / geometry management | MeshManager, Mesh, SubMesh, MeshSerializer, PatchSurface | Production | |
Resource management | ResourceManager, Resource, ArchiveManager, ArchiveEx | Production | |
Sky / background rendering | SceneManager | Production | |
Billboarding & particle systems | BillboardSet, Billboard, ParticleSystemManager, ParticleSystem, ParticleEmitter, ParticleAffector | Production | |
Logging and exception reporting | Exception, LogManager, Log | Production | |
Event listeners (rendering related) | FrameListener, RenderTargetListener | Production | |
Codecs and image loaders | Codec, JPGCodec, TGACodec, PNGCodec | Production | |
Custom memory manager | MemoryManager | Beta | |
Animation infrastructure | Animation, AnimationTrack, KeyFrame | Beta | Could be considered production, but still a bit new and spline interpolation is especially new. |
Skeletal animation | Skeleton, Bone, Animation, AnimationTrack, KeyFrame | Beta | |
Font rendering / loading | FontManager, Font | Beta | |
Overlays, 2D elements | Overlaymanager, Overlay, GuiElement, GuiContainer | Beta | Although the display aspects of overlays are complete, there is no event model for accepting input via 2D screen elements yet. |
Feature | Example classes | Status | Notes |
Input management | SDLInput | Incomplete | Keyboard and mouse position are production quality, but mouse buttons and game controllers are not implemented yet (general weakness in all input management at the moment). |
Configuration system | SDLConfig | Beta |
Feature | Example classes | Status | Notes |
Input management | Win32Input | Incomplete | Keyboard and mouse position are production quality, but mouse buttons and game controllers are not implemented yet (general weakness in all input management at the moment). |
Configuration | Win32ConfigDialog | Production |
Feature | Example classes | Status | Notes |
BSP tree navigation | BspSceneManager, BspLevel, BspNode | Production | |
Quake3 Level Import | Quake3Level | Beta | Support for all level geometry including curved surfaces, although these are built at a fixed subdivision rather than changing on the fly. |
Quake3 shader support | Quake3Shadermanager, Quake3Shader | Beta | A few shaders do not parse correctly, deformable geometry & warps are not supported. |
All features are production status.
This plugin provides the standard 2D overlay elements which come with OGRE such as Panel and TextArea.All features are beta status.
This plugin customises the standard scene organisation so that the scene is managed using an octree. Asfrom this version it also allows you to render terrain.All features are beta status.
This plugin provides the standard ParticleEmitter and ParticleAffector classes which come with OGRE.All features are production status.
Direct3D v7 RenderSystem Plugin
This plugin provides a rendering system implementation based on Direct3D version 7.All features are production status.
Direct3D v8 RenderSystem Plugin
This plugin provides a rendering system implementation based on Direct3D version 8.1.All features are beta status. You may get better frame rates with the v7 render system for now because compiled vertex buffer support is not yet implemented, and Dx8.1 prefers to work in a vertex buffer manner.
This plugin provides a rendering system implementation based on Open GL and SDL.All features are production status.
This is an old tool which we used to use to convert binary 3D Studion mesh files (.3ds) to the .oof format (OGRE's old mesh file format).This tool is deprecated. You should not use it unless you really have to, please try to move to the new exporters. A basic 3DS exporter is included with this release and is undergoing further development.
This is a 3D Studio MAX (v4 or v5) plugin for exporting model data from 3D Studio to OGRE's native .mesh and .skeleton formats.This tool is in alpha stage. Mesh exporting is supported, but not material definitions or bones / animation.
This is just a quick hack to convert the binary character width files created by the BitmapFontBuilder tool into 'glyph' lines for OGRE .fontdef files.This tool is in beta stage. No project files are provided because it is very simple to build (one .cpp) and is more of a code snippet than a separate project.
This tool is a plugin for the Milkshape3D modeller to allow you to export models and animation into OGRE's native .mesh and .skeleton formats.This tool is in production stage.
This sub-project was designed to provide an interface dll so that Python scripts could drive OGRE directly, and to allow Python scripts to be called from the engine to provide game-related scripting.This sub-project is incomplete. The Python interface has lagged behind because of lack of resources to keep it up to date with the rapidly growing feature set. In addition, problems with Boost.Python using STLport have hampered quick-fix attempts. The project ideally needs outside help from Python enthusiasts to bring this up to date.
This tool converts .mesh and .skeleton files to and from XML. The main OGRE engine uses the binary formats for speed and size efficiency, but this tool lets you export and import XML in order to examine and tweak models.This tool is incomplete. The conversion from .mesh and .skeleton to XML is working but the reverse is still under development. This should be available for the next release.