physical lighting, volumetric clouds, terrain shadows, pixel-art render scale
- atmosphere: physical terrain lighting (air mass, Rayleigh beam colour, skylight, moon, starlight floor), aerial perspective for terrain and cloud deck, configurable haze/albedo/ambient gains - clouds: march the deck in height instead of ray distance, IGN dither (no per-frame flicker), per-step height jitter, 4-octave fbm renormalised, softer density threshold, distance softening as a procedural mip, grazing path clamp, cloud shadows on the ground (cloudShadowDensity/ Floor/Ambient) and cloud haze factor - terrain: self-shadows from the elevation field (penumbra + shadow floor), soft mosaic rim (edgeFadeTiles), east/west axis corrected (+X = west) - lights: per-object twilight switching for cars, city dots and ground blocks - flights: contrail width 620 m, fade to zero by contrailFadeKm, aircraft size decoupled from trail width, count halved - render: CONFIG.renderScale with integer upscale + image-rendering: pixelated - data: nginx overpass proxy + cache, per-mirror cooldown ladder, ring-based cell ordering (disc fills evenly), settlements fetched before roads, interim chain persistence, two worker lanes (car/city) with progress logs - removed: NASA VIIRS night-lights layer (fetch, canvas, texture, uniforms)
This commit is contained in:
1 parent
cd460ec100
commit
6eb25bdd03
6 files changed
+2579
-795
No files matched your search
@@ -5,9 +5,17 @@ server {
|
||||
index background.html;
|
||||
|
||||
location / {
|
||||
add_header Cache-Control "no-store, must-revalidate" always;
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
|
||||
# Page, config and scripts must never come out of a stale browser
|
||||
# cache: without this a changed CONFIG (new location, layer toggles)
|
||||
# keeps rendering the previous setup until a hard reload.
|
||||
location ~* \.(js|html)$ {
|
||||
add_header Cache-Control "no-store, must-revalidate" always;
|
||||
}
|
||||
|
||||
# The background page runs as an iframe on other origins; a stray
|
||||
# favicon request must not log 404s.
|
||||
location = /favicon.ico {
|
||||
@@ -55,6 +63,83 @@ server {
|
||||
add_header Access-Control-Allow-Origin "*" always;
|
||||
}
|
||||
|
||||
# CORS proxy for Overpass (road, place and airport queries). The public
|
||||
# mirrors answer cross-origin POSTs without Access-Control-Allow-Origin
|
||||
# (or refuse outright), so the app talks to same-origin paths here and
|
||||
# nginx forwards with a browser-like request. Overpass timeouts are long:
|
||||
# a busy instance needs more than the default 60 s.
|
||||
# URL format: /overpass/<mirror>/interpreter (mirror: api | coffee | mail)
|
||||
location ^~ /overpass/api/ {
|
||||
# Host in a variable so the resolver directive applies: with a literal
|
||||
# host nginx resolves at config time and tried AAAA records, which the
|
||||
# container cannot reach (101 Network unreachable) and which then
|
||||
# disabled the upstream for a while.
|
||||
resolver 1.1.1.1 8.8.8.8 ipv6=off valid=300s;
|
||||
set $overpass_api_host "overpass-api.de";
|
||||
proxy_pass https://$overpass_api_host/api/;
|
||||
proxy_ssl_server_name on;
|
||||
proxy_set_header Host overpass-api.de;
|
||||
proxy_set_header Origin "https://overpass-api.de";
|
||||
proxy_set_header Referer "https://overpass-api.de/api/interpreter";
|
||||
proxy_set_header User-Agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";
|
||||
proxy_connect_timeout 15s; proxy_send_timeout 120s; proxy_read_timeout 120s;
|
||||
# A cell that answered once is kept for 30 days and served even while
|
||||
# the mirror is down (stale), so a flaky instance cannot undo progress
|
||||
# the browser already paid for.
|
||||
proxy_cache overpass;
|
||||
proxy_cache_key "$scheme$host$request_uri$request_body";
|
||||
proxy_cache_methods POST;
|
||||
proxy_cache_valid 200 30d;
|
||||
proxy_cache_lock on;
|
||||
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
|
||||
add_header X-Cache $upstream_cache_status always;
|
||||
add_header Access-Control-Allow-Origin "*" always;
|
||||
}
|
||||
location ^~ /overpass/coffee/ {
|
||||
resolver 1.1.1.1 8.8.8.8 ipv6=off valid=300s;
|
||||
set $overpass_coffee_host "overpass.private.coffee";
|
||||
proxy_pass https://$overpass_coffee_host/api/;
|
||||
proxy_ssl_server_name on;
|
||||
proxy_set_header Host overpass.private.coffee;
|
||||
proxy_set_header Origin "https://overpass.private.coffee";
|
||||
proxy_set_header Referer "https://overpass.private.coffee/api/interpreter";
|
||||
proxy_set_header User-Agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";
|
||||
proxy_connect_timeout 15s; proxy_send_timeout 120s; proxy_read_timeout 120s;
|
||||
# A cell that answered once is kept for 30 days and served even while
|
||||
# the mirror is down (stale), so a flaky instance cannot undo progress
|
||||
# the browser already paid for.
|
||||
proxy_cache overpass;
|
||||
proxy_cache_key "$scheme$host$request_uri$request_body";
|
||||
proxy_cache_methods POST;
|
||||
proxy_cache_valid 200 30d;
|
||||
proxy_cache_lock on;
|
||||
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
|
||||
add_header X-Cache $upstream_cache_status always;
|
||||
add_header Access-Control-Allow-Origin "*" always;
|
||||
}
|
||||
location ^~ /overpass/mail/ {
|
||||
resolver 1.1.1.1 8.8.8.8 ipv6=off valid=300s;
|
||||
set $overpass_mail_host "maps.mail.ru";
|
||||
proxy_pass https://$overpass_mail_host/osm/tools/overpass/api/;
|
||||
proxy_ssl_server_name on;
|
||||
proxy_set_header Host maps.mail.ru;
|
||||
proxy_set_header Origin "https://maps.mail.ru";
|
||||
proxy_set_header Referer "https://maps.mail.ru/osm/tools/overpass/api/interpreter";
|
||||
proxy_set_header User-Agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";
|
||||
proxy_connect_timeout 15s; proxy_send_timeout 120s; proxy_read_timeout 120s;
|
||||
# A cell that answered once is kept for 30 days and served even while
|
||||
# the mirror is down (stale), so a flaky instance cannot undo progress
|
||||
# the browser already paid for.
|
||||
proxy_cache overpass;
|
||||
proxy_cache_key "$scheme$host$request_uri$request_body";
|
||||
proxy_cache_methods POST;
|
||||
proxy_cache_valid 200 30d;
|
||||
proxy_cache_lock on;
|
||||
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
|
||||
add_header X-Cache $upstream_cache_status always;
|
||||
add_header Access-Control-Allow-Origin "*" always;
|
||||
}
|
||||
|
||||
# CORS preflight handler
|
||||
location ~* \.(png|jpg)$ {
|
||||
if ($request_method = 'OPTIONS') {
|
||||
|
||||
Reference in new issue
Block a user