docs: update performance and cloud configuration
This commit is contained in:
1 parent
3e5406dc1d
commit
e14f938252
2 files changed
+38
-7
No files matched your search
@@ -1 +1,2 @@
|
|||||||
background-standalone.html
|
background-standalone.html
|
||||||
|
Screenshot*.png
|
||||||
@@ -7,9 +7,10 @@ dropped into an iframe or kiosk browser and left running.
|
|||||||
## Features
|
## Features
|
||||||
|
|
||||||
- **WebGL flight scene** (`vendor/clouds3d.js`): a 3D terrain mesh built from
|
- **WebGL flight scene** (`vendor/clouds3d.js`): a 3D terrain mesh built from
|
||||||
real elevation data (Copernicus DEM), a raymarched volumetric cloud deck,
|
real elevation data (Copernicus DEM), a raymarched volumetric cloud deck with
|
||||||
optional round-world curvature, and a figure-eight flight path around the
|
soft layer edges and adaptive march length, optional round-world curvature,
|
||||||
configured location with a vertical bob inside the 15-35 km flight band.
|
and a figure-eight flight path around the configured location with a vertical
|
||||||
|
bob inside the 15-35 km flight band.
|
||||||
- **One physical light model** shared by sky, clouds, contrails, aircraft and
|
- **One physical light model** shared by sky, clouds, contrails, aircraft and
|
||||||
ground: direct beam through a Kasten-Young air mass with Rayleigh, ozone and
|
ground: direct beam through a Kasten-Young air mass with Rayleigh, ozone and
|
||||||
aerosol extinction, diffuse skylight, moonlight, a starlight floor and aerial
|
aerosol extinction, diffuse skylight, moonlight, a starlight floor and aerial
|
||||||
@@ -129,13 +130,13 @@ flowchart TD
|
|||||||
F --> G[Sky pass: gradient, stars, Milky Way, sun, moon]
|
F --> G[Sky pass: gradient, stars, Milky Way, sun, moon]
|
||||||
G --> H[Star catalogue points]
|
G --> H[Star catalogue points]
|
||||||
H --> I[Planet points]
|
H --> I[Planet points]
|
||||||
G --> J[Terrain distance pass]
|
G --> J[Terrain distance pass, only when needed]
|
||||||
J --> K[Terrain mesh pass]
|
J --> K[Terrain mesh pass]
|
||||||
K --> L[City lights]
|
K --> L[City lights]
|
||||||
L --> M[Car lights]
|
L --> M[Car lights]
|
||||||
M --> N[Optional atmosphere model]
|
M --> N[Optional atmosphere model]
|
||||||
N --> O[Front haze]
|
N --> O[Front haze]
|
||||||
O --> P[Cloud raymarch]
|
O --> P[Cloud raymarch, soft edges and adaptive march]
|
||||||
P --> Q[Aircraft]
|
P --> Q[Aircraft]
|
||||||
Q --> R[Contrails]
|
Q --> R[Contrails]
|
||||||
```
|
```
|
||||||
@@ -252,14 +253,14 @@ Groups:
|
|||||||
| --- | --- |
|
| --- | --- |
|
||||||
| `theme`, `language`, `timeFormat`, `units`, `credits` | palette, UI language, clock format, °C/°F, attribution line |
|
| `theme`, `language`, `timeFormat`, `units`, `credits` | palette, UI language, clock format, °C/°F, attribution line |
|
||||||
| `debug` | debug panel (weather, shader counters, theme palette and lighting) |
|
| `debug` | debug panel (weather, shader counters, theme palette and lighting) |
|
||||||
| `renderScale`, `maxFps` | internal 3D resolution and frame cap |
|
| `renderScale`, `antialias`, `maxFps`, `performance` | internal 3D resolution, MSAA, frame cap and adaptive cloud-march quality |
|
||||||
| `location` | `lat`/`lon` (+ optional `label`) - everything geographic |
|
| `location` | `lat`/`lon` (+ optional `label`) - everything geographic |
|
||||||
| `weatherSim`, `weatherSimInterval` | ignore the API and cycle the weather looks |
|
| `weatherSim`, `weatherSimInterval` | ignore the API and cycle the weather looks |
|
||||||
| `tiles` | basemap re-fetch interval (`expireDays`), tile-border debug overlay |
|
| `tiles` | basemap re-fetch interval (`expireDays`), tile-border debug overlay |
|
||||||
| `ground.style` | `'satellite'` (ESRI World_Imagery) or `'streets'` (ESRI World_Street_Map) |
|
| `ground.style` | `'satellite'` (ESRI World_Imagery) or `'streets'` (ESRI World_Street_Map) |
|
||||||
| `orbit` | figure-eight path, `radiusKm`, direction, reorientation, `altBob` |
|
| `orbit` | figure-eight path, `radiusKm`, direction, reorientation, `altBob` |
|
||||||
| `fog.distanceKm` | distance haze (0/false = off) |
|
| `fog.distanceKm` | distance haze (0/false = off) |
|
||||||
| `clouds` | deck height (`top`/`bottom` in world units), `density` per weather level, and `wind` motion from Open-Meteo |
|
| `clouds` | deck height (`top`/`bottom` in world units), `density` per weather level, `wind` motion, soft edge/horizon fading, `maxMarchUnits` and `terrainOcclusion` |
|
||||||
| `flights` | aircraft count, altitudes, speeds, destination weights, contrails, night strobes |
|
| `flights` | aircraft count, altitudes, speeds, destination weights, contrails, night strobes |
|
||||||
| `terrain` | DEM mesh, `exaggeration`, edge fade/skirt, `outerDem`, `carLights`, `cityLights`, `wireframe` |
|
| `terrain` | DEM mesh, `exaggeration`, edge fade/skirt, `outerDem`, `carLights`, `cityLights`, `wireframe` |
|
||||||
| `carLights` | road width, light sizes, lane separation, traffic range/fade, `trafficSide`, spacing, speed, density, brightness |
|
| `carLights` | road width, light sizes, lane separation, traffic range/fade, `trafficSide`, spacing, speed, density, brightness |
|
||||||
@@ -280,6 +281,35 @@ Groups:
|
|||||||
(`y ≈ 1.16-2.70`). Cloud deck heights, fog distance and orbit radius are all
|
(`y ≈ 1.16-2.70`). Cloud deck heights, fog distance and orbit radius are all
|
||||||
expressed in these units or in km where noted.
|
expressed in these units or in km where noted.
|
||||||
|
|
||||||
|
### Performance
|
||||||
|
|
||||||
|
`CONFIG.performance` controls adaptive cloud raymarching:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
performance: {
|
||||||
|
adaptiveCloudMarch: true,
|
||||||
|
lowFps: 24,
|
||||||
|
highFps: 35,
|
||||||
|
minCloudMarchUnits: 45
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
When the debug FPS drops below `lowFps`, the cloud march is shortened. When it
|
||||||
|
stays above `highFps`, the march is restored toward `CONFIG.clouds.maxMarchUnits`.
|
||||||
|
|
||||||
|
Other main performance knobs:
|
||||||
|
|
||||||
|
- `renderScale`: lower internal 3D resolution.
|
||||||
|
- `antialias: false`: disables MSAA.
|
||||||
|
- `maxFps`: caps the animation loop.
|
||||||
|
- `clouds.maxMarchUnits`: maximum cloud raymarch length.
|
||||||
|
- `clouds.softEdges`, `edgeSoftness`, `horizonSoftness`: soft cloud edges;
|
||||||
|
disabling `softEdges` restores the old hard shell behaviour.
|
||||||
|
- `atmosphere.cloudShadows` and `atmosphere.terrainShadows`: disable if the
|
||||||
|
scene is GPU-bound.
|
||||||
|
- `flights.count`, `flights.contrailChance`, `carLights.density`,
|
||||||
|
`emergencyVehicles.count`: reduce scene-object density.
|
||||||
|
|
||||||
### Themes and theme lighting
|
### Themes and theme lighting
|
||||||
|
|
||||||
A theme is a stylesheet plus an optional lighting block:
|
A theme is a stylesheet plus an optional lighting block:
|
||||||
|
|||||||
Reference in new issue
Block a user