| Submitted by , posted on 06 December 2001 |

Image Description, by Here's a few shots from the Quake3 level rendering of my engine, OGRE (Object-oriented Graphics Rendering Engine). I know what you're thinking: ok, ok, another Q3A level renderer, yadayadayada... but what makes OGRE a little different is that it's a highly abstracted OO engine which is not designed around BSP scene management, or even indoor rendering - it's designed to be scene oriented rather than level structure oriented, with a class hierarchy dealing with specialisations like using BSPs in an indoor environment. All the features used in the rendering of the Q3 level (material/shader management, geometry buffers, texture loading, curved surfaces) are all generalised and just used by the indoor implementation - this does lead to a bit of conversion overhead as it loads the BSP though.
If you don't want to, you don't have to know that OGRE is using BSPs internally for indoor rendering, just use the top-level interface which is the same for any scene manager, and just give OGRE a hint that you're going to render an indoor scene and it will do all the optimisations internally. Frame rates are pretty good but little optimisation has occurred yet beyond the general culling algorithms so there's room for more. To be honest though I'm pretty pleased with the results - one of the main reasons I implemented a Q3A renderer in the engine is to see whether OGRE's abstracted architecture could handle a large complex scene at a fair speed. I think it does pretty well.
OGRE also abstracts the platform and 3D API - it currently it runs on Win32 under DirectX, but the interface exposes nothing of that - again subclasses deal with the specifics and I've deliberately tried to ensure that the interface will map onto OpenGL easily (probably more easily than DX to be honest! - hmm).
Take a look at http://ogre.sourceforge.net if you like: all source is freely available for non-commercial use.
Cheers
Steve Streeting

[prev] | Image of the Day Gallery www.flipcode.com | [next]

Copyright 1999-2008 (C) FLIPCODE.COM and/or the original content author(s). All rights reserved.
Please read our Terms, Conditions, and Privacy information.