Terrain Graph Node Reference

intermediate concepts

Voxel Play 4 · World Architecture

Complete reference for all nodes available in the Terrain Graph editors of Voxel Play 4. Voxel Play 4 has two independent terrain graph editors, each with its own node set: the 2D Terrain Graph (edited from a Multi-Step Terrain Generator) and the 3D Terrain Graph (edited from a 3D Density Terrain Generator). The nodes below are grouped by graph: first the nodes shared by both, then the nodes exclusive to each editor.

Matching node names across graphs: a few nodes do the same job but are named differently in each editor. If you are following a 2D workflow and cannot find a node, check its 3D name here:

  • 2D Sample Height Map Texture = 3D Noise 2D Texture
  • 2D Sample Height Map Fractal = 3D Noise 2D

Coordinate convention: a terrain graph is a function of position. It is evaluated in world space as the terrain is generated, at the coordinates of the point being sampled for each chunk. Every X, Y and Z referenced below (the coordinates fed to the noise samplers, and the World X / World Y / World Z nodes) is that absolute world position, not a chunk-local or pre-scaled one. Note that World X/Y/Z divide the coordinate by Max Height, so their output is normalized (1.0 = Max Height), while the noise samplers consume the raw world coordinate.

Nodes Common to Both Graphs

These nodes are available in both the 2D and the 3D Terrain Graph, with the same name and behaviour in each editor.

Constant

Outputs a fixed value. Supports Normalized (0-1), Percentage (0-100) and Meters unit modes.

Random

Deterministic pseudo-random value based on world X/Z position. Always outputs 0-1.

Copy

References the output of another node. Useful for reusing a result in multiple branches without recalculating.

Math Nodes

Transform a single input value.

NodeFormulaUse case
Shiftinput + valueRaise or lower terrain
Invert1 - inputSwap valleys and peaks
Add And Multiply(input + a) * mOffset then scale
Multiply And Add(input * m) + aScale then offset
Exponentialinput ^ expSharpen peaks (exp > 1) or flatten (exp < 1)
Abs|input|Create ridges from signed noise
RemapLinear map from [a,b] to [c,d]Rescale any range
Clampclamp(input, min, max)Limit output range

Blend Nodes

Combine two inputs (A and B).

NodeFormula
Blend AdditiveA * weightA + B * weightB
Blend MultiplyA * B
Minmin(A, B)
Maxmax(A, B)
SubtractA - B

Threshold

Compares input against a threshold. If greater or equal: adds a value. If less: outputs a fixed value.

Select

Pass-through filter: if input is within [Min, Max], output it unchanged. Otherwise output a fixed value.

2D Terrain Graph Only (Multi-Step)

Nodes that only exist in the 2D Terrain Graph, edited from a Multi-Step Terrain Generator.

Sample Height Map Texture

Samples a repeating 2D texture as a heightmap. Remaps grayscale value to Min/Max range. The equivalent node in the 3D graph is Noise 2D Texture.

ParameterDescription
Noise TextureTexture2D asset to sample (tiled)
FrequencyTiling frequency
OffsetX/Z offset for the sample position

Sample Height Map Fractal

Procedural fractal noise evaluated at (X, Z) world coordinates. Y-independent, benefits from column caching. The equivalent node in the 3D graph is Noise 2D.

ParameterDescription
FrequencyScale of the noise pattern. Lower values = larger features.
OctavesNumber of noise layers (1-8). More octaves = more detail, higher cost.
PersistenceAmplitude decay per octave. Lower = smoother terrain.
LacunarityFrequency multiplier per octave. Default 2.0.
Min / MaxOutput range remapping.

Sample Ridge Noise From Texture

Samples a repeating 2D texture as a heightmap, like Sample Height Map Texture, but folds the value with 2 * (0.5 - abs(0.5 - value)) to create sharp ridges. Produces more acute reliefs, typically used for pointy mountains or, when inverted, river valleys.

ParameterDescription
Noise TextureTexture2D asset to sample (tiled). The package ships three noise textures under Resources/Worlds/Earth/Noise.
FrequencyTiling frequency (scale applied to the texture)
OffsetX/Z offset for the sample position
Min / MaxOutput range the sampled value is remapped to

Sample Height Map Unity Terrain

Reads height values from a Unity TerrainData asset. Useful for importing existing terrain designs into Voxel Play.

Island (2D)

Distance-based falloff from world origin. Reduces height values outside a radius, creating finite island worlds.

Terraces

Quantizes values into stepped bands, creating terrace formations. The equivalent node in the 3D graph is Terraces 3D.

ParameterDescription
StepsNumber of terrace levels (2-64)
SmoothnessBlend between sharp and smooth terrace edges (0-1)
StrengthBlend between original input and terrace effect (0-1)

Flatten Or Raise

Modifies slope above a threshold. Use case: create plateaus and mesas.

Fill

If a reference input is within a range, output a fill value. Otherwise pass through the main input.

Test

Boolean test: outputs 1 if input is within [Min, Max], otherwise 0. Useful for masking.

Beach Mask

Special filter that suppresses beach generation where a mask value exceeds a threshold.

Divide

Combines two inputs: A / B (safe, returns 0 if B near zero).

3D Terrain Graph Only (Density)

Nodes that only exist in the 3D Terrain Graph, edited from a 3D Density Terrain Generator. These operate on a volumetric density field, enabling caves, overhangs and floating islands.

Noise 3D

3D fractal Perlin noise evaluated at (X, Y, Z). Produces values that vary with altitude, essential for caves and volumetric features.

Same parameters as Sample Height Map Fractal / Noise 2D. Higher computational cost since it cannot use column caching.

Noise 2D

Procedural fractal noise evaluated at (X, Z) world coordinates. Y-independent, benefits from column caching. This is the 3D-graph name for the same node the 2D graph calls Sample Height Map Fractal.

ParameterDescription
FrequencyScale of the noise pattern. Lower values = larger features.
OctavesNumber of noise layers (1-8). More octaves = more detail, higher cost.
PersistenceAmplitude decay per octave. Lower = smoother terrain.
LacunarityFrequency multiplier per octave. Default 2.0.
Min / MaxOutput range remapping.

Noise 2D Texture

Samples a Texture2D at (X, Z) world coordinates; the red channel is used as the value. This is the 3D-graph name for the same node the 2D graph calls Sample Height Map Texture.

ParameterDescription
Noise TextureTexture2D asset to sample (tiled)
FrequencyTiling frequency
OffsetX/Z offset for the sample position

Noise 2D Ridge / Noise 3D Ridge

Ridge noise variant: applies 1 - 2 * |noise - 0.5| to create sharp ridgeline patterns. Good for mountain ranges and jagged terrain.

World X / World Y / World Z

Output the normalized world coordinate (position / maxHeight). World Y is critical for 3D terrain - it provides the vertical position for height-based density.

Height Gradient

The fundamental 3D terrain node. Adds a vertical gradient that makes terrain solid below a base height and air above it.

ParameterDescription
Base HeightNormalized height (0-1) where surface forms. 0.3 = surface at 30% of max height.
Gradient StrengthHow sharply density changes with altitude. Negative values = solid below, air above (standard terrain).

Formula: output = input + (y - baseHeight * maxHeight) * gradient / maxHeight

Island 3D

Radial falloff from world origin. Subtracts density beyond the specified radius, creating island boundaries.

ParameterDescription
RadiusIsland radius in world units
Slope MultiplierFalloff steepness beyond the radius

Terraces 3D

Quantizes values into stepped bands, creating terrace formations. The equivalent node in the 2D graph is Terraces.

ParameterDescription
StepsNumber of terrace levels (2-64)
SmoothnessBlend between sharp and smooth terrace edges (0-1)
StrengthBlend between original input and terrace effect (0-1)

Canyon 2D

Carves a channel along the X or Z axis: river beds, canyons, trenches. The centerline meanders with fractal noise and the depth fades smoothly toward the banks. Pair with a water level to make a river.

Cave Carver

Generates swiss-cheese cave networks by subtracting density where 3D noise exceeds a threshold.

ParameterDescription
FrequencyCave network scale
OctavesDetail layers for cave shape
ThresholdMinimum noise value to carve (higher = fewer caves)
Carve StrengthHow much density is removed

Mask By Y

Restricts a value to a vertical band. Outside the band, outputs a fixed value.

ParameterDescription
Y Min / Y MaxVertical range where the input passes through
Outside ValueValue used outside the range
FadeSmooth transition distance at the boundaries (0 = hard cut)

Smooth Min

Smooth organic blend of two inputs controlled by a K factor. A softer alternative to the Min node for seamless density transitions.

Climate Map

Looks up the biome index from the World Definition's biome array based on altitude, moisture and temperature inputs.

Climate Map node: Altitude, Moisture and Temperature inputs on the left; Voxel ID, Vegetation ID, Tree ID and Water ID output ports on the right; Biome Blend parameter

InputDescription
AltitudeNormalized height (0-1)
MoistureHumidity value (0-1)
TemperatureOptional third axis (0-1) for VP4's 3-axis biome selection

The node provides dedicated Voxel, Vegetation, Tree and Water output ports, each carrying the biome index (0..N) of the first biome whose altitude/moisture/temperature ranges contain the input values. Connect each port to the matching terminal (Voxel ID, Vegetation ID, Tree ID, Water ID).

Biome Blend: softens biome borders instead of a hard cut. When greater than 0, the climate inputs are jittered by a small per-position random amount (scaled by this value) so neighboring biomes interleave at their edges. 0 = off (hard borders). Typical values: 0.02 - 0.08.

Discard

Always outputs zero (air). Use with conditional nodes to create empty regions.

Was this page helpful?