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

Why is "glRenderbufferStorageMultisample" giving error for following code?

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

我正在尝试使用 color/depth 仅缓冲区(此处没有纹理)将场景渲染到多采样 FBO 中,然后将该多采样 FBO 解析为简单的 FBO有 color/depth 纹理 ,但 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”没有...

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

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

numOfSamples 的最大值甚至可能会受到显卡性能的限制。

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