我创建了一个 2D 纹理数组并使用glTexImage3D对其进行了初始化。然后我使用glFramebufferTextureLayer将单独的纹理附加到颜色附件,帧缓冲区创建不会引发错误,并且在绘制调用发生之前一切似乎都很好。
当着色器尝试访问颜色附件时,会出现以下消息:
OpenGL Debug Output message : Source : API; Type : ERROR; Severity : HIGH;
GL_INVALID_OPERATION error generated. <location> is invalid.
Run Code Online (Sandbox Code Playgroud)
着色器使用位置限定符访问数组的层:
layout (location = 0) out vec3 WorldPosOut;
layout (location = 1) out vec3 DiffuseOut;
layout (location = 2) out vec3 NormalOut;
layout (location = 3) out vec3 TexCoordOut;
Run Code Online (Sandbox Code Playgroud)
文档说glFramebufferTextureLayer就像glFramebufferTexture2D一样工作,除了 layer 参数,所以我可以使用带有纹理数组的位置限定符,还是存在其他一些方式?