clouds3d-only cleanup: drop Vanta/three.js/clouds2d, real-sky fixes, settlement lights, dynamic location anchor
This commit is contained in:
1 parent
e4170bee62
commit
fbac24773a
17 files changed
+3217
-3411
No files matched your search
@@ -9,21 +9,54 @@
|
||||
* timeFormat - Moment.js-compatible format string for the clock.
|
||||
* debug - If 1, the right-side debug panel is shown.
|
||||
* units - Object with 'temperature' ('C' or 'F').
|
||||
* renderer - Background renderer: 'vanta' (default, GPU 3D volumetric
|
||||
* raymarched clouds via three.js), 'clouds2d' (lightweight
|
||||
* WebGL fragment shader, 2D fBm scrolling), or 'clouds3d'
|
||||
* (volumetric raymarcher with camera fly-through).
|
||||
* location - Geographic coordinates for sun/moon calculations. Used
|
||||
* by SunCalc (https://github.com/mourner/suncalc). Object
|
||||
* with 'lat' (latitude, -90 to +90) and 'lon' (longitude,
|
||||
* -180 to +180). Positive lat = north, positive lon = east.
|
||||
* Optionally add 'label' (string) to override the
|
||||
* reverse-geocoded city name.
|
||||
* Note: the height grid is axis-aligned (N up); terrain
|
||||
* matches the 8-mode square mosaic and straight flights
|
||||
* with fetch=N. Heights: Copernicus DEM via terrarium
|
||||
* tiles (z9, ~200 m), fetched once per session.
|
||||
* terrain - 3D ground from real elevation data. Object:
|
||||
* enabled - true (default) / false = flat plane.
|
||||
* exaggeration - vertical scale factor on the DEM
|
||||
* (default 8; 1 would be physically
|
||||
* true and nearly invisible at this
|
||||
* horizontal scale).
|
||||
* weatherSim - If true, ignore open-meteo and cycle through
|
||||
* ['sunny','cloudy','stormy','night'] automatically every
|
||||
* weatherSimInterval ms. Useful for A/B testing every
|
||||
* theme without waiting on the API.
|
||||
* weatherSimInterval - Sim cycle period in ms (default 30000).
|
||||
* orbit - Figure-eight flight (Bernoulli lemniscate) around
|
||||
* CONFIG.location instead of a straight drift. The
|
||||
* eight's self-crossing sits exactly on the configured
|
||||
* coordinate. Each time the aircraft crosses that point
|
||||
* a new random orientation is picked and blended in
|
||||
* over one lobe (spline through the crossing). Object:
|
||||
* radiusKm - lobe tip reach from the centre in km
|
||||
* (~13 km per tile at z11/48deg N).
|
||||
* Clamped (~190 km) so tips + fog horizon
|
||||
* fit inside the 43x43 tile mosaic.
|
||||
* clockwise - travel direction along the eight.
|
||||
* reorient - random re-aim at every crossing
|
||||
* (default true; false keeps the bearing).
|
||||
* Set to null (or remove) for the straight-line flight.
|
||||
* fog - Ground fog / distance haze. Object with 'distanceKm'
|
||||
* (visibility range at which terrain fully blends into
|
||||
* a milky haze; default 120). false/0 disables fog.
|
||||
* clouds - Vertical extent of the cloud deck in world units
|
||||
* (1 unit = ~13 km at zoom 11; camera flies at y=2.2).
|
||||
* Object with 'top' and 'bottom'. Default keeps the
|
||||
* deck a bit below flight altitude.
|
||||
* tiles - All downloads (street tiles, elevation grid, last
|
||||
* weather payload, geo label) live permanently in
|
||||
* IndexedDB and are never re-fetched once cached; a
|
||||
* warm cache = fully offline rendering. Set
|
||||
* expireDays (number > 0) to re-fetch street tiles
|
||||
* periodically (e.g. 90).
|
||||
*
|
||||
* Time format tokens (subset):
|
||||
* YYYY 4-digit year (2026)
|
||||
@@ -42,19 +75,96 @@ window.CONFIG = {
|
||||
theme: 'ash',
|
||||
language: 'en',
|
||||
timeFormat: 'DD. MMMM, YYYY ‒ HH:mm:SS',
|
||||
debug: 1,
|
||||
debug: 0,
|
||||
units: {
|
||||
temperature: 'C'
|
||||
},
|
||||
renderer: 'clouds3d', // 'vanta', 'clouds2d', or 'clouds3d'
|
||||
// Data attribution at the bottom of the info box (auto text based on
|
||||
// the enabled layers). false = ausgeblendet.
|
||||
credits: true,
|
||||
// Internal 3D resolution scale (0.3..1, default 1). Lower values
|
||||
// render the clouds/map shader at reduced resolution and upscale
|
||||
// via CSS - use it if fps is low (GPU-bound) despite a quiet CPU.
|
||||
renderScale: 1,
|
||||
location: {
|
||||
// Latitude and longitude for sun/moon calculations
|
||||
// Default: Passau, Germany
|
||||
// Passau (vorher: Muenchen 48.1374/11.5755, Innsbruck 47.2692/11.4041)
|
||||
lat: 48.5667,
|
||||
lon: 13.4319
|
||||
},
|
||||
weatherSim: false,
|
||||
weatherSimInterval: 30000,
|
||||
// Alles Downloads (Strassenkacheln, Hoehengitter, Wetter-JSON,
|
||||
// Geo-Label) bleibt dauerhaft im IndexedDB — kein erneuter
|
||||
// Download. expireDays (Tage, >0) reaktiviert periodisches
|
||||
// Auffrischen der Strassenkacheln.
|
||||
tiles: {
|
||||
expireDays: null,
|
||||
// true = Kachel-Raender + N/S + x/y-Koords in die Boden-Textur
|
||||
// malen (Debug-Orientierung). Aus = saubere Karte.
|
||||
debug: false
|
||||
},
|
||||
// Boden-Bildquelle: 'satellite' = ESRI World_Imagery (Luftbild, ohne
|
||||
// Beschriftung), 'streets' = ESRI World_Street_Map (mit Ortsnamen).
|
||||
// Beide dauerhaft gecacht (eigener Cache- Praefix pro Stil).
|
||||
ground: {
|
||||
style: 'satellite'
|
||||
},
|
||||
// Achterkurs um location (lat/lon), ueberschneidungspunkt genau auf
|
||||
// der Koordinate. null/entfernen = gerade Flugbahn.
|
||||
orbit: {
|
||||
radiusKm: 60, // Lappenspitze: max. Abstand vom Zentrum
|
||||
clockwise: true,
|
||||
reorient: true, // Zufalls-Ausrichtung an jedem Kreuzungs-Durchflug
|
||||
// Langsames vertikales Wogen innerhalb der Flugband 15-35 km:
|
||||
// Mitte 25 km (~1.93 Welt-Einheiten), amp = halbes Band
|
||||
// (10 km ~ 0.77); harte Klemme ueber/unter die Bandgrenzen.
|
||||
// periodS Sekunden pro Zyklus, tilt = Reaktion der Kamera-Nase
|
||||
// auf Steig-/Sinkrate. enabled: false = konstant 25 km.
|
||||
altBob: { enabled: true, amp: 0.77, periodS: 90, tilt: 0.3 }
|
||||
},
|
||||
// Bodennebel: Distanz-Haze. distanceKm = Sichtweite bis vollständige
|
||||
// Nebelsaettigung (false/0 = aus).
|
||||
fog: {
|
||||
distanceKm: 120
|
||||
},
|
||||
// 3D-Boden aus echten Hoehendaten (Copernicus DEM, terrarium-Kacheln).
|
||||
// enabled: false = flache Ebene. exaggeration: vertikale Ueberhoehung
|
||||
// (1 = real, unsichtbar; default 8). wireframe: true = Mesh-Kanten
|
||||
// als orange Linien zusaetzlich einblenden (Debug).
|
||||
// nightLights: NASA-VIIRS-Stadtlichter-Layer, der ab Sonnenuntergang
|
||||
// ueber ~1 h in die Tageskarte geblendet wird (dunkler Boden,
|
||||
// leuchtende Staedte). Einmaliger Fetch (~49 Kacheln), persistent
|
||||
// gecacht. false = kein Lichtoverlay, nachts bleibt die normale
|
||||
// Textur deutlich heller (nur sanft abgedimmt).
|
||||
// carLights: fahrende Lichter auf Autobahnen (OSM/Overpass-Kurven,
|
||||
// nachts additiv ueber dem Gelaende). JSON einmalig, persistent gecacht.
|
||||
// cityLights: Siedlungslichter — OSM-Ortsknoten (city/town/village/
|
||||
// hamlet) als leicht gelbliche Glow-Punkte, ab Daemmerung statisch;
|
||||
// je groesser die Siedlung (place-Klasse + population-Tag), desto
|
||||
// mehr und hellere Punkte. Eine Overpass-Abfrage, persistent gecacht.
|
||||
// Daten (c) OpenStreetMap-Mitwirkende, ODbL.
|
||||
terrain: {
|
||||
enabled: true,
|
||||
exaggeration: 10,
|
||||
wireframe: false,
|
||||
nightLights: false,
|
||||
carLights: true,
|
||||
cityLights: true
|
||||
},
|
||||
// Tagessimulation: true = 24h-Zyklus wird in cycleSeconds durchlaufen
|
||||
// (Sonne steigt im Osten, Mittag im Sueden, Untergang im Westen).
|
||||
// false = echte Sonnen-/Mondposition via SunCalc.
|
||||
day: {
|
||||
simulation: false,
|
||||
cycleSeconds: 20
|
||||
},
|
||||
// Wolkendecke in Welt-Einheiten (1 unit ~ 13 km bei Zoom 11;
|
||||
// Kamera fliegt auf y=2.2). Decke etwas unter Flughohe.
|
||||
clouds: {
|
||||
top: 0.9,
|
||||
bottom: -0.3
|
||||
},
|
||||
};
|
||||
|
||||
// List of available themes. The key is the theme id (used in config.theme),
|
||||
|
||||
Reference in new issue
Block a user