If you haven't done so already, be sure to visit the Wiki Portal to read about how the wiki works. Especially the Ogre Wiki Overview page.
Table of contents
- A quick guide to some design issues. What to use when. Please contribute!
Class inheritence
- http://www.users.on.net/~edan/misc/ogre_classviz_nodeps.gif
Here's a diagram showing inheritance. Might make some things clearer.
- Although Ogre is a SceneGraph, it's not a strict one. Light, Camera and few things aren't inherited from node. They don't need to be attached to a scenenode (although they can be). This is for convenience and speed.
Custom objects
- Use Movable Object Factories when creating reusable custom objects. eg Particle systems, water meshes (eg current water demo would be nice to rewrite as a movable)
- this allows easy creation and management in Ogre
- easy to modularise and reuse
- please wiki any nice custom objects!
Scene managers
- Write a custom scene manager when you require unique scene management.
- eg existing BSP, Octree culling managers
- custom SM's are rarely needed. Octree is a good default for alot of cases.
- multiple scenemanagers can't be run in the same scene (eg terrain and bsp)
Scene definition
- Or level/scene design
- common solution is the dotScene xml format (search wiki)
- most modellers can export whole scenes to this format, while also exporting the actual meshes
- example dotScene implementations are in 'ogreAddons' in CVS
Main loop/Initialisation
- You don't need to use FrameListeners for updating every frame. You can call the render loop manually from a 'normal' while loop if you like.
- You don't need to use ExampleApplication like all the demos use. This either helps or hinders new people. See these examples for alternatives and a clear understanding of what ogre needs to initialise.
Nice clean example. Uses Framelisteners for render updates
'Hello World' example
Manual render loop example - windows only
Replacement ExampleApp to inherit new apps from
A complete framework tying alot of libraries together
Alias: Coding&Design philosophy?
Contributors to this page: manski
,
rafa.gdev
and
jacmoe
.
Page last modified on Tuesday 06 of July, 2010 09:34:50 UTC by manski
.
The content on this page is licensed under the terms of the Creative Commons Attribution-ShareAlike License.
As an exception, any source code contributed within the content is released into the Public Domain.
Sidebar
Last changes
- Hydrax
- QtOgre
- SoC2012 Complete the DirectX 11 render system
- SoC2012 Volume Rendering with LOD aimed at terrain
- SoC2012 Improve and Demo the Terrain System
- Mogre and WPF
- SoC2012 Implementation of Off-Screen Particles
- Advanced Ogre Framework
- Ogre overlays using Qt
- Architecture and Design in Games

