如何检测openGL /卡是否支持2的非功率?

问题描述:

检测图形卡和已编译的openGL二进制文件是否支持在运行时不是2的幂次方的纹理的最佳方法是什么?如何检测openGL /卡是否支持2的非功率?

您可以用glGet查询ARB_texture_non_power_of_two或使用GLEW。

编辑以反映评论:从OpenGL 2.0开始,此功能是必需的,无需定义ARB_texture_non_power_of_two。如何查找当前版本here。正如Jerry指出的那样:根据GPU的不同,该功能可能在软件中实现,如果您使用非二次幂的纹理,性能不会很好。

+2

您还需要检查OpenGL 2.0+,因为它隐含地具有ARB_texture_non_power_of_two(我*认为* GLEW会自动执行此操作) – wump 2010-06-15 15:32:54

+0

@wump您是否有关于此的任何文档?我的google-fu在这里似乎毫无用处,文档中的任何地方都没有这样的提及。 'glewinfo'列出它很好。 – pmr 2010-06-15 15:44:15

+2

GL_ARB_texture_non_power_of_two是OpenGL 2.0及更高版本的核心。 请注意,一些旧版卡会暴露此扩展名,但对NPOT纹理有一些限制,例如限制打包模式。 – 2010-06-15 15:45:45