I think have to manually split up the image (and the quad as well) when you load it, and apply each smaller texture to the appropriate smaller quad.
It’s not so bad unless you’re worried about texture filtering, in which case you have a pretty annoying problem on your hands. Bilinear filtering doesn’t work across textures, so there will be noticeable seams between your smaller “tiles” where there is no filtering.
There is a pretty nasty way around it, but it truly sucks. It involves replicating texels at the edges of neighboring tiles which means (among other things) you lose the nice power-of-two texure dimensions, which means you have to prescale each tile down to 254x254 or something. Don’t think about using texture borders, either. Almost makes you lose resepct for the Voodoo3
And it just gets worse if you want mip-mapping to be done correctly.
The “nicer” solutions are:
- Don’t filter
- Scale the texture down to 256x256 using gluScaleImage()
- Get a better video card