Skip to content
Brass Orrery

Orrery Terrain · OrreryTerrainCore module · struct

Native::

FScatterVariety

Experimental

One grass variety on one paint layer, in plain C++: the shell turns a ULandscapeGrassType variety plus a layer set entry (FOrreryTerrainLayerGrass) into this.

Declaration

struct FScatterVariety
Header
#include "Native/TerrainScatter.h"
Module
PublicDependencyModuleNames.Add("OrreryTerrainCore"); in your module’s Build.cs.
Stability
Experimental: supported, may change in a minor version, with a changelog line.
Thread
Tier 1: plain C++, no allocation, deterministic in canonical order (ascending candidate index), any thread. (the header’s rule)

Properties

NameTypeDefaultMeaning
Seeduint64_t0

ScatterVarietySeed(package path, variety index): part of every key.

Layerint32_t0

Paint layer whose effective weight drives the keep test, 0..255.

DensityPer100m2float0.f

Candidates per 100 m²: the variety's density × the entry's DensityScale.

bUseGridboolfalse

Jittered grid instead of the Halton(2,3) sequence.

PlacementJitterfloat1.f

Grid only, 0..1 of a grid step.

MinWeightfloat0.f

AllowedDensityRange.Min: kept only when W > MinWeight.

MaxWeightfloat1.f

AllowedDensityRange.Max: kept only when W <= MaxWeight.

ScalingEScatterScalingEScatterScaling::Uniform—
ScaleXfloat{1.f, 1.f}

Min, max.

ScaleYfloat{1.f, 1.f}—
ScaleZfloat{1.f, 1.f}—
bWeightAttenuatesMaxScaleboolfalse

A low weight lowers the scale's upper end.

MaxScaleWeightAttenuationfloat0.5f

With bWeightAttenuatesMaxScale, 0..1: the weights from this value to 1 map the upper end of each scale range from its minimum to its maximum; at or below it the upper end is the minimum (ULandscapeGrassType's public doc).

bRandomRotationbooltrue

Yaw from the key; else 0.

bAlignToSurfacebooltrue

Output the surface normal; else +Z.

bAlignToTriangleNormalsboolfalse

The cell's triangle normal instead of the bilinear post normal.

ULandscapeGrassType applies its flag to the grid only ("Halton always uses triangle normal"): the shell sets this for Halton varieties to match.

SlopeRangeDegfloat{0.f, 90.f}

Grows inside this slope band, degrees (the slope the material reads).

SlopeFadeDegfloat3.f

Smoothstep fade outside the band, degrees.

AltitudeRangeMfloat{-1.0e6f, 1.0e6f}

Grows inside this world-altitude band, metres (world Z, no AutoNoise offset).

AltitudeFadeMfloat5.f

Smoothstep fade outside the band, metres.

GroundClassMaskuint32_t0xFFFFFFFFu

Bit c: grows on ground class c (c < 31); bit 31: classes 31 and above.

bOnPlatesboolfalse

Grows inside plate footprints (cleared by default).

KeepClearMarginCmfloat100.f

Cleared within this distance of a corridor or opening footprint, cm.