QOpenGL纹理层数

Posted

技术标签:

【中文标题】QOpenGL纹理层数【英文标题】:QOpenGLtexture number of layers 【发布时间】:2017-05-20 18:31:42 【问题描述】:

我正在使用 Qt 上的 GL_TEXTURE_2D_ARRAY 和 QOpenGLTexture。我想知道这种纹理的层数是否有限制?我想要 81 x 81 层,但不知何故它现在只适用于 81 x 25 层。没有分段错误我只得到一个黑屏而不是纹理。

【问题讨论】:

【参考方案1】:

是的,有一个限制。您可以通过调用来查询限制

GLint maxLayers;
glGetIntegerv(GL_MAX_ARRAY_TEXTURE_LAYERS, &maxLayers);

保证至少为 256。

如果您请求的图层过多(或由于任何其他原因不支持的纹理),则会生成相应的错误。您可以使用glGetError查询错误。

【讨论】:

谢谢!就是这样!所以如果我使用 GL_TEXTURE_3D,图层的限制与深度的限制相同? @user3178756:没有。 GL_TEXTURE_3D 支持的最大深度为 GL_MAX_3D_TEXTURE_SIZE

以上是关于QOpenGL纹理层数的主要内容,如果未能解决你的问题,请参考以下文章

Qt5 中屏幕和屏幕外渲染与 QOpenGL\* 类之间的交互

OpenGL ES纹理

OpenGL-纹理(下)

opengl使用bmp纹理映射画不出东西

opengl 把纹理映射到立方体的六个面。

Windows 上的 OpenCL/OpenGL 纹理互操作:调整 OpenGL 纹理的大小