我的朋友和我正在不同的计算机上调试我们的代码。
我的代码正在工作,而他的代码却没有。通过消除过程我确定问题是他的系统没有绘制到我用来渲染纹理的自定义帧缓冲区。纹理保持黑色。
除系统外,其他所有内容都相同。有什么建议吗?
if(glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
throw new RuntimeException("yo frame buffer is broken);
这不会抛出任何异常,因此帧缓冲区应该正确。
答案 0 :(得分:0)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0);
我为我的颜色附件纹理添加了这两行,并且它有效。
为什么现在有效?不完全确定原因。 GL说,即使没有这个,FBO也是完整的