New Feature Request - "Phase-Lock" Follow Mode
Posted: 14.03.2002, 05:09
I'd like to propose a new "follow" mode for Celestia, which I believe would be very useful and fairly easy to implement. I call it "phase-lock" follow mode. Here's an explanation of how it would work:
A "follow" mode is an operating mode in which the location of the observer is continuously automatically adjusted to maintain a specific distance and direction from an observed object. To put it simply, the observer "follows" the object as it moves through space.
Currently, Celestia has two follow modes. The first I would call "space-lock" follow mode and the second I would call "spin-lock" follow mode. (In Celestia documentation they are generally called "follow" and "synch orbit" modes, respectively.)
In "space-lock" mode, the observer remains at a fixed distance and absolute (space) direction from the followed object. In "spin-lock" mode, the observer also remains at a fixed distance from the followed object, however the direction is not fixed in space, but rotates with the axial spin of the object, so that the direction remains fixed with respect to the object's surface.
In "space-lock" mode, the object is seen to spin around its axis, but the background stars do not move; while in "spin-lock" mode, the object does not appear to spin, but the stars move quickly by. These modes should be familiar to Celestia users.
In the new follow mode which I am proposing, the observer would remain at a fixed distance from the followed object, and the direction from the object to the observer would remain fixed relative to the direction from the followed object to another object (the reference object). In this mode, the angle from the observer to the followed object to the reference object would remain constant. In astronomy, when the reference object is the sun, this angle is called the "phase angle", which is why I call the proposed mode "phase-lock" follow mode.
In "phase-lock" follow mode, when the reference object is the sun, the phase angle at which the followed object is observed remains fixed. Thus the "phase" of the object (as in "phase of the moon") remains constant. So, for example, you can position the observer so that the earth is nearly fully illuminated, and follow the earth in "phase-lock" mode (with the sun as reference), and the earth will remain nearly fully illuminated as it spins on its axis and the stars roll by. The earth will never appear to go dark.
You can't achieve this effect in either of the existing modes. In "spin-lock" follow mode, the terminator appears to move around the earth once a day. In "space-lock" follow mode, the terminator moves around the earth once a year. In both cases, the earth goes dark part of the time. But in "phase-lock" mode, the terminator does not appear to move, so the earth remains bright.
Another use for "phase-lock" follow mode is when you want to observe one object from the vicinity of another and have both objects remain in view. For example, suppose you want to watch comet Halley as it dives into the inner solar system. You want to have Halley in the foreground of your view and the sun in the background. You cannot do this with the existing follow modes. But in "phase-lock" mode, you just position yourself behind Halley, with the sun in the background, and away you go. Similarly, you could use "phase-lock" mode to watch a near-Earth asteroid approach the Earth, or Galileo fly by a Jovian moon, or a comet crash into Jupiter.
I hope I've convinced you this feature might be some fun!
I think the implementation should be fairly easy (famous last words), because it just requires transforming the direction vector from a special coordinate system centered on the followed object with the reference object lying on the x-axis. This would be similar to how the direction vector is currently transformed from the followed object's rotating coordinate system for "spin-axis" ("sync orbit") follow mode.
As for the user interface, it might work something like this: select the object to follow and press a key to enter basic follow mode. Then, select the reference object, and press a key to enter "phase-lock" follow mode. The overlay could display something like "Phase Lock Earth/Sun".
My sense is that this feature would provide quite a lot of bang for the buck. Perhaps one of our interpid developers would be willing to give it a try?
- Hank
A "follow" mode is an operating mode in which the location of the observer is continuously automatically adjusted to maintain a specific distance and direction from an observed object. To put it simply, the observer "follows" the object as it moves through space.
Currently, Celestia has two follow modes. The first I would call "space-lock" follow mode and the second I would call "spin-lock" follow mode. (In Celestia documentation they are generally called "follow" and "synch orbit" modes, respectively.)
In "space-lock" mode, the observer remains at a fixed distance and absolute (space) direction from the followed object. In "spin-lock" mode, the observer also remains at a fixed distance from the followed object, however the direction is not fixed in space, but rotates with the axial spin of the object, so that the direction remains fixed with respect to the object's surface.
In "space-lock" mode, the object is seen to spin around its axis, but the background stars do not move; while in "spin-lock" mode, the object does not appear to spin, but the stars move quickly by. These modes should be familiar to Celestia users.
In the new follow mode which I am proposing, the observer would remain at a fixed distance from the followed object, and the direction from the object to the observer would remain fixed relative to the direction from the followed object to another object (the reference object). In this mode, the angle from the observer to the followed object to the reference object would remain constant. In astronomy, when the reference object is the sun, this angle is called the "phase angle", which is why I call the proposed mode "phase-lock" follow mode.
In "phase-lock" follow mode, when the reference object is the sun, the phase angle at which the followed object is observed remains fixed. Thus the "phase" of the object (as in "phase of the moon") remains constant. So, for example, you can position the observer so that the earth is nearly fully illuminated, and follow the earth in "phase-lock" mode (with the sun as reference), and the earth will remain nearly fully illuminated as it spins on its axis and the stars roll by. The earth will never appear to go dark.
You can't achieve this effect in either of the existing modes. In "spin-lock" follow mode, the terminator appears to move around the earth once a day. In "space-lock" follow mode, the terminator moves around the earth once a year. In both cases, the earth goes dark part of the time. But in "phase-lock" mode, the terminator does not appear to move, so the earth remains bright.
Another use for "phase-lock" follow mode is when you want to observe one object from the vicinity of another and have both objects remain in view. For example, suppose you want to watch comet Halley as it dives into the inner solar system. You want to have Halley in the foreground of your view and the sun in the background. You cannot do this with the existing follow modes. But in "phase-lock" mode, you just position yourself behind Halley, with the sun in the background, and away you go. Similarly, you could use "phase-lock" mode to watch a near-Earth asteroid approach the Earth, or Galileo fly by a Jovian moon, or a comet crash into Jupiter.
I hope I've convinced you this feature might be some fun!
I think the implementation should be fairly easy (famous last words), because it just requires transforming the direction vector from a special coordinate system centered on the followed object with the reference object lying on the x-axis. This would be similar to how the direction vector is currently transformed from the followed object's rotating coordinate system for "spin-axis" ("sync orbit") follow mode.
As for the user interface, it might work something like this: select the object to follow and press a key to enter basic follow mode. Then, select the reference object, and press a key to enter "phase-lock" follow mode. The overlay could display something like "Phase Lock Earth/Sun".
My sense is that this feature would provide quite a lot of bang for the buck. Perhaps one of our interpid developers would be willing to give it a try?
- Hank