【问题标题】:Creating frame buffer object with no color attachment创建没有颜色附件的帧缓冲区对象
【发布时间】:2013-10-28 06:07:38
【问题描述】:

我知道我们可以创建这样的 FBO(没有颜色附件,只有深度附件),例如可以用于阴影贴图。

此外,FBO 完整性检查指出

  • 每个绘图缓冲区必须指定颜色连接点 附有图像或必须为 GL_NONE​。 (GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER​当为假时)。请注意,这 如果 OpenGL 4.2 或 ARB_ES2_compatibility 为 可用。

我的问题是,是否有必要通过使用来明确提及这一点

glDrawBuffer(GL_NONE);

如果我不指定任何颜色附件,OpenGL 是否不理解它不会附加任何颜色缓冲区? (我的程序在 OpenGL 4.0 上运行良好,没有提到“glDrawBuffer(GL_NONE);”所以我认为不这样做也没关系,但 wiki 说 FB 完整性检查肯定失败了)

【问题讨论】:

    标签: opengl framebuffer


    【解决方案1】:

    在我的应用程序中,使用深度缓冲区进行阴影映射,而不是调用

    glDrawBuffer(GL_NONE);
    

    如果此帧缓冲区没有颜色附件,则不会导致帧缓冲区不完整。

    然而,一切都变成了废话,深度纹理显然要么不可写,要么不可读,或两者兼而有之。

    为什么会这样,以及是否普遍如此,所以我会在中间离开。我只是将我的发现通知您,而我的发现表明您应该谨慎省略此声明。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      • 2020-07-13
      相关资源
      最近更新 更多