Page 1 of 1

Multiple light sources + OpenGL 2.0 = overexposed planets

Posted: 28.01.2009, 12:26
by bdm
When a planet with a light-coloured texture (for example, an ice-covered planet) is in orbit around a double star, the OpenGL 2.0 render path overexposes the texture. Instead of the features showing up, the planet is overexposed and large parts can turn out featureless white (or possibly another uniform colour).

This has been replicated in Celestia 1.5.0 and Celestia 1.6.0, r4606 (Windows XP).

If a moon casts a shadow on the overexposed part, detail can be seen inside the shadow but not outside.

Render path: OpenGL vertex program/NVIDIA combiners - this works
test1-opengl-nvidia.jpg


Render path: OpenGL 2.0 - this does not work; note the loss of detail in the middle of the planet's image
test1-opengl2.jpg


To replicate, here is the texture:
light-test.jpg


Here is the ssc file:

Code: Select all

"Testworld" "DEL Tri"
{
    Radius 5000
    Color       [ 0.6 0.6 0.6 ]   

    Texture "light-test.*"

    EllipticalOrbit
    {
        Period           2.07
        SemiMajorAxis    1.96
        Eccentricity     0.0
        Inclination      057
        AscendingNode    122
        LongOfPericenter 356
        MeanLongitude    276
    }

    Obliquity            057
    EquatorAscendingNode 122

    RotationOffset       0
    RotationPeriod       24

    Albedo               0.50
}

"Testmoon" "DEL Tri/Testworld"
{
    Radius               500
    Texture              "light-test.*"
    Color                [0.4 0.4 0.4]
    Albedo               0.3

    EllipticalOrbit
    {
        Period           2
        SemiMajorAxis    30000
        Eccentricity     0
        Inclination      000
        AscendingNode    212
        LongOfPericenter 146
        MeanLongitude    132
    }

    Obliquity            000
    EquatorAscendingNode 010
    RotationOffset       000
}


Cel URL

(if the above URL does not work:
1. Type: Enter, "DEL Tri", Enter
2. Type: "g" (Go to)
3. Type: "1", "g" (Go to)
4. If desired, Speed it up by 100000x until the moon shadow crosses the planet's face)

NOTES:
* This issue appears to be caused by something in the handling of multiple light sources. OpenGL 2.0 is the only render path that draws multiple shadows, and it is the only render path that has this issue with loss of detail.
* Above screen captures were created before I added the moon

Re: Multiple light sources + OpenGL 2.0 = overexposed planets

Posted: 02.02.2009, 11:27
by bdm
Hmm, even when drawn right, the render still looks wrong (see top image). It looks as if someone's drawn the planet onto a balloon and then squashed the balloon against a piece of glass. The middle portion is of uniform brightness and the ring around the edge tapers off in brightness.

This only happens for light-coloured planets; darker planets look fine.

Does anyone else see this issue or the other one mentioned in the OP?

Re: Multiple light sources + OpenGL 2.0 = overexposed planets

Posted: 02.02.2009, 12:59
by selden
I see the same effect.
Apparently Celestia needs to rescale when whites are saturated.

Maybe it'll be fixed by the use of HDRI, but I dunno when that might happen.

Re: Multiple light sources + OpenGL 2.0 = overexposed planets

Posted: 03.02.2009, 14:29
by BobHegwood
bdm wrote:Does anyone else see this issue or the other one mentioned in the OP?

Don't know if this is the same problem or not, but I still
have to play with ambient light in order to display my
planets so that the ambient light works correctly. I have reported
this before, but on my system, I have to change the ambient
light value to "none" and then reset it to "medium" when I
first start Celestia. After I do this once, my ambient light
setting works fine until I restart Celestia. Just FYI. :wink:
If I don't do this, I see the same problem as bdm does here.

Thanks, Brain-Dead

Re: Multiple light sources + OpenGL 2.0 = overexposed planets

Posted: 16.02.2009, 10:53
by bdm
Bob's issue with the ambient light has allowed me to find that the solar system planets becomes similarly overexposed once the ambient light is cranked up with the } key. For Jupiter it shows with the ambient light set to anything over 0.20, Saturn 0.25, Uranus 0.35 and Neptune 0.75.