0 = stand upright, 1 = tilt fully onto the terrain normal (rocks), anything between blends.
Clumping into patches and clearings, or null for an even spread.
Per-instance brightness variation, 0..1, sent as scatterParams.y: multiply it into your material's colorNode
(scatterParamsNode().y) before any weather, so snow and ash stay untinted. Not sent as instanceColor, which
three.js multiplies in after colorNode.
Probability (0..1) of keeping each blue-noise point, constant or per world position. The function form lets biome weights drive it. Within a group, densities that add up to more than 1 are normalised.
OptionalgroupLayers with the same group share one blue-noise point set and never overlap: each point goes to at most one
layer, chosen by comparing a per-point random number against the layers' densities (in layer order). The group's
spacing is the first layer's. Defaults to the layer's own name (its own point set).
Highest terrain height, in metres.
Steepest terrain slope (rise / run) that gets instances. Infinity = no limit.
Lowest terrain height, in metres.
Lowest terrain slope (rise / run) that gets instances.
Layer name. Also seeds the layer's clumping noise, so renaming a layer moves its patches.
Turn each instance by a random angle around its up axis.
Uniform scale range [min, max]; each instance picks a random value in it.
How far each instance is pushed into the ground, in metres (hides the base on slopes).
Minimum distance between instances, in metres (Poisson-disk radius).
Maximum random lean of each instance away from vertical, in radians (applied before align).
The placement rules of one layer: where its instances go, and how each is scaled and turned.