【问题标题】:Attaching Framebuffer to Texture error将帧缓冲区附加到纹理错误
【发布时间】:2014-08-19 20:30:01
【问题描述】:

我正在尝试使用教程here 实现阴影映射,但是当我尝试使用此代码将帧缓冲区附加到纹理时它失败了。我的 OpenGL 上下文是 3.1,我相信我有一个 Intel 3000 系列显卡。代码在 2 点失败。第一次失败是在glFramebufferTexture2D,它给出了错误代码 1282(也不确定对应的枚举是什么)。我相信这个错误会导致代码后面的断言assi 失败。我已经尝试过类似问题的代码,但在这种情况下它们似乎不起作用。

glGenFramebuffers(1, &MObject::fbo);
glGenTextures(1, &MObject::shadowMap);
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, windowWidth, windowHeight, 0, GL_DEPTH_COMPONENT, GL_FLOAT, NULL);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
glBindFramebuffer(GL_FRAMEBUFFER, MObject::fbo);
glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, MObject::shadowMap, 0);
GLenum  err = glGetError(); // Error code: 1282
glDrawBuffer(GL_NONE);
glReadBuffer(GL_NONE);
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
assi(status == GL_FRAMEBUFFER_COMPLETE, "FBO error!"); // Expression is false, abort called.

【问题讨论】:

标签: c++ debugging opengl graphics fbo


【解决方案1】:

是的,所以我忘记了glBindTexture。我恨我自己。谢谢Hectigo!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-05
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    相关资源
    最近更新 更多