我想使用特定的自定义算法为某些可渲染纹理(R16F 和 RGBA16F)生成 mipmap。
使用 glGenerateMipmapEXT() 预先启用所有需要的纹理的 mipmap。
到目前为止最大的问题是渲染到 1+ mipmap 级别。 更准确地说,这就像一个魅力:
...
glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, target, texType, texId, 0 );
checkFBOStatus();
...
render();
但这在检查 fbo 状态时给了我一个 GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT
...
glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, target, texType, texId, 1 );
checkFBOStatus();
...
render();
代码的所有区别在于将纹理附加到 FBO 的 lod 级别参数。
经过大量的发烧头抓挠后,我仍然无法正常工作。因此,非常感谢任何答案。
[注意:目标平台是带有 FBO 扩展的 OpenGL 2.x]