Extensions and texture sizes

I’m writing an OpenGL Demo at the moment and have two questions:

  1. Which extensions are ok to use. I don’t want to view this demo to geForce Users only. It should run on the most machines. Is e.g. Multitexturing handled by the most graphics cards? I think ATI and Nvidia are the ones to mostly support?

  2. Which how much textures can I bind and how big should they be. Will there be a big perfermance loss when using big textures?


Nvidia implemented multi-texturing for the first time on the TNT. Cards up from there support it also. One thing to note, though, is that the TNT only supported 2 textures, and now Geforce cards support 4. Maybe you’d like to look around the nvidia website at www.nvidia.com and check their hardware documentation starting at the TNT to verify.

Something I should have mentioned is that 25625616 textures are fine on many cards. I run UT with a TNT and get fine framerates at 640*480. But once you get into 32 bit textures, it makes it a lot slower. Old cards don’t have much of a speedy texture pipeline. Larger textures just take longer to get to video memory, and, even though the card may have enough room, it just can’t get there in time for a quick draw.

This problem could be attacked by writing a custom driver for cards that have a slow pipeline but enough texture space for what you got. Some guys fromt he Unreal team posted a whole butload of stuff at http://apollo.iwt.uni-bielefeld.de/~ml_robot/OpenGL-10-1999/0595.html
about keeping textures in texture memory without swapping between system memory every time the card wants to draw. If you could, it would increase performance greatly on older cards… well, I’ve written too much =) time to stop

[This message has been edited by ikk_flip (edited 03-23-2001).]

Originally posted by ikk_flip:
…Geforce cards support 4.

No,GeForce 256 and all GeForce2 supports only 2 textures.GeForece3 has 4 textures and Radeon supports 3.

Originally posted by Kilam Malik:

2) Which how much textures can I bind and how big should they be.

Just use glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB,&numTextures)
and glGetIntegerv(GL_MAX_TEXTURE_SIZE,&maxTexureSize).


yeah, sorry about that. Forgot to push the 3.