Build the wall that closes the map's open edges: a vertical face under every
boundary cell, its top following the terrain's own contour and its base one
flat Y beneath the whole map — the map as a block of earth cut out of the
world with the landscape left intact on top.
Only the perimeter is walled — O(width + height) faces, not O(cells) —
so this is cheap enough to rebuild outright whenever the map changes,
without needing the chunk machinery.
The geometry-matching options (perturbStrength, noiseScale,
elevationScale, elevPerturbStrength) must be the values the terrain
was built with. They are what place the top vertices, and a mismatch shows
as a torn seam along the whole map edge rather than as anything subtle.
Known gap: a river running off the map edge carves its bed below the cell
top, and the wall's top is flat across the face, so a river mouth exactly on
the rim leaves a small notch. Rivers normally terminate in a water body
before the edge, and closing it would mean mirroring HexChunkCore's river
branch here — the kind of duplication that has already bitten the waterfall
code — so it is left open deliberately.
Build the wall that closes the map's open edges: a vertical face under every boundary cell, its top following the terrain's own contour and its base one flat Y beneath the whole map — the map as a block of earth cut out of the world with the landscape left intact on top.
Only the perimeter is walled —
O(width + height)faces, notO(cells)— so this is cheap enough to rebuild outright whenever the map changes, without needing the chunk machinery.The geometry-matching options (
perturbStrength,noiseScale,elevationScale,elevPerturbStrength) must be the values the terrain was built with. They are what place the top vertices, and a mismatch shows as a torn seam along the whole map edge rather than as anything subtle.Known gap: a river running off the map edge carves its bed below the cell top, and the wall's top is flat across the face, so a river mouth exactly on the rim leaves a small notch. Rivers normally terminate in a water body before the edge, and closing it would mean mirroring HexChunkCore's river branch here — the kind of duplication that has already bitten the waterfall code — so it is left open deliberately.