Table of Contents

Class DefaultTerrainRenderer

Namespace
Map.Rendering.Terrain
Assembly
MapAssembly.dll

ENGINE: Default terrain renderer using Imperator Rome-style 4-channel blending.

Features:

  • GPU-accelerated blend map generation via compute shader
  • Configurable sample radius (5x5 default) for terrain transition width
  • Configurable blend sharpness (1.0 = linear, >1 = sharper transitions)
  • Outputs DetailIndexTexture (4 terrain indices) + DetailMaskTexture (4 blend weights)

Pattern 20: Pluggable Implementation (Interface + Registry)

public class DefaultTerrainRenderer : TerrainRendererBase, ITerrainRenderer
Inheritance
object
DefaultTerrainRenderer
Implements
Inherited Members

Constructors

DefaultTerrainRenderer()

public DefaultTerrainRenderer()

DefaultTerrainRenderer(ComputeShader)

public DefaultTerrainRenderer(ComputeShader computeShader)

Parameters

computeShader ComputeShader

Properties

DisplayName

Human-readable name for UI/debugging

public override string DisplayName { get; }

Property Value

string

RendererId

Unique identifier for this renderer (e.g., "Default", "Stylized", "HighDetail")

public override string RendererId { get; }

Property Value

string

Methods

Dispose()

Cleanup resources

public override void Dispose()

GenerateBlendMaps(RenderTexture, ComputeBuffer, int, int)

Generate terrain blend maps (DetailIndexTexture + DetailMaskTexture) Called after ProvinceTerrainAnalyzer completes

public override (RenderTexture detailIndex, RenderTexture detailMask) GenerateBlendMaps(RenderTexture provinceIDTexture, ComputeBuffer provinceTerrainBuffer, int width, int height)

Parameters

provinceIDTexture RenderTexture

Province ID texture

provinceTerrainBuffer ComputeBuffer

Province terrain buffer (terrain type per province)

width int

Map width

height int

Map height

Returns

(RenderTexture detailIndex, RenderTexture detailMask)

Tuple of (DetailIndexTexture, DetailMaskTexture)

OnInitialize()

Override to perform implementation-specific initialization

protected override void OnInitialize()