我正在尝试将内部格式为GL_R32UI
的纹理附加到帧缓冲区,以用作ID缓冲区。但是,glCheckFramebufferStatus
会一直提出GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
,即使它是唯一的附件。
这对我来说很奇怪,因为OpenGL 4.2规范似乎表明GL_R32UI
是OpenGL实现连接到framebuffers时必须支持的格式之一。我怀疑这是一个驱动程序错误。我是对的,或者任何人都可以告诉我我在忽视什么?
答案 0 :(得分:6)
我解决了自己的问题。
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'参数,即使您为数据参数传递空指针也是如此。如果您的内部格式是整数格式,则需要提供GL_RED_INTEGER
等格式,而不是像GL_RED
这样的格式。