dup*_*per 3 opengl graphics textures framebuffer render-to-texture
我正在尝试将具有内部格式的纹理附加GL_R32UI
到帧缓冲区,以用作ID缓冲区。但是,即使它是唯一的附件,也要glCheckFramebufferStatus
不断提出GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
。
这对我来说很奇怪,因为OpenGL 4.2规范似乎GL_R32UI
表明OpenGL实现是附加到帧缓冲区时OpenGL实现必须支持的格式之一。我怀疑这是驱动程序错误。我是对的,还是有人可以告诉我我所忽略的东西?
我解决了自己的问题。
void glTexImage2D(GLenum target,
GLint level,
GLint internalFormat,
GLsizei width,
GLsizei height,
GLint border,
GLenum format,
GLenum type,
const GLvoid * data);
Run Code Online (Sandbox Code Playgroud)
调用glTexImage2D
创建纹理时,即使您要为data参数传递空指针,第7个参数“ format”也需要与第3个“ internalFormat”参数相对应。如果内部格式是整数格式,则需要提供的格式GL_RED_INTEGER
,而不是的格式GL_RED
。