mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-09 21:02:19 +00:00
Bin Navara ground corridors set-wide and give corridors glow, pulse and dash
Navara's ground pass cut each corridor into chunks and tested them per screen cell, so dense corridor sets were slow (10,000 cost about 150 ms a frame). A corridor set is now cut into pieces along its great circles, sorted into lon/lat tiles, each with a pyramid of bins listing the segment runs within its margin; a pixel takes its tile and the finest bin that covers its reach and tests only those runs. At 10,000 corridors a frame now takes 11.8 ms still (Cesium 23 ms), at 15,000 17.9 ms. A pixel corridor's width is measured across the line, so diagonal lines no longer draw up to 1.4 times wider. Pixel corridors take three looks, evaluated on the GPU from a time uniform: Cesium's PolylineGlow falloff (glow), an alpha pulse and the annotation route's flowing dash. While a shown set pulses or flows the engine draws continuously, as Cesium did. Traffic's jam lines take the glow and pulse again and the Directions route its flowing dash and render hold, so on Cesium both match the drawing before they moved to the contract pixel for pixel. The contract suite passes on both engines (Cesium 69/69, Navara 72/72).
This commit is contained in:
1 parent
48885d9e61
commit
47d63128ff
30 files changed
+2501
-391
No files matched your search
@@ -209,12 +209,15 @@ one application, and only the globe-bound parts move to the next engine.
|
||||
- Navara draws them in one screen pass classified on the scene depth
|
||||
(`src/globe/navara/ground/`). A corridor set is tiles of binned
|
||||
segments (`corridors.js`): 10,000 corridors draw in about 12 ms still
|
||||
and 15 ms moving, where Cesium takes 23 ms (the chunks before took 151
|
||||
and 14 ms moving, where Cesium takes 23 ms (the chunks before took 151
|
||||
and 196 ms).
|
||||
- Navara's vector layers were measured against that pass and lost
|
||||
(`docs/GLOBE-PRIMITIVES.md`).
|
||||
- On November 7, 2026, `scripts/qa-ground-suite.mjs` (the ground checks
|
||||
with pixels) passed 3 of 3 on both engines.
|
||||
with pixels, the corridor looks among them) passed 4 of 4 on both
|
||||
engines, and `scripts/qa-ground-looks.mjs` drew the jam line and the
|
||||
route on Cesium as the old materials did, with no pixel changed at four
|
||||
moments of the pulse and the dashes.
|
||||
- **Rasters on the ground** (`engine.imagery`) are required of every engine
|
||||
too: layers of Web Mercator tiles from a URL template or of one image (a
|
||||
canvas, an image, RGBA bytes or an image URL) over a rectangle, each with
|
||||
|
||||
+10
-10
@@ -237,18 +237,18 @@ At 10 000 corridors Cesium allocated 613 MB of WebGL memory, the pass 44 MB
|
||||
and the vector layers about 70 MB.
|
||||
|
||||
The pass with corridor tiles, measured again with the pass before them on
|
||||
the same afternoon (the machine busier, the empty scene 6.0–8.9 ms):
|
||||
the same day (the machine busier, the empty scene 6.7–8.1 ms):
|
||||
|
||||
| N | Cesium | pass before | pass with tiles |
|
||||
| ------ | -------------- | -------------- | --------------- |
|
||||
| 1 000 | 12.8 / 13.9 ms | 19.8 / 24.9 ms | 9.1 / 12.6 ms |
|
||||
| 10 000 | 23.1 / 23.2 ms | 151 / 196 ms | 12.1 / 15.4 ms |
|
||||
| 15 000 | 31.8 / 31.4 ms | 226 / 289 ms | 17.7 / 19.7 ms |
|
||||
| 1 000 | 12.8 / 13.9 ms | 19.8 / 24.9 ms | 8.7 / 10.0 ms |
|
||||
| 10 000 | 23.1 / 23.2 ms | 151 / 196 ms | 11.8 / 13.8 ms |
|
||||
| 15 000 | 31.8 / 31.4 ms | 226 / 289 ms | 17.9 / 19.9 ms |
|
||||
|
||||
The tiles hold about what the chunks held: 47 MB of textures at 10 000
|
||||
corridors (46 MB before), 68 MB at 15 000 (69 MB). Packing takes longer:
|
||||
the commit of 10 000 corridors went from 0.6 s to about 1.9 s, and 15 000
|
||||
from 0.8 s to 3.0 s.
|
||||
The tiles hold about what the chunks held: 43 MB of textures at 10 000
|
||||
corridors (46 MB before), 66 MB at 15 000 (69 MB). Packing takes longer:
|
||||
the commit of 10 000 corridors went from 0.6 s to 1.1 s, and 15 000 from
|
||||
0.8 s to 1.7 s.
|
||||
|
||||
A pixel corridor's width is now measured across the line (the gradient of
|
||||
the distance to it), so it is the same at any angle, as on Cesium. Before,
|
||||
@@ -284,8 +284,8 @@ ground outlines and no metre widths. Their colours are lit, and hiding them
|
||||
needs a rebuild.
|
||||
|
||||
Corridors were the pass's limit: 10 000 lines took 135 ms. With a
|
||||
set-wide grid of bins (corridor tiles), 10 000 take 12 ms, under Cesium's
|
||||
23 ms.
|
||||
set-wide grid of bins (corridor tiles), 10 000 take 12 ms still and 14 ms
|
||||
moving, under Cesium's 23 ms.
|
||||
|
||||
## Imagery: rasters on the ground
|
||||
|
||||
|
||||
Reference in new issue
Block a user