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, 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)
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 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
& 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
|