Glad to see terrain painting in progress. One request for its design: please don't lock regions to just 4 materials total.
Good-looking terrain needs more variety than 4: rock, a pebble/scree transition around the rock, riverbed, wet dirt along the banks, paths, grass, forest floor. With only 4 slots, creators will keep covering the ground with mesh and alpha decals, and that costs more performance than the terrain itself.
Proposal, borrowed from how World of Warcraft handles it:
  • Each region gets a larger material palette (12–16 slots).
  • The region is divided into patches (e.g. 16m or 32m).
  • Each patch picks up to 4 materials from the palette, and the paintmap stores weights for those 4.
Why this works:
  • Shader cost per pixel stays the same as today (still 4 layers blended per patch), so low-end hardware isn't hit any harder.
  • The palette can live in a GPU texture array, so the extra memory is predictable and bounded.
  • Because it's per region rather than per parcel, it avoids the texture-loading problems mentioned for parcel-level swatches.
  • The editor can assign patch materials automatically: painting with a material that isn't in a patch's set yet adds it if there's a free slot.
WoW has used this exact approach (4 textures per ~33m chunk, drawn from a larger zone tileset) since 2004. It's a big part of why its terrain looks hand-crafted without heavy geometry.