OGRE (Object-Oriented Graphics Rendering Engine)

Demo Distribution README file

http://www.ogre3d.org

Summary

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 games and demos utilising 3D hardware. 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.

To run these demos you need to have DirectX 8 installed. The demos are as follows:

Demo_BezierPatch

A simple demonstration of OGRE's ability to render variable detail bezier patches.

Demo_Bsp

This demo shows how a custom SceneManager can be used to render specialised world areas quickly: in this case BSP data from Quake3 Arena. Note that you must have a Quake3 Arena level to use with it, along with the pak0.pk3 containing resource data. Edit the quake3settings.cfg file to tell the demo where to get these files from on your system.

Demo_CameraTrack

An example of how OGRE can use spline paths to animate any aspect of the scene, in this case the camera, which follows a swooping path around the scene. These spline paths are as easy to set up as defining position / orientation points and telling the engine to do the rest.

Demo_EnvMapping

Shows a calculated texture coordinate effect called 'environment mapping' which makes an object look reflective. This material is set up though a text script, and the calculation of the texture coordinates is done in hardware, if available.

Demo_Lighting

Demonstrates the use of dynamic lighting, along with billboarding effects for light flares.

Demo_ParticleFX

Shows off OGRE's particle effect system. Particles are defined in text scripts to allow you complete flexibility and lots of options. This demo shows off point particles, directional particles, scattering and random colour effects, fading, gravity and the effect of moving emitters.

Demo_RenderToTexture

Demonstrates rendering the contents of the scene to a texture, then using that texture in the scene. In this demo it gives a 'hall or mirrors' effect. Note: this demo only works on Direct3D renderers at the moment.

Demo_SkeletalAnimation

Shows off OGRE's skeletal animation system, where a mesh is deformed according to the animation of 'bones' under the surface of the mesh. This allows very smooth animation with efficient storage requirements, and also allows blending of multiple animations.

Demo_SkyBox, Demo_SkyDome, Demo_SkyPlane

These demos show OGRE's support for various 'sky' approaches. These skies can be combined for a multi-layer effect.

Demo_Terrain

Shows off another SceneManager plugin which customises the scene approach for rendering geo-mipmapped terrain.

Demo_TextureFX

Demonstrates how you can use material properties to create animated textures. They can have multiple frames, rotate, scale, scroll etc with various different schemes. Underlying all this is the OGRE 'Controller' framework which lets you link objects together and make them derive values from each other, after transforming them somehow (e.g. through a wave function).

Demo_Transparency

Shows a series of transparent objects. OGRE automatically handles transparency; it handles the depth buffer changes that are required to correctly render transparent objects, and renders the objects in the correct order to ensure they look correct on screen when composited.

Solitaire

This is actually a complete implementation of the classic card game by Bad Camel Gaming, except in 3D. This is a good example of a complete application writte in OGRE. We guarantee that you've never seen this many particles in a card game before! :)

OGRE Authors

The following people are responsible for the blood, sweat and tears it took to bring you OGRE:

Steve Streeting (steve@stevestreeting.com)

Steve had been thinking about creating something like OGRE since about February 2000, but work really started on it in 2001. Steve is responsible for the overall design, project management and changes to all the core functionality. He is also the main public contact for the project, at the above address. Steve is prone to ranting about why games should have the same coding and design standards as business software, and is based in St Peter Port, Guernsey (a small British island off the French coast).

Adrian 'cearny' Cearnău (cearny@cearny.ro)

Cearny joined the project in February 2002. Cearny supplied the impetus and much of the implementation for switching OGRE to a completely dynamically-loaded library, provided the debugging memory manager, rationalised the codec system and has generally done a fine job of challenging my assumptions and generally improving the quality of the project. Cearny is based in Bucharest, Romania.

Thomas 'temas' Muldowney (temas@jabber.org)

Temas joined the project in April 2002 and has been responsible for the Linux port and also generally on ANSI C++ compliance. He comes from a background of open-source development, and is currently a lead contributor to the Jabber open-source server as well as working on OGRE. He's based in Texas, USA.

Jon Anderson (janders@users.sf.net)

John joined the project in November 2002 and has been responsible for developing the OctreeSceneManager and it's subclass TerrainSceneManager, so all those rolling terrain shots are down to his hard work. Jon is based in Minnesota, USA.

The following people have also made significant contributions to OGRE, and the team would like to thank them for their work:

- Scott Chappel, for upgrading the Direct3D RenderSystem to v8.1
- John Martin, for creating the 3D Studio Max tools
- Ben Woodhead and Kenny Sabir, for several useful patches and helping out other users in the forums
- lots of other people!

Contributing

We welcome all contributions to OGRE, be that new plugins, bugfixes, extensions, tutorials, documentation, example applications, artwork or pretty much anything else! If you would like to contribute to the development of OGRE, please read the Contributor License Agreement, and then contact Steve Streeting at steve@stevestreeting.com if you agree with the terms.

Keeping Up To Date

The best place to keep up to date with developments on OGRE is the Official Web Site. From there you can download the latest source code and documentation. You can choose between keeping bang up to date with CVS (Concurrent Versioning System) or by just getting the regularly released snapshots.

The changes included in this current version can be viewed on the ChangeLog.

Reporting a bug or requesting a feature

This can be done through the Sourceforge project site, which you can find at http://sourceforge.net/projects/ogre.

A NOTE ABOUT DIRECTX 8.1 RENDERSYSTEM: OGRE provides multiple render system implementations. In the larger demos such as Bsp and Terrain, the Direct3D 7 and OpenGL render systems will perform BETTER than the Direct3D 8 render system (as selected on the setup dialog). This is because acceptable geometry structures were made more restricted in Dx8 and so far we have not propagated this restriction into the rest of the engine, meaning some translation is required for Dx8. This might seem counter-intuitive to some who would expect Dx8 to outperform Dx7.

Licensing

OGRE is distributed as free software under the GNU Lesser General Public License (see License.html). In summary this means that you can use OGRE for any purpose, provided that if you make changes to OGRE itself, you must release the changes back into into the public domain under the LGPL and make it clear where you have made the changes. Your own application can be distributed under any license you like.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA, or go to http://www.gnu.org/copyleft/lesser.txt.

In addition, if you use Ogre it would be nice if you displayed the Ogre logo somewhere in your application (start up or shutdown) for a minimum of 2 seconds. This splash-screen is displayed on the standard Ogre configuration dialog anyway, so if you use that you don't need to do anything extra. The logo is included in the download archive as Examples\Resources\ogrelogo.png.

Some textures distrubuted with Ogre are used with permission of www.The3dStudio.com and may not be re-distributed, sold, or given away except in the form of rendered images, animations, or real time 3D applications when credit is given to www.The3dStudio.com.

The 'Han Solo' TrueType font is © 2000 by Iconian Fonts - Daniel Zadorozny. This font may be freely distributed and is free for all non-commercial uses. This font is e-mailware; that is, if you like it, please e-mail the author at: iconian@aol.com.

Acknowledgements

The authors wish to credit the following for their work which is used in whole or in part in OGRE:

Artwork:

- Matt Anderson at www.The3dStudio.com who kindly gave permission for the use of some textures
- Jonathan Clark at http://www.jonathanclark.com for some Golgotha textures thet were released to the public domain.
- The 'Raptor Assault Gunboat' mesh & texture are © 2002 by Adrian 'cearny' Cearnău.
- The robot mesh and animation are by Psionic, kindly made available from the CharacterFX site
- The 'Iron Maiden' TrueType font is © 1996 by Timour Jgenti.

Included as source (modified as appropriate), and credited appropriately in the source files affected:

- Many of the maths/spatial routines are inspired by Dr D.H. Eberley, adapted from the 'free' parts of the Wild Magic engine 0.2 source provided with his book "3D Engine Design" (http://www.wild-magic.com/)
- Quake3 loading routines used a lot of information gleaned from Aftershock and Bart Sekura's ROGL
- Singleton template class is © Scott Bilas 2000 from Game Programming Gems

Source not modified, but linked in as part of the complete OGRE system:

- Compression is courtesy of the zlib compression library © 1995-1998 Jean-loup Gailly and Mark Adler (http://www.gzip.org/zlib)
- JPEG image loading is provided by jpeglib © 1991-1998, Thomas G. Lane & the Independent JPEG Group (http://www.ijg.org)
- PNG image loading comes from libpng © 1998, 1999 Glenn Randers-Pehrson (http://libpng.sourceforge.net)
- Integration with the Python scripting language is provided by the Boost Python library.
- ZIP archive support is © Gilles Vollant 1998 (http://www.winimage.com/zLibDll/unzip.htm)
- SDL is © (too many to list!) (http://www.libsdl.org)
- Freetype2 is © The Freetype Team (http://www.freetype.org)

Standalone tools used:

- Document generation from C++ source code is by Doxygen © Dimitri van Heesch (http://www.doxygen.org)
- Milkshape3D for modelling & exporting (http://www.milkshape3d.com)

And I'd also like to thank the following just for inspiration, ideas, and pretty much anything else:

- Scott Meyers for his superb 'Effective C++' series
- Everybody who has ever written for Game Developer magazine, but particularly Chris Hecker and Jeff Lander whose work is consistently enlightening
- Michael Abrash for his 'Zen' books which inspired me to try graphics programming in the first place
- Everybody at SourceForge and VA Linux for providing fantastic facilities for developers with modest budgets
- Scott Adams (Dilbert) for providing a humourous distraction when I've had enough for the day
- My fiancée Marie for putting up with all this!

Copyright © 2002 by The OGRE Team