Stars, blobs, nebulea and galaxies that are viewed throught another stars corona, nebulae or galaxie are becoming noticeable brighter that it neighbors, because Celestia adds transparency brightness and brightness of background. The realistic way would be that glowing He and other glowing elements would decrease the possibility to see objects in the background - meaning that the transparencies brightness is at least subtracted from the backgrounds brightness.
maxim.
Bug report: Stars behind transparency
-
- Site Admin
- Posts: 4211
- Joined: 28.01.2002
- With us: 22 years 10 months
- Location: Seattle, Washington, USA
Yes, it would be more realistic for nebulae to partially obscure stars behind them . . . Unfortunately, it requires sorting the 118,000 stars in the database by distance from the viewer, which is much to expensive to do every frame. I could get away with sorting just the subset that's actually visible, but even this is prohibitive. The stars are stored in an octree structure, so it may be possible to do something clever with the sorting, but I haven't figured out what that something is. The problem with coronas is somewhat easier to solve, but the nebula rendering limitation will remain for some time I'm afraid.
--Chris
--Chris
chris,
let me try to get the picture: It's a cube with sun at center, and stars around - this looks like being part of the 16k ly limits problem then - every star has his own elemental subcube, while empty space is combined to larger portions by the octree tiling - this structure stays static even while flying around - is that about the situation?
So we can sort out corona and galaxies. Everything is behind a corona (concerning stars). For galaxies it's an acceptable heuristic to switch such a feature to on only as soon as that galaxie is the nearest object. Remains nebulae - as you said.
Are the nebulae part of the octree tiling? If not, could there be easily determined which octree elements they are covering? Or could there be an own (coarser, bigger, but aligned) octree for the nebulae? Perhaps it would be possible to cover only nebulae inside the basic octree, and treating such outside the same way as galaxies. What I'm currently trying to outline is a kind of clipping plane inside the octree, that clearly defines areas 'in front', areas 'behind' and intersecting areas which had to be further examined. This should be possible to determine by only looking on the cell coordinates while traversing the octree.
Well this was just a ten minutes idea - but I think the whole thing is worth to be further examined. I'll gonna see what I can find on algorithms using octree structures - in my spare time of course, so it's probably not too fast.
maxim
let me try to get the picture: It's a cube with sun at center, and stars around - this looks like being part of the 16k ly limits problem then - every star has his own elemental subcube, while empty space is combined to larger portions by the octree tiling - this structure stays static even while flying around - is that about the situation?
So we can sort out corona and galaxies. Everything is behind a corona (concerning stars). For galaxies it's an acceptable heuristic to switch such a feature to on only as soon as that galaxie is the nearest object. Remains nebulae - as you said.
Are the nebulae part of the octree tiling? If not, could there be easily determined which octree elements they are covering? Or could there be an own (coarser, bigger, but aligned) octree for the nebulae? Perhaps it would be possible to cover only nebulae inside the basic octree, and treating such outside the same way as galaxies. What I'm currently trying to outline is a kind of clipping plane inside the octree, that clearly defines areas 'in front', areas 'behind' and intersecting areas which had to be further examined. This should be possible to determine by only looking on the cell coordinates while traversing the octree.
Well this was just a ten minutes idea - but I think the whole thing is worth to be further examined. I'll gonna see what I can find on algorithms using octree structures - in my spare time of course, so it's probably not too fast.
maxim