为什么" glRenderbufferStorageMultisample"给出以下代码的错误?

时间:2017-06-14 21:19:12

标签: opengl framebuffer fbo

为什么" glRenderbufferStorageMultisample "给我一个无效的操作错误(1282)?

我尝试将场景渲染为多重采样的FBO,其颜色/深度仅为缓冲区(此处无纹理)&然后将多重采样FBO解析为具有颜色/深度纹理的简单FBO,但OpenGL只是不让我...

    glEnable(GL_MULTISAMPLE);

    glGenFramebuffers(1, &m_Id);
    glBindFramebuffer(GL_FRAMEBUFFER, m_Id);

    glGenRenderbuffers(1, &m_ColorId);
    glBindRenderbuffer(GL_RENDERBUFFER, m_ColorId);
    glRenderbufferStorageMultisample(GL_RENDERBUFFER, numOfSamples, GL_RGBA8, width, height);
    glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, m_ColorId);

    glDrawBuffer(GL_COLOR_ATTACHMENT0);
    glBindFramebuffer(GL_FRAMEBUFFER, 0);

给我错误的一行是" glRenderbufferStorageMultisample ",有趣的是," glRenderbufferStorage "没有按'吨...

1 个答案:

答案 0 :(得分:1)

根据https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glRenderbufferStorageMultisample.xhtml的文档,您应该检查一些OpenGL宏的参数值(用于glRenderbufferStorageMultisample调用)。

根据提供的详细信息,检查numOfSamples值(目前为32),这是我最好的建议。我相信它可能太高了。

numOfSamples的最大值甚至可能受到视频卡功能的限制。

希望这可能有所帮助, 斯特凡诺