Improve railroad visibility: own-rail contrast color and thickness setting

Local-player rails previously rendered in the white focused-border color
from the palette, making them hard to see on light territory. Rails now
use a dedicated local rail color: white normally, flipped to black when
the territory backdrop is too light for white to read against (patterns
average their primary/secondary brightness).

Also add a railThickness render setting (0.5-3, default 1), exposed in
the Graphics Settings modal and the debug GUI, and persisted via
GraphicsOverrides. In the medium-zoom LOD, rails are now drawn as
screen-space anti-aliased lines around each tile's rail centerline,
accumulated from the 3x3 neighborhood so thick lines spill cleanly into
neighboring tiles; detailed mode scales its sub-grid band widths.

- PlayerView: compute railColor() (white/black by backdrop brightness)
- RailroadPass/shader: uLocalPlayerID, uLocalRailColor, uRailThickness
- render-settings.json, RenderSettings, GraphicsOverrides,
  RenderOverrides: new railroad.railThickness knob
- GraphicsSettingsModal: "Train track thickness" slider (+ en.json keys)
- tests: schema + apply coverage for railroad overrides
This commit is contained in:
evanpelle
2026-06-10 18:56:29 -07:00
parent b0e7d04f6e
commit 9189aac687
14 changed files with 253 additions and 44 deletions
+2
View File
@@ -958,6 +958,8 @@
"territory_alpha_desc": "How opaque the territory fill is (lower lets terrain show through)",
"rail_distance_label": "Train track draw distance",
"rail_distance_desc": "How far zoomed out train tracks remain visible",
"rail_thickness_label": "Train track thickness",
"rail_thickness_desc": "How wide train tracks are drawn",
"section_effects": "Effects",
"reset_label": "Reset to defaults",
"reset_desc": "Clear all graphics overrides"