mapspinner 0.1.65 → 0.1.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mapspinner",
3
- "version": "0.1.65",
3
+ "version": "0.1.67",
4
4
  "description": "WebGL2 Earth-scale terrain rendering SDK for interactive globe applications",
5
5
  "main": "src/index.js",
6
6
  "exports": {
@@ -1807,9 +1807,13 @@ void main() {
1807
1807
  // NOT a fractal (user 2026-06-14: 'looking like a fractal, use the materials displacement'). Widen
1808
1808
  // the gate transition band so sand+grass overlap over a broad elevation span -> bSharp picks the
1809
1809
  // local winner by texture relief -> fingered shoreline that follows the actual texture bumps.
1810
+ // MUCH MORE GRADUAL grass<->sand margin (user 2026-06-14): the WEIGHT crosses over slowly across
1811
+ // a wide elevation span (0 -> ~2.5x beachTop); the per-pixel transition is then made HARD by the
1812
+ // displacement height-blend (small bw below) so sand vs grass is a sharp choice distributed by
1813
+ // texture relief = interlocking fingers that thin out with height, never a blendy fade.
1810
1814
  float beachW = warpN * uBeachTopM * 0.30; // warp amplitude scales with the beach band height
1811
- float beach = (1.0 - smoothstep(uBeachTopM * 0.10 + beachW, uBeachTopM * 1.15 + beachW, vH))
1812
- * (1.0 - smoothstep(0.15, 0.42, slope));
1815
+ float beach = (1.0 - smoothstep(beachW, uBeachTopM * 2.5 + beachW, vH))
1816
+ * (1.0 - smoothstep(0.18, 0.55, slope));
1813
1817
  // SAND BLEED (2026-06-13): patchy sand spills above the main beach line, modulated by VS
1814
1818
  // warp noise so the edge reads as wind-blown pockets, not a strict elevation cut. At peak it
1815
1819
  // adds ~0.3 sand weight far above the beach, creating a natural dappled transition.
@@ -1912,9 +1916,13 @@ void main() {
1912
1916
  // offset by the ramp'): height = displacement + a weight-ramp offset (gate positions the
1913
1917
  // boundary); higher wins over a soft width so the loser's high bumps poke through = fingers,
1914
1918
  // no hard line. ONE blend for ALL pairs. Mips smooth dispA/dispB at distance -> soft far edge.
1915
- float bw = 0.25;
1916
- float hA = dispA + (bAB - 0.5) * 1.1;
1917
- float hB = dispB + (0.5 - bAB) * 1.1;
1919
+ float bw = 0.06; // NEAR-HARD crossover (user 2026-06-14 'make the transition hard, let the displacement make the distribution interesting -> far less blendy'): the displacement picks a sharp per-pixel winner; the gate weight only shifts the proportion across the ramp
1920
+ // weight-ramp coefficient 1.1 -> 0.5 (user 2026-06-14 'we want that crossover on ALL
1921
+ // crossovers'): a weaker weight ramp lets the DISPLACEMENT decide the winner over a WIDER
1922
+ // weight range, so the near-hard displacement-driven distribution spans a broad margin for
1923
+ // EVERY pair (rock-slope, snow, biome...), not just the explicitly-widened beach gate.
1924
+ float hA = dispA + (bAB - 0.5) * 0.5;
1925
+ float hB = dispB + (0.5 - bAB) * 0.5;
1918
1926
  float mh = max(hA, hB) - bw;
1919
1927
  float waH = max(hA - mh, 0.0), wbH = max(hB - mh, 0.0);
1920
1928
  float bSharp = waH / max(waH + wbH, 1e-4);