Jump to content

Does software exist to generate an accurate image of the starfield from Sol?


EzinX

Recommended Posts

Basically, what I'd like to do is find a piece of software that can render the stars visible from Sol to a naked human eye from a given perspective. I'd make 6 such high resolution images, and use them for the skybox sides in KSP and other games.

Also, I think I read about software that could calculate what the starfield would look like from another star. A crude, hacky way to do it would be to generate it by hand for a star near to earth by simply manually adding a few pixels to represent Sol from a distance, and to delete the pixels representing, say, Alpha Centauri from the image.

A lot of games use those cool false color images taken by applying filters to telescope images. It's a shame there's probably nowhere in the universe where the night sky actually has that kind of rich color in the background.

Link to comment
Share on other sites

I'm looking forward to see your final product. The more realistic the sky in KSP is, the more enjoyable it is for me.

To non astronomers, it's just a random collection of white dots. I feel like I need to do something to make it more interesting.

Link to comment
Share on other sites

Never mind. It looks awesome. Not sure which rendering mode is closest to a real naked eye view of the sky from space, though, there's "fuzzy points", "points", and "scaled disks".

Have to go on the celestia forums. Also while it's easy to stick the camera near sol and set the FOV to 90 degrees and easy to save PNGs for each of the 6 images needed for a skybox, there's no numerical way to reorient the camera. I'll have to do it by hand or maybe there's a way that doesn't involve source code editing.

Link to comment
Share on other sites

Never mind. It looks awesome. Not sure which rendering mode is closest to a real naked eye view of the sky from space, though, there's "fuzzy points", "points", and "scaled disks".

Have to go on the celestia forums. Also while it's easy to stick the camera near sol and set the FOV to 90 degrees and easy to save PNGs for each of the 6 images needed for a skybox, there's no numerical way to reorient the camera. I'll have to do it by hand or maybe there's a way that doesn't involve source code editing.

In using Celestia, viewing stars from Earth's surface (through Earth's atmosphere), setting it to maximum magnitude 6 stars with "fuzzy points" is a very close approximation. Out in the vacuum of space however, setting it to maximum magnitude 10 with "points" is very close to what astronauts see. That was documented on the Shatters.net forums (Celestia's forums), but those forums are no more. You might find mention of it in Celestia's Wiki.

Link to comment
Share on other sites

To non astronomers, it's just a random collection of white dots. I feel like I need to do something to make it more interesting.

You don't have to add anything except maybe a bit more color (let's pretend KSP universe is a bit more colorful) to the otherwise very pale colored stars.

Don't be tempted to add any nebulas and all that. Personally, the stock skybox gives me headache.

Never mind. It looks awesome. Not sure which rendering mode is closest to a real naked eye view of the sky from space, though, there's "fuzzy points", "points", and "scaled disks".

Have to go on the celestia forums. Also while it's easy to stick the camera near sol and set the FOV to 90 degrees and easy to save PNGs for each of the 6 images needed for a skybox, there's no numerical way to reorient the camera. I'll have to do it by hand or maybe there's a way that doesn't involve source code editing.

Few years ago I used to use "points" because they are the most correct approximation, but for some reason now they look like squares so I use fuzzy points.

You can turn off the Sun in settings. You can't get in the center but almost 700,000 km is absolutely not significant. However I don't know of any way to correctly, numerically change the orientation. Maybe there's a plugin for that?

Also, why our sky? You could make your own sky and that's a piece of cake.

In using Celestia, viewing stars from Earth's surface (through Earth's atmosphere), setting it to maximum magnitude 6 stars with "fuzzy points" is a very close approximation. Out in the vacuum of space however, setting it to maximum magnitude 10 with "points" is very close to what astronauts see. That was documented on the Shatters.net forums (Celestia's forums), but those forums are no more. You might find mention of it in Celestia's Wiki.

No, the human eye can not see anything dimmer than magnitude 6. Setting to "points" and limiting the magnitude to 5.9 is the most correct approximation.

Edited by lajoswinkler
Link to comment
Share on other sites

No, the human eye can not see anything dimmer than magnitude 6. Setting to "points" and limiting the magnitude to 5.9 is the most correct approximation.

These guys seem to think the human eye can do a little better in dark rural areas. Presumably in deep space, in your suit alone and not near any sunlight scattering objects like your ship, you would be able to see even more with the human eye. Magnitude 8 is my guess as to the absolute limit in that situation, since below that the signal would probably be below the noise threshold for a naked eye.

Edited by EzinX
Link to comment
Share on other sites

Stellarium would be another good one for the Sun, but there's really no point in using that as the centre of the map. A map from Earth is going to look identical, as would one from Pluto or Sedna.

Even a star map from Alpha Centauri would look almost identical to one on Earth. Most of the constellations would still look the same. The only obvious difference would be a bright yellow star in the night sky and no Alpha Centauri.

Space really is so big that you could move 4 light years and it'd be difficult to tell you'd moved at all.

Link to comment
Share on other sites

These guys

seem to think the human eye can do a little better in dark rural areas. Presumably in deep space, in your suit alone and not near any sunlight scattering objects like your ship, you would be able to see even more with the human eye. Magnitude 8 is my guess as to the absolute limit in that situation, since below that the signal would probably be below the noise threshold for a naked eye.

No, that chart isn't right. Just because it's from a Harvard source doesn't mean it must be correct. You do understand that scale is logarithmic?

Magnitude 8 is absolutely undetectable with human eyes. Uranus is basically the limit which requires extreme darkness, good eyesight, at least half hour of adaptation to complete darkness, and perfect sky.

Link to comment
Share on other sites

No, the human eye can not see anything dimmer than magnitude 6. Setting to "points" and limiting the magnitude to 5.9 is the most correct approximation.

I guess you didn't read what I wrote? That's not my suggestion, that's straight from the Devs off of the Shatters.net site. If you doubt that, I then suggest you visit the new forums at CelestialMatters and pose the question to them - they are the developers. http://forum.celestialmatters.org/index.php

Link to comment
Share on other sites

  • 4 weeks later...

I just spent half a day on-and-off trying to achieve this via celestia scripting (.celx, which is in lua). Unfortunately, it took several hours of hitting my head against a brick wall before I realized that although you can set the viewpoint's reference frame you cannot set the lua functions reference frame, which is always universal. Once I figured that out it was a simply case of converting my desired view start/end points from body-centric to universal. There is a catch though, in that when you set your view with two points you need an up-vector which is also always universal, and I don't know how to convert that from one frame to another. So I just got it semi-close to correct by trial and error. If anyone knows how to take a vector pointing north from the center of the earth and turn it into celestia's universal vector, you could get the images to line up perfectly.

Then, finally, I had to flip negative/positive x/z, and convert it from png to dds as well.

Here is my script:

celestia:setwindowbordersvisible(false)celestia:settimescale(0)
celestia:setrenderflags{nightmaps = false, planets = false, automag = false, atmospheres = false, nebulae = true, globulars = true, galaxies = true, stars = true}
celestia:setambient(0.0)
celestia:setfaintestvisible(8.0)
celestia:setstarstyle("point")


obs = celestia:getobserver()


rotationangle90 = math.rad(90) -- 90 degrees in radians
obs:setfov(rotationangle90)




now = celestia:gettime()
earth = celestia:find("Sol/Earth") -- find Earth
obs:setframe(celestia:newframe("universal")) -- reset to universal frame
celestia:select(earth)




e_eqf = celestia:newframe("bodyfixed", earth) -- if only this applied to the rest of my script...
obs:setframe(e_eqf) -- ditto


poszero = e_eqf:from(celestia:newposition(0.0000001,0.0000001,0.0000001)) -- convert slightly off the center of earth to universal
obs:setposition(poszero) -- move there


poszplus = e_eqf:from(celestia:newposition(0, 0, 1 )) -- aim out the z axis
posznegative = e_eqf:from(celestia:newposition(0, 0, -1 )) -- reverse
posxplus = e_eqf:from(celestia:newposition(1, 0, 0 )) -- x axis
posxnegative = e_eqf:from(celestia:newposition(-1, 0, 0 )) -- you get the idea
posyplus = e_eqf:from(celestia:newposition(0, 1, 0 )) -- y axis
posynegative = e_eqf:from(celestia:newposition(0, -1, 0 ))




wait(2.0)


obs:lookat(poszero, poszplus, celestia:newvector(-0.245,1,-0.245)) -- look from universal center of earth to universal equivalent of earths z axis, also a trial and error north pole to universal up axis
screenshot = celestia:takescreenshot("png", "zpos")


wait(2.0)


obs:lookat(poszero, posznegative, celestia:newvector(-0.2425,1,-0.2425)) -- why are the up axes different, I don't understand vectors or 3 dimensional space!
screenshot = celestia:takescreenshot("png", "zneg")


wait(2.0)


obs:lookat(poszero, posxplus, celestia:newvector(0.69,0.8,0.69))
screenshot = celestia:takescreenshot("png", "xpos")


wait(2.0)


obs:lookat(poszero, posxnegative, celestia:newvector(0.69,0.8,0.69))
screenshot = celestia:takescreenshot("png", "xneg")


wait(3.0)


obs:lookat(poszero, posyplus, celestia:newvector(1,0.25,1))
screenshot = celestia:takescreenshot("png", "ypos")


wait(3.0)


obs:lookat(poszero, posynegative, celestia:newvector(1,0.2,1))
screenshot = celestia:takescreenshot("png", "yneg")

Do scripts need licenses? If so, I guess I release this under whatever license celestia is under.

Edit:

Oh no. No.

The up vector you need changes based on your celestia window size!!! ;.;

Edited by ErrHead
Link to comment
Share on other sites

You can also go uber-nerd and write your own rendering routine from an open database... I'd recommend the SAO (http://tdc-www.harvard.edu/catalogs/sao.html), which lets you filter your search by VM until you find a good-sized population. Then, you can render position by RA/dec, brightness by VM, size by class, and color by a class-based lookup from the Hertzsprung–Russell diagram. Easy-peasy!

Link to comment
Share on other sites

While I'm familar with .celx & lua (I can read it, but have never tried to write anything in it), I used to take a simpler route and just use .cel scripts. I always seemed to manage to have issues/problems with reference frames (most likely a lack of understanding on my part lol). I don't know if they're still out there being the shatters.net forums are gone, but Selden Ball wrote some very helpful documentation (he and several others as well)... you might try including his name in a Google 'celestia' search.

As for the scripts needing licenses... I don't think so, as long as it's for non-commercial use. Check the Celestia TOS, I think all that's required is proper citation/mention... but don't quote me on that.

I know Fridger (Dr. Fridger Schrempp, dev and head-honcho of Celestial Matters) doesn't care much for Celestia discussion in his forums, but you might try there also anyway - just use some tact when you do. That's where all the devs went to after Chris Laurel moved on (he was the creator of Celestia).

Good luck.

Link to comment
Share on other sites

SpaceEngine is limited to Windows machines; Celestia and Stellarium are available for all the major platforms. All three are free.

Most people are on Windows, the ability to use software on multiple platforms generally is of limited use. The scale of SpaceEngine is unprecedented though. Almost all known objects are included and represented accurately, and the rest of the universe is procedurally generated in compliance with our current understanding of it all. You can actually traverse the whole known universe and beyond. In truly is the most in depth and visceral representation of the universe we live in, and it looks eye-wateringly beautiful to boot.

Yes, I am a fan :) Do not get me wrong, Stellarium and Celestia are wonderful pieces of software, but you really need to see SpaceEngine to believe it.

Link to comment
Share on other sites

To non astronomers, it's just a random collection of white dots. I feel like I need to do something to make it more interesting.

I'm not so sure, given how good the subconscious is at remembering and recognizing patterns maybe it's one of those things that if it looks right the player wouldn't really notice but if it's wrong something would seem to be not quite right.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...