OpenGL:如何获取纹理的样本数
给定纹理的OpenGL名称,如何查询该纹理是否为多样本纹理以及分配了多少样本?您无法查询纹理对象来查找。这是你必须记住的。因此,如果您得到了一些纹理,并且您不知道它是否是OpenGL:如何获取纹理的样本数,opengl,Opengl,给定纹理的OpenGL名称,如何查询该纹理是否为多样本纹理以及分配了多少样本?您无法查询纹理对象来查找。这是你必须记住的。因此,如果您得到了一些纹理,并且您不知道它是否是GL\u texture\u 2D\u MULTISAMPLE,唯一的方法是尝试将其绑定为每个纹理目标。每次绑定后,检查是否有OpenGL错误。如果你没有,那就是正确的目标 一旦知道目标是什么,就可以使用glGetTexLevelParameter枚举GL\u纹理\u样本,查询mipmap级别0的样本数 如果您没有访问ARB_d
GL\u texture\u 2D\u MULTISAMPLE
,唯一的方法是尝试将其绑定为每个纹理目标。每次绑定后,检查是否有OpenGL错误。如果你没有,那就是正确的目标
一旦知道目标是什么,就可以使用glGetTexLevelParameter
枚举GL\u纹理\u样本,查询mipmap级别0的样本数
如果您没有访问ARB_direct_state_access/OpenGL 4.5的权限,以上所有内容都是正确的。使用这些较新的API,您不必再知道纹理的目标。只需对纹理对象本身调用glGetTextureLevelParameter
;如果GL\u TEXTURE\u SAMPLES
参数为零,则该图像不是多采样图像。您无法查询纹理对象以查找。这是你必须记住的。因此,如果您得到了一些纹理,并且您不知道它是否是GL\u texture\u 2D\u MULTISAMPLE
,唯一的方法是尝试将其绑定为每个纹理目标。每次绑定后,检查是否有OpenGL错误。如果你没有,那就是正确的目标
一旦知道目标是什么,就可以使用glGetTexLevelParameter
枚举GL\u纹理\u样本,查询mipmap级别0的样本数
如果您没有访问ARB_direct_state_access/OpenGL 4.5的权限,以上所有内容都是正确的。使用这些较新的API,您不必再知道纹理的目标。只需对纹理对象本身调用glGetTextureLevelParameter
;如果GL\u TEXTURE\u SAMPLES
参数为零,则它不是多采样图像。虽然在这种情况下看起来不需要它,但我在规范中注意到,可以使用glGetTextureLevelParameter(GL\u TEXTURE\u target,…)查询纹理目标
在OpenGL 4.5中。@RetoKoradi:ARB\u direct\u state\u访问引入了GL\u纹理\u目标
query。。。同时引入API,使其毫无意义。讽刺的是,你的名字是ARB…在上一条评论中应该是glGetTextureParameteriv(GL\u TEXTURE\u TARGET,…)
。我想可能有一些情况下它是有用的,即使不在这里。顺便说一句,我相信查询的枚举是GL_TEXTURE_SAMPLES
,而不是GL_SAMPLES
。虽然在这种情况下它看起来不需要,但我在规范中注意到可以使用glGetTextureLevelParameter(GL_TEXTURE_target,…)查询纹理目标
在OpenGL 4.5中。@RetoKoradi:ARB\u direct\u state\u访问引入了GL\u纹理\u目标
query。。。同时引入API,使其毫无意义。讽刺的是,你的名字是ARB…在上一条评论中应该是glGetTextureParameteriv(GL\u TEXTURE\u TARGET,…)
。我想在某些情况下它可能很有用,即使不在这里。顺便说一句,我相信查询的枚举是GL\u纹理\u样本
,而不是GL\u样本
。