Class DefaultTerrainRenderer
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
-
objectDefaultTerrainRenderer
- Implements
- Inherited Members
Constructors
DefaultTerrainRenderer()
public DefaultTerrainRenderer()
DefaultTerrainRenderer(ComputeShader)
public DefaultTerrainRenderer(ComputeShader computeShader)
Parameters
computeShaderComputeShader
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
provinceIDTextureRenderTextureProvince ID texture
provinceTerrainBufferComputeBufferProvince terrain buffer (terrain type per province)
widthintMap width
heightintMap height
Returns
- (RenderTexture detailIndex, RenderTexture detailMask)
Tuple of (DetailIndexTexture, DetailMaskTexture)
OnInitialize()
Override to perform implementation-specific initialization
protected override void OnInitialize()