chris wrote:t00fri wrote:As to Celestia, 99% of the code would remain unaffected. Except in case of VERY LARGE masses being involved on the screen (lensing, neutron stars, black holes,...), we have to fork the render code appropriately.
Right . . . but how is this alternate rendering path going to work? It's a large and difficult project, and likely completely impractical except for a restricted set of objects (such as distant stars, which can be effectively treated as points.)
--Chris
Yes, "Cosmo-Celestia" is a large and difficult project and that's one reason why it's fascinating and why it would also guarantee Celestia's longtime attractiveness.
As I wrote earlier, open any volume of S&T, for example, and have a look how many articles you find about the subjects I am advocating and how many you'll find about suspending spacecraft in the sky... .
Also this kind of task would be largely pursued by an interested group of devs with respective know-how. It would not affect the usual Celestia code in a significant manner.
I don't think it's impractical. We just have to modify Celestia's operation mode suitably, once we are moving on cosmological scales or towards large mass distributions.
Lets take the concrete example of implementing the pulsar catalogue.
To keep the code fast and simple enough, we will have to switch to "strong gravity mode" rather than slowly approaching it. So close access e.g. to pulsars would only be allowed via (a modified) GOTO, while far away you'd use the usual code. At close distance a Celesltia-typical (much improved) version of the above videos could be experienced by the observer. Also leaving such systems would only work via GOTO rather than by moving contiuously.
Conceptionally, it's not much different to displaying close-ups of far-away multiple star systems in Celestia.
There you also fork in render.cpp...Mostly, one also selects the star and goes there by means of GOTO. Of course the render code is different and implements the distortion code of GR that is not too complex, actually.
Bye Fridger