Page 1 of 1

Chris...

Posted: 07.11.2002, 23:02
by Rassilon
I was wondering if it would be much bother to enable the limit beyond 16k ly without ading additional stars...I remember you mentioned that there would be preformance issues arising with this...but well if you need someone to beta test that aspect...and well whoever else is interested Im sure we would be willing to help out in that avenue...making it clear to who ever decides to test this that it may not work properly...

Just a thought...oh and btw you did change something about models...Eta Carinae now properly appears behind the star instead of in front of it...though at some points it should reman in front...It seems that when you enter the radial area of the object this rendering takes affect...But at the same time at some degrees of visualisation...there is a sort of clipping where bits of the model have holes appearing in it...If you have it on your computer you can see what I mean by rotating the star around a bit at a close distance...The clipping has existed for quite some time and has nothing to do with this new feature ;)

Posted: 07.11.2002, 23:50
by chris
It turns out that there's a bit of a complication in extending the limit. It has to do with the limitations of single-precision floating point numbers.

The mantissa of an IEEE 32-bit floating point number is 23 bits, which gives a precision of about 1 in 8 million. At 16,000 light years, that works out to 0.002 light years. At 100,000 light years, it's 0.0125 light years, or 1/80 of a light year . . . You'll start seeing some jerkiness in the positions of the stars when travelling that far from Earth. I've worked around precision limitations other places in Celestia, and there are ways to get around them here too. It's just that it requires more than simply tuning a single parameter . . .

--Chris

Posted: 08.11.2002, 00:14
by Rassilon
Not quite sure fully the process your using to plot the stars...but I do know double precision is a bit more accurate and may reduce the jerkyness...though at 1 trillion ly this may present the same problem...

What I see from your statement is that you will have to recode the entire star rendering/plotting aspect of Celestia to rely more on a xyz plotting trajectory where all you would need is something like this

define struct star {
distance as double
xplot as single
yplot as single
zplot as single
}

Where it wouldnt matter how far away from the earth you were and in an essence would be using something similar to galactic coordinates...sort of the same way galaxies are plotted maybe? and at the same time have a conversion process allowing you to still use RA and Dec mesurements...if you follow me that is...

Or there may be a way to plot stars without using the earths distance as an element? Point of reference is needed I know but there might be a way to ignore this somehow...Ill think more on that one lol

Also if I remember a while back someone labeled Sirius? filled our galaxy with stars...I wonder if he ran into similar problems and what was his solutions...

Posted: 08.11.2002, 03:35
by Rassilon
OK on the xyz plotting without distance from earth...just that plot xyz coordinates and maybe structure it similar to a memory buffer...but in 3 dimensions...if you could visualise the universe as a cube 0,0,0 would be the top left most corner and 1 trillion,1 trillion,1 trillion or something to that effect would be the lower right most corner relative to the definition of front and sides as defined in the code...

very large array

Posted: 08.11.2002, 05:24
by aaronsb
A 1,000,000,000,000 ^3 sized array would be a bit large, eh?

How about storing the star data (positions, star type, planets, etc) in "sectors" in the galaxy?

Maybe do some sort of LOD, with the immediate sector rendered in full, but the farther away the sector, the less actual points are loaded in memory to be rendered on the display, saving memory.

I suppose it would get a bit more complex if you wanted to zoom in like a telescope to a particular spot in the sky, but I suppose you could plot vectors through all the sectors you need to load and render the stars that way.

I don't claim to know the first thing about coding, much less advanced topics on modelling millions of points of data on a 3d interactive interface, but it never hurts to comment on it, eh? :)

Rassilon wrote:OK on the xyz plotting without distance from earth...just that plot xyz coordinates and maybe structure it similar to a memory buffer...but in 3 dimensions...if you could visualise the universe as a cube 0,0,0 would be the top left most corner and 1 trillion,1 trillion,1 trillion or something to that effect would be the lower right most corner relative to the definition of front and sides as defined in the code...