Page 1 of 1

Asteroid Belts

Posted: 28.08.2004, 05:40
by Dollan
Is there any way to graphically represent the presence of an asteroid belt, aside from actually creating a lot of asteroids within a certain region?

Thanks!

...John...

Posted: 28.08.2004, 11:16
by selden
John,

I think that depends on what kind of visual effect you're trying to generate. Remember that asteroids, even in the densest part of the main belt, are invisibly tiny, dark, and distant from one another.

If you're trying to generate a "realistic" display, then individual definitions probaby are appropriate. The disadvantage is that Celestia will run very slowly, even if only a few thousand of them are defined.

If you're trying to present an overview of their locations, you might want to consider a single model consisting of many points, with each point representing an asteroid. Celestia can easily draw hundreds of thousands of those points in realtime. The disadvantage is that they'll be in fixed positions relative to one another within the model and won't follow individual orbits.

Added slightly later:
You can think of the two options above as the extremes. You'd get a significant performace improvement by making models that consist of many internal meshes, with each mesh representing an individual asteroid.

You might also consider representing an asteroid belt by using rings like those drawn around Saturn. It wouldn't be very realistic, of course.

Posted: 28.08.2004, 14:05
by gr8eagle8
Couldn't you do individual asteroids but using only a few meshes / textures. So that way you could have lots of individual asteroids, but using minimal meshes/textures.

This means that several would all look the same but if you produce say 10 different asteroid types and use them say 10 times you could get 100 asteroids in a belt.

This would be better that a single 'image' as you could visit a single asteroid but also minimise the amount of memory usage as only few asdteroids are actually being shown (just several times)

Just a thought... :wink: (also would this work.. just out of interest :?: or would is still effect performance too much)

Posted: 28.08.2004, 14:32
by selden
gr8eagle8 wrote:Couldn't you do individual asteroids but using only a few meshes / textures. So that way you could have lots of individual asteroids, but using minimal meshes/textures.
This is in fact what normally is done. An example is the 7000 asteroid Addon. It uses one 3d model and one surface texture image file. However, it places it in thousands of locations using thousands of separate object definitions within its SSC catalog file.

See http://www.celestiamotherlode.net/catalog/asteroids.html
It's titled "Monster Asteroid .ssc", down near the bottom of the page.

This means that several would all look the same but if you produce say 10 different asteroid types and use them say 10 times you could get 100 asteroids in a belt.

This would be better that a single 'image' as you could visit a single asteroid but also minimise the amount of memory usage as only few asdteroids are actually being shown (just several times)

Just a thought... :wink: (also would this work.. just out of interest :?: or would is still effect performance too much)


Drawing the models is fast. Calculating where they are and how they're oriented is what's slow.

Unfortunately, it's the use of the main CPU to recalculate the positions and orientations of all of those objects that is expensive. Once the positions and orientations are known, drawing them is handled by the 3D graphics hardware. Remember, Celestia has to recalculate the location and orientation of every visible object for every frame that will be drawn on your screen. By "object" I mean each definition of a separate object in all of the SSC, STC and DSC catalog files.

That's why defining many bodies by using a single 3D model declared as a single object in a catalog file is such a big win: Celestia only has to use your main CPU to calculate the location and orientation of just that one object. Your graphics hardware then calculates the locations of the points in that model to draw them on the screen. 3D graphics accelerators are designed to do those kinds of calculations extremely quickly, and are much better at it than the system's general purpose CPU.

Of course, even drawing a single model can be quite slow if you're using a system that doesn't have a 3D graphics card.

Posted: 28.08.2004, 14:39
by gr8eagle8
So really it simply means:

Do you want a realisitic asteroid belt but reducing performance or
Use a single image thus less realism but a lot better performance...

So sadly in the scenario, you can't have it both ways really can you? :cry:

Posted: 28.08.2004, 15:03
by selden
Right.
It's a trade-off.

You have to decide what aspects you want to display to their best advantage. Sometimes a mixture of the different display methods can do what you want.

Also, in some future version of Celestia, it might be possible to have some of the time consuming non-graphical calculations be handled by the graphics accelerator, too. Those things are relatively difficult to program with the current generations of 3D cards, though. It looks like future designs might make it a lot easier.

Posted: 28.08.2004, 22:46
by Dollan
Thanks for the anwers, Selden. I think what I'll probably do is come up with three or four representative bodies, with an additional note in the ssc that they are the largest members of the belt in question.

Thanks!

...John...