OpenGL:如何获取纹理的样本数

时间:2016-07-11 12:24:17

标签: opengl

考虑到纹理的OpenGL名称,如何查询此纹理是否为多重采样纹理以及分配了多少个样本?

1 个答案:

答案 0 :(得分:3)

您无法查询纹理对象以查找what its texture target is。这是你必须要记住的事情。因此,如果您获得了一些纹理,并且您不知道它是否是GL_TEXTURE_2D_MULTISAMPLE,那么唯一方法就是尝试将其绑定为每个单个纹理目标。每次绑定后,检查是否有OpenGL错误。如果你没有,那那就是正确的目标。

了解了目标后,您可以使用枚举glGetTexLevelParameter查询mipmap级别为0 GL_TEXTURE_SAMPLES的样本数。

如果您无法访问ARB_direct_state_access / OpenGL 4.5,则以上所有情况均属实。使用这些较新的API,您不必再了解纹理的目标。你可以在纹理对象本身上调用glGetTextureLevelParameter;如果GL_TEXTURE_SAMPLES参数为零,则它不是多重采样图像。