考虑到纹理的OpenGL名称,如何查询此纹理是否为多重采样纹理以及分配了多少个样本?
答案 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
参数为零,则它不是多重采样图像。