10110111 / CalcMySky

Simulator of light scattering by planetary atmospheres
GNU General Public License v3.0
29 stars 7 forks source link

Double eclipsed texture not computed properly? #14

Closed Atque closed 1 year ago

Atque commented 1 year ago

When calculating the textures (using sample.atmo as input), no errors occur. However, when displaying the textures in Stellarium, solar eclipses look too dark, as if the double scattering eclipsed texture is missing. This is with the eclipse quality set to 1. See the screenshot below.

My textures: stellarium-178

Default textures: stellarium-179

In ShowMySky GUI, however, my textures and the textures included in the CMS release look identical.

My setup is Windows 10 64-bit, AMD Radeon RX 5700 XT with driver 23.4.1.

10110111 commented 1 year ago

I've seen some problems with double scattering at eclipse on Linux/Intel UHD Graphics 620. It's strange that you are having similar problems on Windows with AMD.

In ShowMySky GUI, however, my textures and the textures included in the CMS release look identical.

Please show the screenshots that you are comparing.

Atque commented 1 year ago

I've seen some problems with double scattering at eclipse on Linux/Intel UHD Graphics 620. It's strange that you are having similar problems on Windows with AMD.

This card has previously shown signs of having troubles with CMS.

Please show the screenshots that you are comparing.

My textures: result

Default textures: default

10110111 commented 1 year ago

Your screenshots are likely created with "Precompute double(-only) scattering on the fly" option turned on. This means the precomputed double scattering textures are ignored. What if you turn this option off?

In any case, these screenshots exhibit the same problem as the first screenshot in the OP: the lack (or incorrect brightness) of double scattering.

Atque commented 1 year ago

Oops, you are correct. Disabling that shows the exact same difference in ShowMySky GUI.

I also notice that computing the textures on the fly in Stellarium (eclipse mode 2 and 3) also causes this problem.

I would guess this is driver-related, as I cannot recall it happening when the first builds of ShowMySky were made (early 2022).

10110111 commented 1 year ago

Does it work better if you set radial integration points value to a power of two like 64 instead of 50?

10110111 commented 1 year ago

Another problem on Intel/Mesa 21.2.6 is that with the default iris driver, uniforms passed to the shader stop getting updated at some point, getting stuck at one of the old values (even though glGetUniform returns the correct values). This affects at least cameraViewDir, while some uniforms have values that differ by several percent from the values passed. This is visible in the previewer with on-the-fly double scattering enabled, when the Moon is far from the Sun: the whole scene gets pale. Using i965 driver via MESA_LOADER_DRIVER_OVERRIDE=i965 makes this issue disappear.

So, in summary, on Ubuntu 20.04 Mesa 21.2.6 Intel UHD Graphics 620, I have to use a power-of-two radial integration points setting, and i965 driver to make things work as expected.

Atque commented 1 year ago

Does it work better if you set radial integration points value to a power of two like 64 instead of 50?

That seems to have solved this. At least the computed textures now look like the ones distributed in the release package. Thanks!

10110111 commented 1 year ago

Please check that this works as expected with the default value of 50 in eds-fix branch.

Atque commented 1 year ago

Yes, that works as expected.