German Khokhlov
8812117013
fix(globe): Navara's shadowed sun leaked a light per frame
...
Navara 0.2.1's transparent pass refreshes its copy of every scene light
each frame with copy(light, true). For the sun's cascaded shadow lights
(three-csm CascadedDirectionalLights) that copy clones every cascade, so
each frame brought new DirectionalLights with new ids and three's
WebGLLights uniforms cache (keyed by id) grew by about 1.2 KB a frame in
the looks whose sun casts shadows (minimal, photoreal).
src/globe/navara/cascadedLightCopy.js patches the copy to update the
cascades it has in place (pose, colour, intensity, target, shadow
settings and camera) when the counts match, and keeps the rebuild
otherwise; internals.js finds the class among the view's scene lights
(private view._scenes.light) and applies it when the globe is built.
Tests on three-csm's own class: the original copy changes the light ids,
the patched one keeps the lights and takes the values.
Post-GC JS heap (CDP HeapProfiler.collectGarbage every 10 s, the app on
?engine=navara rendering continuously at 60 fps): minimal 4.33 → 0.20
MB/min over 70 s and 0.06 MB/min over 180 s; photoreal 4.34 → 0.19
MB/min; cinematic (no shadow) 0.34. Added to the upstream asks.
2026-10-16 18:41:20 +04:00
..
2026-10-06 21:59:12 +01:00
2026-10-16 15:06:15 +04:00
2026-10-07 14:21:46 -07:00
2026-09-28 19:07:57 -05:00
2026-09-28 19:07:57 -05:00
2026-10-02 18:29:42 -07:00
2026-08-24 17:02:16 -05:00
2026-10-16 15:01:36 +04:00
2026-09-24 16:25:55 +05:30
2026-10-16 16:22:49 +04:00
2026-09-23 16:00:53 -05:00
2026-09-10 23:01:51 -07:00
2026-10-08 11:02:52 -07:00
2026-09-14 07:35:38 -07:00
2026-08-24 17:02:16 -05:00
2026-09-15 07:26:32 -07:00
2026-10-16 18:41:20 +04:00
2026-09-15 07:26:32 -07:00
2026-09-11 15:08:23 -07:00
2026-09-28 19:07:57 -05:00
2026-09-28 19:07:57 -05:00
2026-10-15 20:56:06 +04:00
2026-09-24 16:25:55 +05:30
2026-09-14 07:35:38 -07:00
2026-10-16 15:06:15 +04:00
2026-09-11 15:08:23 -07:00
2026-08-31 17:49:45 -05:00
2026-08-31 17:49:45 -05:00
2026-08-31 17:49:45 -05:00
2026-08-31 17:49:45 -05:00
2026-09-14 19:34:23 -05:00
2026-09-13 21:54:29 -05:00
2026-09-14 07:35:38 -07:00
2026-09-28 19:07:57 -05:00
2026-09-28 19:07:57 -05:00
2026-09-11 17:03:35 -07:00
2026-09-10 23:08:26 -07:00
2026-10-06 21:59:12 +01:00
2026-08-24 17:02:16 -05:00
2026-08-24 17:02:16 -05:00
2026-08-24 17:02:16 -05:00
2026-09-13 01:23:55 -07:00
2026-09-13 21:48:33 -05:00
2026-10-03 23:10:32 -07:00
2026-10-03 23:10:32 -07:00
2026-10-03 23:10:32 -07:00
2026-09-14 20:09:41 -05:00
2026-09-15 16:53:26 -07:00
2026-09-15 19:16:49 -07:00
2026-09-15 17:59:53 -07:00
2026-09-15 20:15:32 -07:00
2026-09-15 15:41:42 -07:00
2026-09-14 19:59:26 -05:00
2026-10-03 23:10:32 -07:00
2026-10-03 23:20:42 -07:00
2026-09-28 19:07:57 -05:00
2026-09-13 12:48:26 -07:00
2026-09-12 18:45:30 -07:00
2026-09-11 14:50:57 -07:00
2026-10-03 23:10:32 -07:00
2026-09-10 23:08:26 -07:00
2026-09-13 09:54:55 -07:00
2026-08-24 17:02:16 -05:00
2026-08-31 17:49:45 -05:00
2026-09-10 23:08:26 -07:00
2026-08-24 17:02:16 -05:00
2026-10-03 23:10:32 -07:00
2026-10-13 23:48:21 +02:00
2026-10-03 23:10:32 -07:00
2026-09-10 23:08:26 -07:00
2026-09-11 08:59:32 -07:00
2026-09-28 19:07:57 -05:00
2026-09-28 19:07:57 -05:00
2026-09-28 19:07:57 -05:00
2026-10-03 23:10:32 -07:00
2026-09-10 23:08:26 -07:00
2026-09-10 23:08:26 -07:00
2026-09-22 17:45:39 -05:00
2026-09-24 16:25:55 +05:30
2026-09-13 05:43:05 -07:00
2026-09-12 22:26:29 -07:00
2026-09-14 15:43:27 -07:00
2026-09-28 19:07:57 -05:00
2026-09-16 12:14:15 +05:30
2026-10-03 23:10:32 -07:00
2026-09-28 19:07:57 -05:00
2026-10-09 00:05:58 +01:00
2026-10-06 21:59:12 +01:00
2026-08-31 17:49:45 -05:00
2026-10-03 23:10:32 -07:00
2026-09-22 20:34:11 -05:00
2026-09-15 20:15:32 -07:00
2026-10-03 23:10:32 -07:00
2026-10-15 00:19:52 +04:00
2026-09-28 19:07:57 -05:00
2026-09-10 23:08:26 -07:00
2026-09-10 23:08:26 -07:00
2026-09-28 19:07:57 -05:00
2026-09-13 14:47:26 -07:00
2026-09-28 19:07:57 -05:00
2026-09-10 23:08:26 -07:00
2026-09-15 08:40:58 -07:00
2026-09-15 13:26:41 -05:00
2026-09-15 05:18:30 -05:00
2026-09-15 14:15:27 -05:00
2026-09-15 13:26:41 -05:00
2026-09-15 13:26:41 -05:00
2026-09-15 14:15:27 -05:00
2026-09-13 14:51:24 -07:00
2026-09-13 10:54:32 -07:00
2026-09-10 23:08:26 -07:00
2026-09-11 14:43:13 -07:00
2026-09-13 05:43:05 -07:00
2026-09-12 21:25:05 -07:00
2026-10-06 20:36:56 +05:00
2026-10-04 23:03:09 +05:00
2026-09-28 21:19:23 -05:00
2026-10-05 04:37:28 +05:30
2026-09-15 12:05:01 -07:00
2026-09-22 17:45:39 -05:00
2026-09-22 17:45:39 -05:00
2026-09-22 17:45:39 -05:00
2026-09-22 17:45:39 -05:00
2026-09-22 17:45:39 -05:00
2026-08-24 17:02:16 -05:00
2026-08-24 17:02:16 -05:00
2026-10-08 11:02:52 -07:00
2026-08-24 17:02:16 -05:00
2026-10-03 23:10:32 -07:00
2026-09-13 14:10:38 -07:00
2026-09-28 21:19:23 -05:00