Nope, glDrawElements will not magically do a glBind for you. For transparent sorted polygons you must call glBind every time a new texture is needed. From my experience, a call to glBind is not needed for every transparent polygon. Typically, transparent polygons that are close to one another, also use the same texture. So I group my triangles after sorting them. And then you have to consider, how many transparent polygons are there in a typical scene? For example, in a Quake 3 map, there usually is not that many in any given scene. In fact most of the transparent polygons are temporary entities, and their variety is usually quite limited. One thing you might try with the smaller textures used with transparent polys is to tile them into a single texture and load that into OpenGL, and then use the texture coordinates cleverly to use the tile you need. This approach works very nicely for particle systems with key framed animation. Imagine a particle system of glowing, globuals, flickering with fire as they fly up into the air, and then change to into red glowing beads as they fall down, finally vanishing after a short period of time. Believe me, it is beautiful. And it is all done using just one 256x256 texture (and a lot of polys).