Skip to content

Terrain Nodes

Biome Blend

Writes per-vertex Color32 to a terrain mesh using 4 configurable biome rules (altitude + slope gates). Wire into a Geometry Output to see vertex colors.

Inputs

  • Geometry (Geometry)

Outputs

  • Geometry (Float)

Options

  • biome0: Low-altitude / flat-slope biome rule (sand/beach default). Each rule defines altitude range, max slope, blend width, and vertex color.
  • biome1: Mid-altitude / gentle-slope biome rule (grass/meadow default).
  • biome2: Mid-to-high / steeper-slope biome rule (rock/stone default).
  • biome3: High-altitude biome rule (snow/ice default).

Biome Merge

Blends up to 4 biome colors by weight scalars, normalising the sum to 1. Outputs R, G, B for a Biome Blend or color node.

Inputs

  • Weight 0 (Float)
  • Weight 1 (Float)
  • Weight 2 (Float)
  • Weight 3 (Float)

Outputs

  • R (Float)
  • G (Float)
  • B (Float)

Options

  • biome0Color: RGB color for biome slot 0. The R, G, B outputs carry the weight-normalised blend of all four colors.
  • biome1Color: RGB color for biome slot 1.
  • biome2Color: RGB color for biome slot 2.
  • biome3Color: RGB color for biome slot 3.

Biome Rule

Altitude + slope gate returning a biome blend weight in [0, 1]. Combine multiple rules with a Biome Merge node.

Inputs

  • Altitude (Float)
  • Slope (Float)

Outputs

  • Weight (Float)

Options

  • altMin: Lower altitude bound (world Y). Biome weight ramps from 0 to 1 above this level over the Blend Width transition.
  • altMax: Upper altitude bound (world Y). Biome weight ramps back to 0 above this level over the Blend Width transition.
  • slopeMax: Maximum surface slope in degrees at which this biome appears. Above this angle the weight falls off over the Blend Width.
  • blendWidth: Transition width in metres (altitude) or degrees (slope) at each boundary. Larger values soften the biome edge.

Splat Biome Blend

Paints per-vertex Color32 on geometry by sampling a splat texture at each vertex’s world XZ position and blending 4 authored region colors by RGBA channel weights.

Inputs

  • Geometry (Geometry)
  • Texture (Texture)

Outputs

  • Geometry (Float)

Options

  • tileSize: World units per full UV tile. Set to match the real-world coverage of your splat texture. 100 = texture covers 100 × 100 world units.
  • offsetU: Horizontal UV offset applied after tiling [0, 1]. Use to align the splat texture when the world origin does not coincide with (0, 0).
  • offsetV: Vertical UV offset applied after tiling [0, 1].
  • region0Color: Vertex color assigned to geometry in the splat R channel region (sand/beach default).
  • region1Color: Vertex color for the splat G channel region (grass default).
  • region2Color: Vertex color for the splat B channel region (rock default).
  • region3Color: Vertex color for the splat A channel region (snow default).

Tips

  • Wire a Texture2D Parameter (RGBA splat map) → Texture input and any geometry → Geometry input. Tile Size should match the world scale of your splat texture (100 = texture covers 100 world units).
  • When no texture is wired the node falls back to Region 0 color for every vertex (useful for testing the color pipeline without a splat asset).
  • Compose downstream with a Geometry Output to see vertex colors in the preview, or feed into a BiomeBlend node to layer altitude/slope rules on top of the splat regions.
  • Call AFTER any GeometryTransform that places the geometry in its final world position: world XZ is read from the vertex positions, so the splat UV is frame-dependent.

Tree Mask

Altitude + slope mask for controlling tree or vegetation density. Returns 1 inside the altitude/slope window and 0 outside, with configurable blend width.

Inputs

  • Altitude (Float)
  • Slope (Float)

Outputs

  • Mask (Float)

Options

  • altMin: Lower altitude bound. Trees start appearing above this world Y level; blend transitions over the Blend Width.
  • altMax: Upper altitude bound. Trees thin out above this altitude (snow line / tree line).
  • slopeMax: Maximum slope in degrees on which trees appear. Above this angle the mask returns 0.
  • blendWidth: Transition width at each altitude and slope boundary. Larger values create a softer, more gradual tree-line edge.