I see trees of green, red roses to.
Decoration are all the details of on a terrain that makes it look fun. Things such as rocks, trees or grass. Most of these can be static so they only need to be displayed exist in the physics system for the collision. If that's the case they can all be streamed in with the terrain and thrown away when the part of the terrain is removed. They can be stored by quadtree node in the terrain system where they exist.
The lowest decoration system that modify the material of the terrain. Examples are scorch marks and roads.
Grass can get expansive fast when on try to render to much of it. One way to solve that is to only display the undergrowth in an area around the player. At the edges of the terrain the grass fades out or slides back below ground. The grass is split into cells that stream in as they are needed and they read from the terrain on how much grass need to be in each place.
- Procedural Rendering of Geometry-Based Grass in Real-Time - 2013
- Rendering grass and highly detailed terrain textures - 2013
- Procedural grass rendering - 2012
- WebGL Terrain and Grass Rendering - 2011
- Sponsored Feature: Rendering Grass with Instancing in DirectX 10 - 2009
- Rendering Grass in Real Time with Dynamic Lighting - 2009
- GPUG2: Toward Photorealism in Virtual Botany - 2005
- GPUG: Rendering Countless Blades of Waving Grass - 2004
- Interactive Grass Rendering Using Real-Time Tessellation
Trees and large bushes that can be visible at a distance.
A height map can not create overhangs so it's common to have extra terrain parts that can be placed directly by level designers. They act like normal objects so they need level of detail meshes and a max distance so they are not drawn to far away.
Almost any mesh can be used as decoration if needed.
- GPU-Based Procedural Placement in Horizon Zero Dawn - 2016
- Biome Painter: Populating Massive Worlds - 2017
- Subsurface Scattering for Foliage (without Raytracing!) - 2018
- GPU-Based Procedural Placement in Horizon Zero Dawn - 2017