Texture Quality

Anyone any idea why when I texture map a bmp it loses some quality, i know this as when using draw pixels with the same data the image is fine. Does gl do some sort of lossy compression?

gav

Maybe you’re using 16-bit textures?
Scaling it up so the bitmap gets fuzzy?
And, no there’s no compression going on unless you enabled it yourself.

16 bit textures??

Are you using gltexparameteri to set the minification and magnification filters right?

this is for high quality 2d Texture
Minification and Magnification.

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);

>>16 bit textures??

When uploading the texture (with glTexImage*D), you must specify an internal texture format. If you say GL_RGB, you don’t specify the exact amount of bits to represent the image. Your implementation might convert your 24/32-bit image into a 16-bit texture when uploading, because it finds it more suitable. To specifically tell OpenGL what format to use, try GL_RGB8/GL_RGBA8, which means 8 bits per channel.

Also keep in mind that a texturemap will probably never reach an exact 1 for 1 pixel mapping to your screen, so you’re probably getting a little bit of blur from the various filtering steps that happen with textures.

By looking at the pic degradation I would assume that it is dropping it to a 16 bit image. One thing I did notice was that on win 98 ther was degredation but on win 2000 there wasn’t, just a point… thanks for help everyone…

gav

as far as i´m concerned, textures must be of a 2^n x 2^m size for openGL to work. if they´re not, openGL resizes them to the next smaller size matching this requirement, so a 300x280 texture might become a 256x256 one, for example. this explains some loss of detail and quality. glDrawpixels does not have this limitation.
of course, color depth might also be the reason…