OGRE 1.2.4 review

Download
by rbytes.net on

OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D engine written in C++ designed to make it easier an

License: GPL (GNU General Public License)
File size: 0K
Developer: Steve Streeting
0 stars award from rbytes.net

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 applications utilising hardware-accelerated 3D graphics.

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.

OGRE's project source is made available to general public under the GNU Lesser General Public License (LGPL).

Here are some key features of "OGRE":
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 i.e. Direct3D/OpenGL.
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 & 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 2002 (with STLport), Visual C++.Net 2003 on Windows
Builds on gcc 3+ on Linux / Mac OSX (using XCode)
Material / Shader support
Powerful material declaration language allows you to maintain material assets outside of your code
Supports vertex and fragment programs (shaders), both low-level programs written in assembler, and high-level programs written in Cg, DirectX9 HLSL, or GLSL and provides automatic support for many commonly bound constant parameters like worldview matrices, light state information, object space eye position etc
Supports the complete range of fixed function operations such as multitexture and multipass blending, texture coordinate generation and modification, independent colour and alpha operations for non-programmable hardware or for lower cost materials
Multiple pass effects, with pass iteration if required for the closest 'n' lights
Support for multiple material techniques means you can design in alternative effects for a wide range of cards and OGRE automatically uses the best one supported
Material LOD support; your materials can reduce in cost as the objects using them get further away
Load textures from PNG, JPEG, TGA, BMP or DDS files, including unusual formats like 1D textures, volumetric textures, cubemaps and compressed textures (DXT/S3TC)
Textures can be provided and updated in realtime by plugins, for example a video feed
Easy to use projective texturing support

Meshes

Flexible mesh data formats accepted, separation of the concepts of vertex buffers, index buffers, vertex declarations and buffer mappings
Export from many modelling tools including Milkshape3D, 3D Studio Max, Maya,
Blender and Wings3D
Skeletal animation, including blending of multiple animations, variable bone weight skinning, and hardware-accelerated skinning
Biquadric Bezier patches for curved surfaces
Progressive meshes (LOD)
Static geometry batcher

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
Several example plugins demonstrate various ways of handling the scene specific to a particular type of layout (e.g. BSP, Octree)
Hierarchical scene graph; nodes allow objects to be attached to each other and follow each others movements, articulated structures etc
Multiple shadow rendering techniques, each highly configurable and taking full advantage of any hardware acceleration available.
Scene querying features

Special Effects

Particle Systems, including easily extensible emitters, affectors and renderers (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 & 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 & physics
XMLConverter to convert efficient runtime binary formats to/from XML for interchange or editing

Requirements:
SDL 1.2.4
Freetype2
DevIL
zziplib
pkg-config

OGRE 1.2.4 keywords