首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >尝试附加纹理时的GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT

尝试附加纹理时的GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
EN

Stack Overflow用户
提问于 2010-09-01 07:11:45
回答 1查看 22.2K关注 0票数 19

在尝试创建渲染到纹理的帧缓冲区后,我得到一个错误GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT。我不知道出了什么问题,任何帮助都是非常感谢的。

编辑:已修复!工作代码:

代码语言:javascript
复制
    glGenTextures(1, &texture);
    glBindTexture(GL_TEXTURE_2D, texture);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 768, 1024, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
    glBindTexture(GL_TEXTURE_2D, 0);

    glGenRenderbuffers(1, &rboID);
    glBindRenderbuffer(GL_RENDERBUFFER, rboID);
    glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, 768, 1024);
    glBindRenderbuffer(GL_RENDERBUFFER, 0);

    glGenFramebuffers(1, &backFramebuffer);
    glBindFramebuffer(GL_FRAMEBUFFER, backFramebuffer);
    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0);
    glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, rboID);
    [self checkFramebufferStatus];
    glBindFramebuffer(GL_FRAMEBUFFER, 0);

注意:如果您的版本不工作,请确保在每次调用之后检查错误,并在第一次调用之前清除错误,否则将在第一次调用之前对代码进行错误检查。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-01 07:51:58

很可能是纹理不完整。纹理的默认MIN_FILTER指定mipmapping,但您仅提供了纹理级别0,因此纹理本身是不完整的。

添加对glTexParamter的调用,以将MIN_FILTER设置为非mipmapped模式之一。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3613889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档