fix(sky): keep the Sun and Moon, settle outside the ICRF tables

- Pass the custom sky box to the Viewer instead of `skyBox: false`, which
  also stopped CesiumWidget from creating the Sun and the Moon. Guarded by
  scripts/qa-sky-sun-moon.mjs.
- Outside the IAU 2006 tables (before 1975, after ~2050) the preload
  resolves without data; remember that span and stay on TEME instead of
  preloading and rendering every frame.
- The anime style no longer cel-shades the far plane, where four bands
  turned the faint Milky Way into blotches.
- Paint the planets out after the star-removing opening and with the
  ring median, so no brighter plateau is left; faces rebuilt.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
German KhokhlovandClaude Opus 5.5 committed 2026-10-19 19:43:25 +04:00
1 parent 6549344946
commit fb81e155b7
15 files changed
+243 -28

No files matched your search

+4 -4
View File
@@ -120,9 +120,10 @@ export function createApplicationViewer({ container, creditContainer }) {
selectionIndicator: false,
infoBox: false,
baseLayer: false,
// Replaced below: the default Tycho-2 cube map is too coarse for the
// whole-globe view and its JPEG blocks show around the Earth.
skyBox: false,
// Instead of the default Tycho-2 cube map, whose JPEG blocks show around
// the whole globe. Passed here, not assigned later: `skyBox: false` would
// also stop CesiumWidget from creating the Sun and the Moon.
skyBox: new StarrySky(),
creditContainer,
msaaSamples: 4,
contextOptions: { webgl: { preserveDrawingBuffer: true } },
@@ -134,7 +135,6 @@ export function createApplicationViewer({ container, creditContainer }) {
// render loop. See app/atmosphereCompat.js.
applyModelAtmosphereWorkaround(viewer.scene);
viewer.scene.globe.show = false;
viewer.scene.skyBox = new StarrySky();
viewer.scene.skyAtmosphere.show = true;
viewer.scene.skyAtmosphere.atmosphereLightIntensity = 18;
viewer.scene.skyAtmosphere.saturationShift = -0.12;