您应该如何在 OpenGL 4.5 中初始化立方体贴图数组?

How should you initialize a cube map array in OpenGL 4.5?

假设我想要一个包含 10 个立方体贴图的立方体贴图数组,每个立方体贴图的分辨率为 2048x2048,并且只有 1 个 mipmap 级别。

我目前正在尝试初始化为:

    glGenTextures(1, &shadowMapArray);

    glBindTexture(GL_TEXTURE_CUBE_MAP_ARRAY, shadowMapArray);
    glTexStorage3D(GL_TEXTURE_CUBE_MAP_ARRAY,1, GL_R8, 2048, 2048, 10);

哪个returns一个GL_INVALID_VALUE枚举数。

对于cube map arrays,深度不是数组层数。就是layer-faces的个数,必须是6的倍数。所以如果你要10个cube map数组层,你要求60个层面。

处理立方体贴图数组的每个 OpenGL API 都采用 layer-face indices/counts,而不是图层。