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

Nic*_*unt 3 c opengl textures

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

pmr*_*pmr 6

您可以检查glGetARB_texture_non_power_of_two或使用GLEW.

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

  • 你还需要检查OpenGL 2.0+,因为它隐含了<code> ARB_texture_non_power_of_two </ code>(我认为*GLEW会自动执行此操作) (2认同)
  • GL_ARB_texture_non_power_of_two是OpenGL 2.0及更高版本的核心.请注意,有些旧卡会暴露此扩展,但对NPOT纹理有一些限制,例如有限的换行模式. (2认同)
  • pmr:当OpenGL实现广告某个版本的API时,不再需要列出那个版本的扩展名.这意味着OGL 2.0实现可以列出或不列出ARB_texture_non_power_of_two,但在这两种情况下它都将存在.AFAIK无法检查硬件是否支持或模拟.这就是OGL的工作方式. (2认同)