PDA

View Full Version : Colors Geforce2/ Voodoo 2



OrigamiMaster
04-03-2001, 01:15 AM
glBegin(GL_QUADS);
glColor4f(0.8, 0.8, 0.8, 0.4);
glVertex3f(-1.0, -0.4, -1.5);
glVertex3f(-1.0, -1.0, -1.5);
glVertex3f(1.0, -1.0, -1.5);
glVertex3f(1.0, -0.4, -1.5);
glEnd();


This code sequence displays nothing on a Geforce2 but works fine for a Voodoo2.
Has anybody had similar problems with differences between Geforce2 and Voodoo2?

Bob
04-03-2001, 03:14 AM
Are you checking for errors when creating a window or the rendering context for the GeForce?

OrigamiMaster
04-03-2001, 05:32 AM
How can I check for these errors?

I don't think that this is the problem.
I draw a world and some objects in it (vertex meshes) with materials and textures and that works fine.
Then I turn lighting off and want to draw a cockpit as simple quad (for testing, there will be a texture on it later), but it isn't displayed. The strange thing is that it had already worked in an earlier version but unfortunately I don't know what I changed.
And it still works on Voodoo and on ATI Cards as well.

hoshi55
04-03-2001, 07:47 AM
the problem is this:
origamimaster and me are programing this together and it seems that the openGL drivers for a geForce 2 MX have a different conception of blending than other cards like Voodoo2, ATI, etc.

we´ve set the blending function to
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
then draw a quad of solid color with alpha = 1.0 and map a texture with some transparent areas onto the quad. however, the texture isn´t displayed at all, which is clearly the case because we it uses alpha values for some pixels other than 1.0. mapping an opaque texture works fine.

so, what would be the sure-fire way to display non-oblique textures on a geforce2 mx?


regards

eik

Korval
04-03-2001, 12:01 PM
Have you looked at the blatently obvious (glEnable-ing blending, for instance)? You can use glError to get the last error that has occurred.

Also, have you tried other blend functions. Just as a test, try (GL_ONE, GL_ZERO). If nothing still shows up, then blending is probably not enabled.

Oh, and if you are sending color data via glColor, make sure that glColorMaterial has been enabled properly. Otherwise, it will still be using the same color value.