Page 1 of 1

More on the bleeding color bug (Linux, Matrox G400)

Posted: 12.03.2002, 22:37
by bruckner
Hi, Chris! I didn't have the time to express myself on the latest Celestia for Linux installment, so here I go:

OOOOH! That Earth view *IS* breathtaking!

Compliments aside, I thought you'd like to know the current status of my personal favorite bug: the background color bleeding on 3ds objects... Now, with an interesting twist: Amalthea is semitransparent! As usual, there is a report on my web site (which needs some content changes now that Celestia 1.2.2 is out!): http://bruckner.homelinux.net/celestia_bugs.html.

You can count on me for any testing/recompiling, if you have the time (I am somewhat squeezed right now, so my response might delay a day or so).

BTW: How did the interview at NVidia go?

Best regards!

Bruckner

More on the bleeding color bug (Linux, Matrox G400)

Posted: 13.03.2002, 19:03
by chris
bruckner wrote:Hi, Chris! I didn't have the time to express myself on the latest Celestia for Linux installment, so here I go:

OOOOH! That Earth view *IS* breathtaking!

Compliments aside, I thought you'd like to know the current status of my personal favorite bug: the background color bleeding on 3ds objects... Now, with an interesting twist: Amalthea is semitransparent! As usual, there is a report on my web site (which needs some content changes now that Celestia 1.2.2 is out!): http://bruckner.homelinux.net/celestia_bugs.html.
Ugh . . . I'll keep working on it. I did add support for transparent 3DS meshes in this release, but I have no idea why it affects Amalthea. A couple things to try . . . First, is it still translucent when eclipse rendering is off? If so, try commenting out these lines in src/celengine/3dsmesh.cpp:

Code: Select all

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);


Let me know if still appears semitransparent . . . if not, it could be a big clue about what's going wrong.

BTW: How did the interview at NVidia go?

I'm still waiting to hear back from them . . . hopefully, they'll call me today. And speaking of nVidia, I'm awaiting the arrival of a GeForce4 Ti 4600 . . . it's got 128 megs of RAM, which is enough to hold a 16384x8192 Earth texture (compressed, with mip maps, it will be 80 megs.) It's not exactly a practical size, but it should make for a nice screen shot.

--Chris

Compiling right now...

Posted: 13.03.2002, 19:20
by bruckner
The effect is apparent both with and without the eclipse rendering enabled. However... I'll try to explain myself on this one, since it's difficult...

Imagine you are seeing Amalthea and Jupiter in a straight line. Amalthea doesn't appear transparent at all (nor red). In this situation, the bug is the same from 1.2.0.

Now, centered in Amalthea, if you rotate your view (right mouse drag), as long as you keep Jupiter behind, the transparency doesn't appear. It's like Jupiter formed a "protection cone" where Amalthea's view would not appear translucent. Once exited that cone, Amalthea is transparent again (and its tint slighly changing as one moves around, etc).

The change you suggested (it's just finished compiling :) ) did remove the transparency. Now the situation is the same as the old 1.2.0 bug.

Hope it helps...

Posted: 13.03.2002, 21:31
by chris
Here's another change to 3dsmesh you should try. Change this line:

Code: Select all

if (!blendOn && (*i)->getDiffuseColor().alpha() != 1.0f)

to:

Code: Select all

if (!blendOn && (*i)->getDiffuseColor().alpha() <= 254.0f / 255.0f)

Floating point roundoff meant that blending was always turned on. This change should make 3DS meshes opaque again, but I still haven't figured out where the bleeding is coming from.

--Chris

Yep, it works

Posted: 13.03.2002, 22:33
by bruckner
Your solution works as expected. No more transparency for Amalthea! However, color bleeding is as strong as ever... Here is a close range shot of Amalthea, showing one of its "poles" (at least, for the texture). Notice how a few triangles are the right color... Those are invariable and do not get the tint the rest of the surface has, no matter the position of the viewing point:
Image
I'm beginning to think in a somewhat drastic solution... Could you recommend me a good graphics card for my Linux (Mandrake 8.2, XFree86 4.1.0)? I'm looking specifically for a GeForce with 64MB, but they come in so many varieties... I couldn't even find your card in the catalogs of any important online stores in Spain: i suppose its too advanced for us :( ... And, judging by the prices of some smaller cousins, it would cost me a month's salary should it be available. But again I'd bet the prices aren't quite the same "overseas"... For a comparison, I can tell you the Geforce 3 Titanium 500 64 MB by Creative Labs (the most advanced available at local online retailers) is around 410€ (that should be $360, more or less). This is going to be a difficult decision...

Anyway, enjoy your new card! Can't wait to see those screenshots...

Bruckner

Yep, it works

Posted: 14.03.2002, 20:00
by chris
bruckner wrote:Your solution works as expected. No more transparency for Amalthea! However, color bleeding is as strong as ever...
Right . . . I didn't think it'd do much for the bleeding. Oh well.

Here is a close range shot of Amalthea, showing one of its "poles" (at least, for the texture). Notice how a few triangles are the right color... Those are invariable and do not get the tint the rest of the surface has, no matter the position of the viewing point:
Weird . . . I'm afraid I'm still no closer to figuring this one out. My sense is that it may be an OpenGL driver bug, but I'll keep working on it.

I'm beginning to think in a somewhat drastic solution... Could you recommend me a good graphics card for my Linux (Mandrake 8.2, XFree86 4.1.0)? I'm looking specifically for a GeForce with 64MB, but they come in so many varieties... I couldn't even find your card in the catalogs of any important online stores in Spain: i suppose its too advanced for us :( ... And, judging by the prices of some smaller cousins, it would cost me a month's salary should it be available. But again I'd bet the prices aren't quite the same "overseas"... For a comparison, I can tell you the Geforce 3 Titanium 500 64 MB by Creative Labs (the most advanced available at local online retailers) is around 410€ (that should be $360, more or less). This is going to be a difficult decision...

I'd recommend either an original GeForce3 or a GeForce3 Titanium 200 with 64 megs. There should be some good bargains since I believe that they're being replaced by the GeForce4 line of cards. The GeForce4 MX only has the feature set of a GeForce2--some of them are fast, but they're missing pixel and vertex shaders. The GeForce4 Titanium cards are very fast, but they're expensive and hard to find (mine still hasn't arrived yet.)

--Chris