ReadonlysystemReadonlyheightsReadonlysplatReadonlysplatReadonlyholeReadonlycolorReadonlyoriginReadonlyoriginReadonlyextentReadonlyextentReadonlylayerNormalized height at a world point (bilinear), for flatten targets.
Paint one layer's weight up (renormalizing the others down) and flush the touched splat region. Returns the dirty texel rect in SPLAT texels, or null when painting is unavailable (no splat maps / layer out of range).
Punch (or fill, erase) a hole under the stamp and flush the touched
mask region. Hole edges are binary — every texel within the radius is
set — so the brush is predictable; strength/falloff don't apply. Returns
the dirty texel rect in HOLE-MASK texels, or null when no mask is bound.
Tint the color map toward color (linear 0-1 rgb; 0.5 gray = neutral in
the shader's overlay encoding) under the stamp with soft falloff, raising
the paint opacity as the brush dwells — or fade the paint back out with
erase. Returns the dirty texel rect in COLOR-MAP texels, or null when
no color map is bound.
Copy a height region (row-major, rect-sized) for undo snapshots.
Write a height region back (undo/redo) and flush it.
Copy a splat region from both weight maps (b empty when absent).
Write a splat region back (undo/redo) and flush it.
Copy a hole-mask region (row-major, rect-sized) for undo snapshots.
Write a hole-mask region back (undo/redo) and flush it.
Copy a color-map region (row-major RGBA, rect-sized) for undo.
Write a color-map region back (undo/redo) and flush it.
Upload a height texel region and re-bake the VT pages under it.
Upload a splat texel region and re-bake nothing (splats are sampled at shade time, not baked into VT pages).
Upload a hole-mask texel region (sampled at shade time — no VT rebake; the collider rebuild rides the editor's dataVersion bump).
Upload a color-map texel region (sampled at shade time — no VT rebake).
Apply one height brush stamp and flush the touched region (texture upload
flattenTargetis the normalized height flatten pulls toward (sample it once at stroke start).