Is putting one of the texture compresssion formats ie COMPRESSED_RGB_S3TC_DXT1_EXT as paramater 3 of glTexImage2d(); all that is nessicary? assuming youve allready checked for the avaialability of the GL_EXT_texture_compression_s3tc extension.
Seems to easy to me.

Here is an article about ARB_texture_compression and EXT_texture_compression_s3tc extensions. http://www.nvidia.com/Marketing/Developer/DevRel.nsf/bookmark/86CA121A06B22857882568E8000B1E8F

It seems like you should compress your textures and save them and avoid doing that during runtime. If you have compressed textures can you use this:
glBindTexture(GL_TEXTURE_2D, already_compressed_decal_map);
glCompressedTexImage2D(GL_TEXTURE_2D, 0, internalFormat, width, height,
border, image_size, data);

I’ve wondered why people go on about this. Is doing the compression at load time really that bad? How much slower is a glTexImage with compression, than one without?

Maybe I should do some comparisons. I’m pretty sure Q3 does not store pre compressed textures when you selected texture compression, and I dont notice any difference in loading speed. Perhaps Q3 uses multiple threads, and compresses asynchronously, while loading others?


Yes, it would be great if you did some tests but it seems like it is slow to compress.
From this http://www.digit-life.com/articles/reviews3tcfxt1/
“For example, S3TC managed to compress complex (with rear recurring pixels) textures 256X256X32 for about a couple of seconds, and 3dfx baby did the similar thing for about 50-60 seconds on the test computer.”

Using multiple threads is a great idea. I think it would really work if your card is fast enough but if the numbers above is right do I think that Q3 after all has precompressed textures. (Think of the 3dfx guys… )

Another reason for using precompressed textures could be that they are easier to change. The article I mentioned in my first post has a little DDS file loader so you can use the texture tool from DirectX. An artist could use some tool to change the compression for each texture without any programming.