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.
In 2009 sinbad (founder of Ogre) started to create a new terrain system. It replaces the old Terrain Scene Manager and includes ideas of other terrain addons, key of which is being a component system which can live within any SceneManager rather than being one itself. Since Ogre 1.7 the new Ogre Terrain Manager is an Ogre component.
- SceneManager independent, separate optional component (OGRE_HOME/Components/Terrain)
- Integrates with (optional) Paging component
- Inherently editable - a lot like ETM
- Hierarchical geometry batching: batch count reduced at lower LODs as well as vertex count. At the lowest level of detail, the entire terrain page is a single batch which has obvious advantages for large paging terrains over the fixed tiles previously used. There is also the possibility to go to a lower overall resolution and to drop detail geometry in the far distance compared to non-hierarchical approaches.
- Skirts are used instead of stitching to avoid cracks in geometry. This means fewer indexing arrangements and lower overall index buffer usage
- In-built support for splatting layers, configurable sampler inputs and pluggable material generators
- Support for generating global normal maps and light maps in a background thread
- Saving & loading of terrain built in, including loading / processing in a background thread
- LOD now adapts in real-time to camera settings (viewport sizes & LOD bias) so you can use the same terrain with multiple views efficiently
The Terrain System can be used in combination with the Paging Component.
Features of the Paging Component:
- SceneManager-independent, separate optional component (OGRE_HOME/Components/Paging)
- Pluggable strategy components to control paging strategy for a section of the scene
- Pluggable content components to control paging of content
- Plugggable collection components so that paged elements can be composed or selected between in different ways (e.g. paging many LOD levels within a page)
The Terrain System requires the CgProgramManager plugin to function correctly.
Using Ogre Terrain
Basic Tutorial 3 shows how you can use this terrain system.
- Ogre::Terrain = a small group of tiles, lets say 256x256
- Ogre::TerrainGroup = a group of Terrains, there is no actual limit of how many terrains it can have. The Terrains hardware limit is the number of Ogre::Terrains visible/in memory.
- Ogre::TerrainPaging = A wrapper to add/remove predetermined Ogre::Terrains on the fly (so you may have lets say 1000 Ogre::Terrains in a TerrainGroup but only the 9 of them around the player is visible at once)
- PagingManager = general purpose paging handler, not limited to terrain but also supplies functions to page other elements in the scene.
How paging interacts with terrain:
If you are not using paging:
- All terrains you add to a group are loaded.
If you are using paging:
- All terrains in the radius LOADRADIUS, centered around the current camera position, will be loaded.
- Terrains already loaded in the radius HOLDRADIUS will be kept in memory.
This video shows the Ogre Terrain Component in association with the Ogre Paging Component.
- Ogre::Terrain API
- Basic Tutorial 3 - How to use the terrain system
- Ogre Terrain Component FAQ
- New Terrain Early Shots - Forum topic for Development Talk
- Paging as a core feature - design notes - Forum topic
- Future plans for Ogre::Terrain? - Forum topic
- Mogre terrain and paging - Forum topic for usage with Mogre (.NET)
- Artifex Terra - A terrain and world editor supporting the Ogre Terrain System
- Ogitor - A Scene Editor, which can create terrain based on the Ogre Terrain System
- SceneManagersFAQ - An overview for other scene managers
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.