我正在尝试附加具有内部格式的纹理 GL_R32UI
到帧缓冲区,用作 ID 缓冲区。然而,glCheckFramebufferStatus
不断提出 GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
,即使它是唯一的附件。
这对我来说很奇怪,因为 OpenGL 4.2 规范似乎声明了 GL_R32UI
是 OpenGL 实现在附加到帧缓冲区时必须支持的格式之一。我怀疑这是一个驱动程序错误。我是对的,或者谁能告诉我我在俯瞰什么?
最佳答案
我解决了我自己的问题。
void glTexImage2D(GLenum target,
GLint level,
GLint internalFormat,
GLsizei width,
GLsizei height,
GLint border,
GLenum format,
GLenum type,
const GLvoid * data);
打电话时
glTexImage2D
要创建纹理,第 7 个参数 'format' 需要对应于第 3 个 'internalFormat' 参数,即使您为 data 参数传递空指针也是如此。如果您的内部格式是整数格式,则需要提供类似 GL_RED_INTEGER
的格式。 ,而不是像 GL_RED
这样的格式.
关于opengl - 将整数纹理附加到帧缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13230721/