This image is from OGRE (Object Oriented Rendering Engine), which is a scene-oriented rendering engine written
in C++ designed to make it easier and more intuitive for developers to produce
games and demos utilising 3D hardware. The class library exposes a number of
useful objects allowing you to create and manipulate a 3D environment, and
render it to your specifications, whilst removing the unnecessary complexities
of the underlying system libraries like Direct3D and OpenGL.
This image may not be too spectacular, but the idea is to show how easy it is to
apply effects using the engine. This 2-layer, environment mapped, additive
blended model is achieved using only 3 lines of code, starting with a simple
base metal texture as loaded from the model:
This adds a second environment mapped texture layer, blends it over the static
blue metal texture and OGRE handles the most efficient use of texture units,
minimised render state changes and everything else for you.
There is still plenty to do to the engine but it is designed to be platform, API
and genre independent, but with specific optimisations for the task at hand
implemented underneath the surface based on the API or hints given by the
application user (e.g. asking to start an indoor-based scene silently uses a
BSP/portal oriented version of scene management).
The engine is still under development, so don't tell me it's missing stuff, I
know. However it's structure and design make it extremely effective, and once
all the features are in place I think it will have a lot more versatility than
engines designed around a single API or rendering approach.
Take a look at the site at http://ogre.sourceforge.net, CVS is being constantly
updated, Quake3 and particle support is currently under development.