Site hosted by Angelfire.com: Build your free website today!
    3D ENGINE EXPLORATION
   
Links  
Main Page
Downloads
Links
E-Mail

Projects  
OgreScript
NeoScript
Jet Stream
Walk Test

Articles  
Ogre
Nebula Device
Auran Jet
Fly3D
Crystal Space

 

  Ogre
Language: C++, Python Documentation:
Platform: Windows, Linux Examples:
Cost: Free Features:
Links: Ogre Tools:

Ogre (which stands for Object-Oriented Graphics Rendering Engine) is a relatively new 3D engine that aims to provide developers with a simple and initiative way to create applications utilising 3D hardware. Ogre does this by abstracting the underlying rendering system (DirectX, with an OpenGL renderer in the works) to provide a single, clean interface based on world objects and other intuitive classes.

Ogre is currently nearing a version 1.0 release (the latest version was 0.99c at the time of writing), and already has an impressive feature list. Highlights are:

  • Plugin based scene management (Ogre currently includes a generic SceneManager, which culls by bounding boxes, and a BspSceneManager, for rendering Quake III levels).
  • Particle systems, which can be defined in a text file.
  • Billboarding for sprite graphics.
  • Support for skyboxes, skyplanes and skydomes.
  • Biquadric Bezier patches for curved surfaces.

Ogre contains a number of demos which demonstrate most of these features. The examples are well commented, easy to understand, and share a common loading routine which is a great starting point for your own application. Compared to other engines which have undocumented demos that may or may not have any consistency between them, Ogre is quite a pleasure to get started with.

Documentation is another area where Ogre stands out. There are some introductory tutorials written for Ogre which are available on the web site and included with the download. These tutorials are written in a manner that even people with limited programming experience can easily understand. Even if you are a 3D programming pro, a quick scan through the tutorials is still a useful starting point. Ogre's complete API is also documented using Doxygen, and this is an invaluable reference as you move beyond the basics covered by the tutorials.

Ogre's toolset is currently limited to a Milkshape exporter and a tool which converts 3DS files to Ogre's (now depreciated) OOF format. However, Ogre can directly read Quake III BSP files, so any Q3 level editor can also be used with Ogre.

The Ogre source is made available under the GNU Public License (GPL), which basically means you can use it for free however you like as long as you include all the source code if you distribute a product using it. At a later date Ogre may also be released under a commercial licensed, which will allow closed-source programs to use it. This will mainly be targeted at shareware authors.

One thing to keep in mind if you are thinking about using Ogre is that, for the moment at least, Ogre is only a 3D renderer. It doesn't include the capability for sound effects, music, collision detection, physics, networking or anything else. Many of these features may become available with later releases, but if you are looking for a complete and integrated solution, Ogre isn't for you. There is nothing stopping you from coupling Ogre with a sound engine like FMOD, a physics engine like Dynamo, or a collision detection engine like ColDet, but it is nice to have this functionality available within the one package.

In it's current state, Ogre isn't as useful as other 3D engines for creating games. With Ogre's lack of collision detection and sound, your only option is to glue Ogre together with other solutions. This can work well, but does involve a fair amount of overhead, both with the amount of code that needs to be written and possibly with performance and memory. However, if you are looking to do a 3D tech demo, or you just want to cut your teeth on some 3D graphics, Ogre provides a very sound platform to build from.