GL_TEXTURE_2D对于"2个纹理的非幂"有什么表现?

Wag*_*ota 2 hardware opengl performance textures gpu

从理论上讲,OpenGL对于"2的幂"纹理具有GL_TEXTURE_2D,对于"2个纹理的非幂"具有GL_TEXTURE_RECTANGLE.

我想知道现代GPU是否仍然关心这种差异,或者这只是过去的问题.换句话说,如果我使用GL_TEXTURE_2D而不是GL_TEXTURE_RECTANGLE来表示"非幂2"纹理,那么现代显卡会不会有性能损失?

246*_*tNt 5

请参阅https://www.opengl.org/wiki/NPOT_Texture

任何至少是OpenGL 2.0核心兼容的硬件(最近的hw很可能是OpenGL 4.4兼容的)必须支持GL_TEXTURE_2D的非二次幂(NPOT)纹理.

至于性能与GL_TEXTURE_RECTANGLE相比......它没有指定,但是如果hw支持它(并且它必须),我不明白为什么一个比另一个慢.

与使用2次幂纹理相比,性能更佳.我希望有一些开销(包括时间和内存大小),只是因为hw自然会处理两个人的力量,并且必须要小心.多少 ?好吧,如果没有测试就无法判断...但是考虑到现代GPU的强大功能,如果您使用NPOT,我不会太担心它.但是如果转换为使用NPOT在您的应用程序中是微不足道的并且很容易作为"初始化"步骤完成,那么我会这样做,只是为了确定.