0 = stand upright, 1 = tilt fully onto the terrain normal (rocks), anything between blends.
Whether instances cast shadows (can be overridden per level).
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).
Far level drawn after the last mesh level, typically from bakeImpostor(). Unlike mesh levels it is not an
InstancedMesh: its material reads two per-instance attributes, scatterPosition (xyz = base position,
w = scale) and scatterParams (x = yaw, y = brightness tint, z = random 0..1).
Mesh levels of detail, nearest first, with ascending distance.
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.
Whether instances receive shadows.
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).
One kind of scattered object (a tree species variant, a rock type, a shrub…): where it grows (PlacementRules) and how it is drawn at each distance.
lods,impostorand a functiondensityare the only non-JSON fields.