History: Ogre Terrain System
Source of version: 8
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 part of the Ogre core.
((Basic Tutorial 3)) shows how you can use this terrain system.
{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)
!See also
* [http://www.ogre3d.org/docs/api/html/classOgre_1_1Terrain.html|Ogre::Terrain API]
* ((Basic Tutorial 3)) - How to use the terrain system
* [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)
* ((Ogitor)) - A Scene Editor, which can create terrain based on the Ogre Terrain System
* ((SceneManagersFAQ)) - An overview for other scene managers