Skip to content

v2.1.0

Latest

Choose a tag to compare

@agaevnat agaevnat released this 18 Apr 14:14
· 1321 commits to main since this release
03e08d9

Main menu UI reworked.
Added ability to send feedback.
Added alphabetic, status, norad, country, launch date sort fileters for satellite catalog.
Added the button redirecting to the project's repository.
Satellite orbits are now rotating in real-time.
Fixed the satellites to shift from the orbit lines over long distances.
Now satellites' titles will be rendered if they are close enough to the camera.

Optimizations:

  • Inline zero check - saving function call and an internal check per satellite.
  • Squared distance cull - three subtracts, three multiplies, one compare.
  • Frustrum cull - satellites behind the camera, to the sides, or otherwise out of view are rejected from rendering
  • Batched canvas state: prepare all visible labels into a flat visible array first, then perform canvas state changes.
  • No longer calling satellite propagation at load time. The live position is computed only at demand.
  • A lot of preallocated buffers for the secondary usage reducing heap allocations and reallocations.
  • ECEF update only if visible segment count grows, not on every frame.
  • Precached colors and labels.
  • Preventing unnecessary re rendering from a function responsible for opening and closing satellite info panel.
  • All ~200 country labels now share the same two NearFarScalar instances instead of each allocating their own.
  • From now on, noradID or satellite name ill act as its React kein instead of using an array index, giving stable reconciliation across re-sorts.
  • Now we use Map instead of a regular array to store satellites, reducing complexity to O(1) for lookups when a satellite is selected.