CelestiaProject / Celestia

Real-time 3D visualization of space.
https://celestiaproject.space
GNU General Public License v2.0
1.81k stars 304 forks source link

Improve galaxy and globular rendering #544

Open SevenSpheres opened 4 years ago

SevenSpheres commented 4 years ago

Note: this is also something for after the 1.7 release.

Celestia's rendering of galaxies and globular clusters should be improved, as has been done in celestia.Sci. Checklist of specific issues:

Globular clusters

Galaxies

LukeCEL commented 4 years ago

Maybe we should split this into several issues, since there are several problems with galaxy and globular rendering right now.

SevenSpheres commented 4 years ago

If you can list specific problems I can make a checklist and/or additional issues.

LukeCEL commented 4 years ago

GLOBULAR CLUSTERS:

I can add more later.

LukeCEL commented 4 years ago

GALAXIES:

SevenSpheres commented 4 years ago

@LukeCEL I put your checklist in the OP. @375gnu should I split these out into separate issues or leave them here?

375gnu commented 4 years ago

Let's have them all together for a while.

Some sprites look green, which shouldn't happen.

t00fri had an argue with @claurel regarding this issue, you can try to find it on the forum. t00fri said this is correct colour.

LukeCEL commented 4 years ago

t00fri had an argue with @claurel regarding this issue, you can try to find it on the forum. t00fri said this is correct colour.

Yeah, I saw that argument, but I couldn't really tell what he was saying. I think I might ask him on the Celestial Matters forums, but even the CM forums are having problems: image

LukeCEL commented 4 years ago

I asked again over at the CM forums:

I've always noticed that in Celestia 1.6.1, globular clusters appear to have a ring of green stars around them, between the bright yellowish cores and the outer blue stars. Is this correct?

and he said something different:

No, Luke. There are no green stars in visual-star color schemes. Since I did both the globulars in Celestia and those in celestia.Sci I remember that with the SDSS colors (my standard DSO reference), greenish shades might well appear. To compare stars in different schemes you must always fold in the color scheme used and then transform it to some standard reference scheme.

Before coding the globulars I did many analytical studies via MAPLE. In celestia.Sci I further extended these studies and wrote a universal shader code for all stars (including halo stars around galaxies. globulars etc).

http://forum.celestialmatters.org/viewtopic.php?f=2&p=15516&sid=24f764d74b40e6a07334dc92bc73c738#p15516

LukeCEL commented 4 years ago

I tentatively fixed the green sprites problem by adding this code after line 689 of src/celengine/globular.cpp:

        if (hue > 60 && hue < 180) {
            sat = 0.0f;
        }

Should I make a PR for this?

LukeCEL commented 4 years ago

Here is a GIF demonstrating the "galaxy twinkling" effect: galaxytwinkling

LukeCEL commented 4 years ago

I think I've tracked down the commit that causes the "galaxy twinkling" bug: https://github.com/CelestiaProject/Celestia/commit/39eb715f984dc2fdd8e12d8bb7572a16c1695fba

SevenSpheres commented 4 years ago

Luke has been improving the rendering of elliptical and lenticular galaxies in this thread. Could the concept behind this help with updating Celestia's code for rendering these types of galaxies?

levinli303 commented 3 years ago

https://beltoforion.de/en/spiral_galaxy_renderer/ this looks good and it has code implementation.

375gnu commented 3 years ago

https://beltoforion.de/en/spiral_galaxy_renderer/ this looks good and it has code implementation.

this is was i was thinking about

TheLostProbe commented 1 year ago

we could try to recreate celestia.Sci's galaxy renderer, at least for spirals and irregulars, because there is enough information available to at least attempt this. Sci's galaxies look kind of similar to normal celestia's galaxies, but there is a colour gradient, the density of the nebulous parts is increased, the core has a bulge that glows (could be implemented in a similar way to proper elliptical galaxy rendering, essentially just a glowing yellow point in 3d), and instead of point sprites it uses diffusion limited aggregation. Sci's irregulars also use DLA, and there are two entire threads on the CM forums explaining it (sort of) of course, the easier approach is going to be using the renderer on beltoforion.de, but it is going to need some changes since it is intended to be a dynamic, moving galaxy simulation, which is not compatible with celestia right now. but perhaps we should try something different first before resorting to that renderer

three screenshots of Sci's spiral galaxies

Specific to 1.7: Changing the light gain turns on and off sprites, so there's a weird twinkling lights effect.

by the way, this should be ticked off because i dont think anyone has seen it in 1.7.0 for a long while now, including myself