mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 10:53:59 +00:00
docs(sky): shorten the sky comments and README, fix three stale ones
The far-plane comment said z = w (the code puts z just under w), the Milky Way constant is a brightness, not an opacity, and the CDS acknowledgement lives in the Data attribution popover, not DATA_SOURCES.md. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
b00c7c12c8
commit
8c33c6f349
9 files changed
+54
-92
No files matched your search
+2
-3
@@ -118,9 +118,8 @@ export function applicationViewerOptions(creditContainer) {
|
||||
selectionIndicator: false,
|
||||
infoBox: false,
|
||||
baseLayer: 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.
|
||||
// Replaces the blocky Tycho-2 default. An option, not `skyBox: false`,
|
||||
// which would also stop CesiumWidget from creating the Sun and Moon.
|
||||
skyBox: new StarrySky(),
|
||||
creditContainer,
|
||||
msaaSamples: 4,
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
# Sky background
|
||||
|
||||
The space behind the globe (`src/sky/starrySky.js`): catalogue stars drawn as
|
||||
sharp point sprites over a soft Milky Way cube map. It replaces Cesium's
|
||||
default Tycho-2 sky box, whose six 1024² JPEGs stretch 3–6× around the
|
||||
whole-globe view and show compression blocks.
|
||||
Catalogue stars over a soft Milky Way, drawn by `src/sky/starrySky.js` in
|
||||
place of Cesium's blocky Tycho-2 sky box.
|
||||
|
||||
| File | Content | Size |
|
||||
| ---- | ------- | ---- |
|
||||
@@ -12,57 +10,42 @@ whole-globe view and show compression blocks.
|
||||
|
||||
## Stars — Yale Bright Star Catalogue
|
||||
|
||||
**Source:** Yale Bright Star Catalogue, 5th Revised Edition (Hoffleit &
|
||||
Warren 1991), CDS VizieR catalogue
|
||||
**Source:** 5th Revised Edition (Hoffleit & Warren 1991), CDS catalogue
|
||||
[V/50](https://cdsarc.cds.unistra.fr/viz-bin/cat/V/50), file
|
||||
`https://cdsarc.cds.unistra.fr/ftp/V/50/catalog.gz` (sha256
|
||||
`3dc44b1e90be8fbe5bcc7656032560f51275f985c7e3f783c9028e1838ec7bed`, fetched
|
||||
2026-10-19).
|
||||
|
||||
**License:** public domain (Yale University Observatory / NASA Astronomical
|
||||
Data Center). CDS asks for an acknowledgement; the in-app "Data attribution"
|
||||
popover carries it.
|
||||
**License:** public domain. CDS asks for an acknowledgement; the "Data
|
||||
attribution" popover carries it.
|
||||
|
||||
**Build:** `node scripts/build-bright-stars.mjs [catalog.gz]` — every record
|
||||
with a J2000 position (14 novae and non-stellar entries dropped), RA/Dec
|
||||
rounded to 0.001°, magnitudes to 0.01. The renderer maps magnitude to sprite
|
||||
width and opacity and B−V to a desaturated black-body colour
|
||||
(`src/sky/stars.js`).
|
||||
**Build:** `node scripts/build-bright-stars.mjs [catalog.gz]`. Drops the 14
|
||||
records without a J2000 position; rounds RA/Dec to 0.001° and magnitudes to
|
||||
0.01.
|
||||
|
||||
## Milky Way — ESO/S. Brunier
|
||||
|
||||
**Source:** "The Milky Way panorama", ESO image
|
||||
[eso0932a](https://www.eso.org/public/images/eso0932a/), full-size original
|
||||
**Source:** ESO image [eso0932a](https://www.eso.org/public/images/eso0932a/),
|
||||
`https://cdn.eso.org/images/original/eso0932a.tif` (6000×3000 sRGB TIFF, sha256
|
||||
`10f209ab83e1fd89e7fa1ed70277ffc6ed19c43549f04ec637c6806d98aff035`, fetched
|
||||
2026-10-19). Plate carrée in galactic coordinates, centred on the Galactic
|
||||
Centre.
|
||||
2026-10-19).
|
||||
|
||||
**License:** [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)
|
||||
(<https://www.eso.org/public/outreach/copyright/>). **Credit: ESO/S. Brunier.**
|
||||
**License:** [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
|
||||
**Credit: ESO/S. Brunier.**
|
||||
|
||||
**Changes made** (CC BY 4.0 asks for them to be stated): resampled to
|
||||
4096×2048, stars removed with a 7×7 morphological opening, two planets
|
||||
(Jupiter, by position) painted over with the median of the surrounding sky,
|
||||
blurred (σ = 0.4°, blending to σ = 2° in the faint glow so unresolved
|
||||
stars leave no clumps), reprojected from galactic coordinates to ICRF cube faces,
|
||||
black level set at the median sky with a soft knee (the faint glow away
|
||||
from the galactic plane fades to black), gamma-encoded and saved as
|
||||
WebP. Build:
|
||||
`node scripts/build-milky-way.mjs <eso0932a.tif>`.
|
||||
**Changes made** (CC BY 4.0 asks for them): resampled to 4096×2048; stars
|
||||
removed; two images of Jupiter painted over; blurred (0.4°, 2° in the faint
|
||||
glow); reprojected to ICRF cube faces; black level at the median sky; saved as
|
||||
WebP. Build: `node scripts/build-milky-way.mjs <eso0932a.tif>`.
|
||||
|
||||
The panorama is a photographic mosaic, not an astrometric map: bright stars
|
||||
sit up to ~2° from their catalogue positions. That is invisible in a glow
|
||||
blurred this much, and every sharp star on screen comes from the catalogue.
|
||||
The panorama's stars sit up to ~2° off; that is invisible in the blurred glow,
|
||||
and every sharp star comes from the catalogue.
|
||||
|
||||
The NASA SVS "Deep Star Maps 2020" Milky Way layer was considered and not
|
||||
used: it is derived from Gaia DR2, which ESA distributes under CC BY-NC 3.0
|
||||
IGO with prior authorization required for commercial use.
|
||||
NASA SVS "Deep Star Maps 2020" was not used: it derives from Gaia DR2, which
|
||||
ESA licenses CC BY-NC 3.0 IGO.
|
||||
|
||||
## Frame
|
||||
|
||||
Both layers are in ICRF/J2000. The cube faces use the standard WebGL face
|
||||
layout with +X towards the March equinox and +Z towards the north celestial
|
||||
pole, uploaded without `flipY`. At runtime one rotation —
|
||||
`Transforms.computeIcrfToFixedMatrix` at the scene clock — turns both into
|
||||
Earth-fixed coordinates.
|
||||
Both layers are in ICRF/J2000. The cube faces use the WebGL face layout, +X
|
||||
to the March equinox and +Z to the north celestial pole, uploaded without
|
||||
`flipY`.
|
||||
@@ -12,7 +12,7 @@ import { buildStarVertices, STAR_VERTEX_FLOATS } from './stars.js';
|
||||
*/
|
||||
export const STARRY_SKY_CESIUM_VERSION = '1.138.0';
|
||||
|
||||
/** Opacity of the Milky Way glow over black; the stars carry the sky. */
|
||||
/** Brightness of the Milky Way glow; the stars carry the sky. */
|
||||
export const MILKY_WAY_INTENSITY = 0.4;
|
||||
/** Clock change, in seconds, below which the sky rotation is reused. */
|
||||
export const SKY_ROTATION_EPSILON_SECONDS = 1;
|
||||
@@ -48,8 +48,8 @@ const MILKY_WAY_FACE_URLS = Object.freeze({
|
||||
),
|
||||
});
|
||||
|
||||
// Directions, not points: w = 0 drops the camera translation, and z = w puts
|
||||
// every fragment on the far plane, inside the clip volume at any frustum.
|
||||
// Directions, not points: w = 0 drops the camera translation, and z just
|
||||
// under w keeps every fragment at the far plane, inside any frustum.
|
||||
const SKY_DIRECTION_GLSL = `
|
||||
uniform mat3 u_icrfToFixed;
|
||||
vec4 skyClipPosition(vec3 icrfDirection)
|
||||
|
||||
+3
-7
@@ -3,17 +3,13 @@
|
||||
*
|
||||
* Pure functions, no Cesium. The pack is `local_data/sky/bright_stars.json`
|
||||
* (Yale Bright Star Catalogue, built by scripts/build-bright-stars.mjs): a
|
||||
* flat `[raDeg, decDeg, vmag, bv, …]` array in ICRF/J2000.
|
||||
*
|
||||
* Every star is drawn as a point sprite holding a small Gaussian. Its width
|
||||
* is set in CSS pixels and scaled by the device pixel ratio in the shader, so
|
||||
* a star covers the same screen area at any DPR and stays a crisp dot rather
|
||||
* than a texel stretched across several pixels.
|
||||
* flat `[raDeg, decDeg, vmag, bv, …]` array in ICRF/J2000. Each star is a
|
||||
* small Gaussian sprite, sized in CSS pixels so it stays a crisp dot at any DPR.
|
||||
*
|
||||
* @module sky/stars
|
||||
*/
|
||||
|
||||
/** Faintest magnitude drawn distinctly (fainter catalogue stars look like it); the brightness reference. */
|
||||
/** Brightness reference; fainter catalogue stars are drawn like it. */
|
||||
export const STAR_LIMIT_MAGNITUDE = 6.5;
|
||||
/** Gaussian σ of the faintest star, CSS pixels. */
|
||||
export const STAR_MIN_SIGMA_PX = 0.55;
|
||||
|
||||
@@ -93,7 +93,7 @@ test('plate carrée is centred on longitude 0, growing to the left, north up', (
|
||||
});
|
||||
|
||||
test('the galactic rotation puts the Galactic Centre and pole where the IAU does', () => {
|
||||
// Sgr A*-adjacent origin l = b = 0 at RA 266.405°, Dec −28.936° (J2000).
|
||||
// Galactic origin l = b = 0 at RA 266.405°, Dec −28.936° (J2000).
|
||||
const centre = icrfToGalactic(raDecToUnitVector(266.40499, -28.93617));
|
||||
close(centre[0], 1, 1e-6);
|
||||
// North galactic pole at RA 192.85948°, Dec +27.12825°.
|
||||
|
||||
@@ -112,10 +112,8 @@ export class VisualEffects {
|
||||
if (this.stopped || !stage) return;
|
||||
stage.uniforms.intensity = value;
|
||||
stage.enabled = value > 0.001;
|
||||
// Anime's four luminance bands turn the faint Milky Way into blotches, and
|
||||
// a post-process cannot tell the sky from far geometry reliably (near
|
||||
// plane clamps, keyless terrain above the ellipsoid horizon): fade the
|
||||
// glow out with the style instead. Bright stars survive as banded points.
|
||||
// Anime's bands turn the faint Milky Way into blotches, and depth cannot
|
||||
// tell the sky from far geometry, so the glow fades with the style.
|
||||
if (stage === this.stages.anime)
|
||||
this.viewer.scene.skyBox.milkyWayVisibility = 1 - value;
|
||||
if (stage.enabled && stage.uniforms.time !== undefined)
|
||||
|
||||
Reference in new issue
Block a user