Landscape & Ecosystem

RedGPU provides a GPU-driven Landscape (Landscape) and Ecosystem (GrassManager, FoliageManager) pipeline designed to render expansive open-world environments at 60 FPS.
Terrain tiles, millions of grass clumps (Grass), and hundreds of thousands of trees (Foliage) are culled against the view frustum and Hierarchical Z-Buffer (HZB) in a GPU compute pass and rendered via Indirect Draw.
Component Overview
| Order | Component | Core Classes | Key Features |
|---|---|---|---|
| 1 | Terrain | Landscape | Global heightmap (16-bit PNG support), continuous LOD morphing, elevation queries (getHeightAt), heightmap raymarched self-shadows |
| 2 | Multi-Layer Splatting | LandscapeMaterial, LandscapeLayer | Up to 8 PBR layers blended via a single shared RGBA weight map, stochastic tiling, distant Virtual Blend Texture (VBT) |
| 3 | Tile Streaming | LandscapeTileStreamer | On-demand asynchronous 16-bit tile streaming (tileUrlResolver) based on camera proximity (tileLoadingRadius) |
| 4 | Procedural Grass | GrassManager, Grass | Real-time GPU baking in 16m cells around the camera, two-sided foliage PBR with subsurface scattering, ground color blending |
| 5 | Foliage & Impostors | FoliageManager, Foliage | Sub-cell streaming for trees and rocks, multi-stage mesh LODs, automatic distant Octahedral Impostor transitions |
Related Examples
- Basic Terrain
- Multi-Layer Splatting
- Tile Streaming
- Procedural Grass
- Foliage & Impostors
- Landscape & Water
- Open World Integration