History: Ogre Terrain System
Source of version: 18 (current)
Copy to clipboard
In 2009 ((User:Sinbad|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. {DIV(class="clearRight")}{img fileId="1989" align="right" thumb="y" rel="box[g]" width="300" desc="click to enlarge" stylebox="border"}{DIV} {DIV(class="clearRight")}{img fileId="1990" align="right" thumb="y" rel="box[g]" width="300" desc="click to enlarge" stylebox="border"}{DIV} !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 ((-LOD|LODs)) as well as ((-vertex|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 ((Vertex and Index Buffers|index buffer)) usage * In-built support for ((-Terrain Splatting|splatting layers)), configurable sampler inputs and pluggable ((-material|material)) generators * Support for generating global ((-Normal Mapping|normal maps)) and ((Light mapping|light maps)) in a background thread * Saving & loading of terrain built in, including loading / processing in a background thread * ((-LOD|LOD)) now adapts in real-time to ((-camera|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|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. {vimeo url=https://vimeo.com/7592034} !See also * [http://www.ogre3d.org/docs/api/1.9/class_ogre_1_1_terrain.html|Ogre::Terrain API] * ((Basic Tutorial 3)) - How to use the terrain system * ((Ogre Terrain Component FAQ)) * [http://www.ogre3d.org/forums/viewtopic.php?f=11&t=50674|New Terrain Early Shots] - Forum topic for Development Talk * [http://www.ogre3d.org/forums/viewtopic.php?f=4&t=48320|Paging as a core feature - design notes] - Forum topic * [http://www.ogre3d.org/forums/viewtopic.php?f=4&t=56064|Future plans for Ogre::Terrain?] - Forum topic * [http://www.ogre3d.org/addonforums/viewtopic.php?f=8&t=13224|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