Skip to main content

History: Ogre Terrain System

Preview of version: 15

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 part of the Ogre core.

click to enlarge
click to enlarge
click to enlarge
click to enlarge

Features

  • 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.

Some definitions:

  • 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.

Video

This video shows the Ogre Terrain Component in association with the Ogre Paging Component.

See also

History

Information Version
Sat 31 of May, 2025 23:26 GMT-0000 paroj 18
Thu 07 of Aug, 2014 13:27 GMT-0000 drwbns 17
Mon 17 of Feb, 2014 11:38 GMT-0000 scrawl Terrain is a component, not Core. 16
Tue 27 of Nov, 2012 18:00 GMT-0000 jazztickets 15
Thu 06 of Sep, 2012 14:37 GMT-0000 Nauk 14
Mon 21 of Nov, 2011 01:40 GMT-0000 Beauty added video about terrain + paging 13
Mon 21 of Nov, 2011 01:30 GMT-0000 Beauty added FAQ link 12
Tue 15 of Nov, 2011 22:51 GMT-0000 spacegaier 11
Mon 01 of Aug, 2011 12:26 GMT-0000 uzik 10
Mon 01 of Aug, 2011 11:47 GMT-0000 uzik added basic description of terrain classes 9
Sat 12 of Feb, 2011 19:34 GMT-0000 Beauty added notes about the Paging Component 8
Thu 10 of Feb, 2011 11:18 GMT-0000 Sinbad 7
Sat 29 of Jan, 2011 19:00 GMT-0000 spacegaier minor spelling changes 6
Sat 29 of Jan, 2011 18:58 GMT-0000 spacegaier added link to Ogre::terrain API 5
Wed 26 of Jan, 2011 11:58 GMT-0000 Beauty 4
Wed 26 of Jan, 2011 11:57 GMT-0000 Beauty added screenshots 3
Wed 26 of Jan, 2011 11:32 GMT-0000 Beauty added link 2
Wed 26 of Jan, 2011 11:13 GMT-0000 Beauty NEW PAGE 1