Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenGL:如何获取纹理的样本数_Opengl - Fatal编程技术网

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

OpenGL:如何获取纹理的样本数,opengl,Opengl,给定纹理的OpenGL名称,如何查询该纹理是否为多样本纹理以及分配了多少样本?您无法查询纹理对象来查找。这是你必须记住的。因此,如果您得到了一些纹理,并且您不知道它是否是GL\u texture\u 2D\u MULTISAMPLE,唯一的方法是尝试将其绑定为每个纹理目标。每次绑定后,检查是否有OpenGL错误。如果你没有,那就是正确的目标 一旦知道目标是什么,就可以使用glGetTexLevelParameter枚举GL\u纹理\u样本,查询mipmap级别0的样本数 如果您没有访问ARB_d

给定纹理的OpenGL名称,如何查询该纹理是否为多样本纹理以及分配了多少样本?

您无法查询纹理对象来查找。这是你必须记住的。因此,如果您得到了一些纹理,并且您不知道它是否是
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样本