gpt4 book ai didi

opengl-es - 尝试附加纹理时,GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT

转载 作者:行者123 更新时间:2023-12-03 14:20:55 25 4
gpt4 key购买 nike

尝试创建渲染为纹理的帧缓冲区后,出现错误GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT。我不知道出什么问题了,我们将不胜感激。

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

    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);


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

最佳答案

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

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

关于opengl-es - 尝试附加纹理时,GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3613889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com