Is there graphics hw shipping which supports the 1 pixel wide texture border around a pow2 texture?
That is, the texture is, for example, 34x34 pixels large and the texture border flag in glTexImage2D() set to 1 (instead of the usual 0). This is at least an OpenGL 1.1 feature.
I’ve tested it on a GeForce2MX which falls back to software texturing… :mad:
But NPOT is not necessarily the same and not very common today : you have to adjust the tex coords to achieve the texture border effect specified for basic OpenGL 1.0/1.1…
The most available seems to be GL_NV_texture_rectangle, but without mipmapping and only supported by NVidia (but back to GeForce256 cards)…
Hampel seems to want border texels for a regular, conforming, power-of-two texture.
Yes, the GeForce 3 and up, but not the GeForce 4 MX, support this. ATI also started supporting this, although I’m unsure whether it’s with then 8500 or 9500.
Because the GeForce 2 and lower, and the related GeForce 4 MX, do not support borders, NVIDIA “magically” turned GL_CLAMP into the behavior of GL_CLAMP_TO_EDGE, which caused some games whose QA all used GeForces to ship with horrible textur edge artifacts. That, in turn, meant that NVIDIA made CLAMP mean CLAMP_TO_EDGE even on newer cards (that support border) – they now have a checkbox in the graphics control panel to control this behavior.
Because the GeForce 2 and lower, and the related GeForce 4 MX, do not support borders, NVIDIA “magically” turned GL_CLAMP into the behavior of GL_CLAMP_TO_EDGE
That’s not entirely true. Originally, the problem was that there was no CLAMP_TO_EDGE in the spec, so developers had no choice but to use CLAMP. The resulting bugs were quickly tossed to the dominant GL implementation at the time (re: nVidia), and they had little choice but to make GL_CLAMP do what GL_CLAMP_TO_EDGE did. The workaround lasted well past the days when GL_CLAMP_TO_EDGE_EXT existed, mostly because they have to support old code.
Also, to be honest, SGI dropped the ball on it. GL_CLAMP really should have had the functionality of GL_CLAMP_TO_EDGE, or there should have been a GL_CLAMP_TO_EDGE from day 1.
@V-man: I think, the GF2/GF2MX/GF4MX have problems with GL_ARB_clamp_to_border which drops them to software mode, too (just like the usage of border texels)
@jwatte: You are right, I want border texels for my conforming POT textures
@Korval: I don’t know, why it took soooo long to come up with GL_EXT_clamp_to_edge and even loooooooooonger with GL_ARB_clamp_to_border!