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.
Features are- 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, spatial culling, dealing with transparency are done for you automatically saving you valuable time
- Clean, uncluttered design and full documentation of all engine classes
- Proven, stable engine used in several commercial products
- 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.