mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-14 23:32:20 +00:00
perf(terrain): one shared, cached and budgeted terrain height reader for Transit, Rail, Bike Share and local data
globe.getHeight is a ray cast against the drawn tile's mesh and scene.sampleHeight a GPU depth render; several layers asked for them uncached and unbudgeted. The cache written for Transit moves to src/services/terrainSurface.js and is handed to every layer through the ground service, so layers share one cache and one read budget. - Rail reads each train on a ~4 m grid instead of every frame. - Local data layers read terrain floors through it and stop depth samples at 8 ms a frame. - Bike Share draws stations at once and finds their heights afterwards in 4 ms steps. Co-Authored-By: Claude Fable 5.2 <[email protected]>
This commit is contained in:
1 parent
d5f7926c7e
commit
0f4dda5cc6
22 files changed
+1257
-263
No files matched your search
@@ -1,3 +1,4 @@
|
||||
import { createTerrainSurface } from './terrainSurface.js';
|
||||
/** Construct an instance-owned groundFloor service with explicit dependencies. */
|
||||
export function createGroundFloor({ terrain, signal }) {
|
||||
const { cachedRealEllipsoidalGround, resolveEllipsoidalGround } = terrain;
|
||||
@@ -698,6 +699,8 @@ export function createGroundFloor({ terrain, signal }) {
|
||||
{ once: true },
|
||||
);
|
||||
return {
|
||||
// The terrain globe's loaded surface, read once per point for every layer.
|
||||
terrainSurface: createTerrainSurface(),
|
||||
GROUND_FLOOR_LIFT_M,
|
||||
MESH_FLOOR_BELOW_PRIOR_M,
|
||||
MESH_FLOOR_ABOVE_PRIOR_M,
|
||||
|
||||
Reference in new issue
Block a user