Optionalalign0 = stand upright, 1 = tilt fully onto the terrain normal (rocks), anything between blends.
OptionalclusterClumping into patches and clearings, or null for an even spread.
OptionalcolorPer-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.
Share (0..1) of the blue-noise points this species takes.
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).
OptionalmaxHighest terrain height, in metres.
OptionalmaxSteepest terrain slope (rise / run) that gets instances. Infinity = no limit.
OptionalminLowest terrain height, in metres.
OptionalminLowest terrain slope (rise / run) that gets instances.
A species preset ('oak', 'spruce', …), a rocks preset ('boulder', …), or any name when params is given.
OptionalparamsOverrides on top of the preset: tree params, or rock params for rock presets.
OptionalrandomTurn each instance by a random angle around its up axis.
OptionalscaleUniform scale range [min, max]; each instance picks a random value in it.
OptionalsinkHow far each instance is pushed into the ground, in metres (hides the base on slopes).
OptionalspacingMinimum distance between instances, in metres (Poisson-disk radius).
OptionaltiltMaximum random lean of each instance away from vertical, in radians (applied before align).
OptionalvariantsDistinct generated variants (overrides VegetationOptions.variants).
One kind of plant (or rock) in a vegetation set. Any placement rule left out gets a sensible default for the kind (rocks tilt onto the slope and sink in, trees stand upright and avoid cliffs).