New Feature Sitrec: Accurate Moon Phases

New Feature

Mick West

Administrator
Staff member
I now use a 3D illuminated model of the Moon to accurately display the phase.

2026-02-06_01-01-37.jpg


I also added a "Celestial Lock" to the Camera -> Camera Heading, to let you lock the camera to point at a particular celestial body.
 
Looking at those images, the terminator isn't in quite the same place on the moon's surface, and the view of the moon is not quite the same (eg the prominent dark crater at 9 o'clock is closer to the edge in the Stellarium view). Presumably the difference is down to one of them not accounting for libration?
 
Looking at those images, the terminator isn't in quite the same place on the moon's surface, and the view of the moon is not quite the same (eg the prominent dark crater at 9 o'clock is closer to the edge in the Stellarium view). Presumably the difference is down to one of them not accounting for libration?
Yeah, me.

Actually, I DO account for libration, but not, I fear entirely accurately. The reason being I don't render a full 3D model of the entire solar system. The stars and planets, and the moon, are rendered at a fixed distance on a celestial sphere using their calculated RA/DEC. The moon's size and orientation are adjusted to account for where it is and its libration (change in 3D angles). But this still results in some differences.

To fix this, I'd need to restructure the rendering pipeline a bit to render the solar system (or at least the moon) as a full additional 3D scene in ECEF (earth-centered, earth-fixed) coordinates, i.e., relative to the Earth. It needs to be separate due to the difference in scale.

I'll get around to this, but it's close enough for now.
 
as a full additional 3D scene in ECEF (earth-centered, earth-fixed) coordinates, i.e., relative to the Earth. It needs to be separate due to the difference in scale.
Tip: Orb Hunter uses this method (everything is in ECI converted from ECI Z-up to ThreeJS Y-up). However, the numbers get huge pretty quickly (astronomical, in fact), and ThreeJS begins to struggle, so I ended up using 1/1000 scale, switched on logarithmic coords, and eventually managed to get everything (in the Sun/Earth/Moon system) sorted.

Also, I did have a star field "far away" on a celestial sphere similar to how Sitrec does it. However, I found it actually distracted from the one thing I was trying to get across to people new to satellites and their motion: orbital motion and SL horizon flares. The background dots just cluttered the view, so I removed them.
 
Tip: Orb Hunter uses this method (everything is in ECI converted from ECI Z-up to ThreeJS Y-up). However, the numbers get huge pretty quickly (astronomical, in fact), and ThreeJS begins to struggle, so I ended up using 1/1000 scale, switched on logarithmic coords, and eventually managed to get everything (in the Sun/Earth/Moon system) sorted.
Yeah, I use log for the depth buffer. I'll get around to it.
 
Back
Top