Show more rivers (riverThreshold 50->25) + remove globe subgrid overlay

Two fixes from user feedback on the hydrology view:

1. Rivers looked too sparse. Investigated coupling rainfall into discharge
   (climate precip -> river rainfall): it does NOT work as hoped because river
   *location* is set by drainage topology (where water collects), not local
   rainfall -- weighting rainfall mostly changes river *size*, and concentrating
   a fixed water budget pushes mid-size rivers below the display threshold, so
   FEWER rivers show. Reverted that approach. Instead lower the default
   riverThreshold 50 -> 25 so tributaries render too: a richer, more visible
   network (~2x river cells on test worlds) without descending into noise.
   Tunable in planet.cfg.

2. Clicking a tile overlaid a low-res, always-elevation-coloured subgrid patch
   on the 3D globe that clashed with the active colour mode and read as a
   "strange pattern". Removed the globe overlay; the clicked tile's high-res
   subgrid still shows in the right-side detail panel.

test_logic + test_biota pass; full app builds clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Jonas Reith 2026-06-27 23:04:49 +02:00
parent 4aacfdabdd
commit 708b23d774
4 changed files with 7 additions and 5 deletions

View File

@ -113,7 +113,7 @@ Drift keeps running at a finer timestep during hydrology. (Config keys keep the
phase3AfterMy 300 My drift before the "Start Phase 2.5?" prompt phase3AfterMy 300 My drift before the "Start Phase 2.5?" prompt
phase3DtScale 0.2 hydrology timestep = cflDtMy()*this (finer = slower drift) phase3DtScale 0.2 hydrology timestep = cflDtMy()*this (finer = slower drift)
rainfall 1.0 uniform precip per cell (drainage-area unit) rainfall 1.0 uniform precip per cell (drainage-area unit)
riverThreshold 50 discharge above which a cell is a river riverThreshold 25 discharge above which a cell is a river (lower = richer network)
riverIncision 0.02 K in stream-power incision K*Q^m*S^n*dt (raise = carve faster) riverIncision 0.02 K in stream-power incision K*Q^m*S^n*dt (raise = carve faster)
riverDischargeExp 0.5 m (discharge exponent) riverDischargeExp 0.5 m (discharge exponent)
riverSlopeExp 1.0 n (slope exponent) riverSlopeExp 1.0 n (slope exponent)

View File

@ -563,7 +563,7 @@ triangles (plates are fixed in phase 1).
before the Phase-3 prompt; `phase3DtScale` (0.2) — Phase-3 timestep = before the Phase-3 prompt; `phase3DtScale` (0.2) — Phase-3 timestep =
`cflDtMy()*this` (smaller = finer carving, slower drift per step); `rainfall` `cflDtMy()*this` (smaller = finer carving, slower drift per step); `rainfall`
(1.0) — uniform precip per cell (drainage-area unit; orographic precip is a later (1.0) — uniform precip per cell (drainage-area unit; orographic precip is a later
climate add-on); `riverThreshold` (50) — discharge above which a cell is a river climate add-on); `riverThreshold` (25) — discharge above which a cell is a river
(also the river-render threshold); `riverIncision` K (0.02) + `riverDischargeExp` (also the river-render threshold); `riverIncision` K (0.02) + `riverDischargeExp`
m (0.5) + `riverSlopeExp` n (1.0) — stream-power incision `K*Q^m*S^n*dt` (raise K m (0.5) + `riverSlopeExp` n (1.0) — stream-power incision `K*Q^m*S^n*dt` (raise K
for faster valley carving); `riverTransport` (0.1) — transport capacity for faster valley carving); `riverTransport` (0.1) — transport capacity

View File

@ -34,8 +34,9 @@ void Viewer::renderGlobe3D() {
} }
rlEnd(); rlEnd();
if (selectedCell >= 0) // detail patch // (The clicked tile's high-res subgrid is shown in the right-side detail panel,
drawSubgrids(subgrids, visBase, elevExagg, planet.cfg.seaLevel, 0.0016f); // not overlaid on the globe -- the overlay was a low-res, always-elevation-coloured
// patch that clashed with the active colour mode and read as a "strange pattern".)
if (showBorders && (!borders.empty() || !ridgeBorders.empty())) { if (showBorders && (!borders.empty() || !ridgeBorders.empty())) {
rlSetLineWidth(2.0f); rlBegin(RL_LINES); rlSetLineWidth(2.0f); rlBegin(RL_LINES);

View File

@ -158,7 +158,8 @@ struct PlanetConfig {
double phase3AfterMy = 300.0; // My of drift before the Phase-3 prompt double phase3AfterMy = 300.0; // My of drift before the Phase-3 prompt
double phase3DtScale = 0.2; // Phase-3 timestep = cflDtMy() * this (finer) double phase3DtScale = 0.2; // Phase-3 timestep = cflDtMy() * this (finer)
double rainfall = 1.0; // uniform precip per cell (drainage-area unit) double rainfall = 1.0; // uniform precip per cell (drainage-area unit)
double riverThreshold = 50.0; // discharge above which a cell counts as a river double riverThreshold = 25.0; // discharge above which a cell counts as a river
// (lower = richer network incl. tributaries shown)
double riverIncision = 0.02; // K in stream-power incision K*Q^m*S^n*dt double riverIncision = 0.02; // K in stream-power incision K*Q^m*S^n*dt
double riverDischargeExp = 0.5; // m: discharge exponent in stream power double riverDischargeExp = 0.5; // m: discharge exponent in stream power
double riverSlopeExp = 1.0; // n: slope exponent in stream power double riverSlopeExp = 1.0; // n: slope exponent in stream power