创建没有颜色附件的帧缓冲对象

时间:2013-10-28 06:07:38

标签: opengl framebuffer

我知道我们可以创建这样一个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完整性检查一定是失败了)

1 个答案:

答案 0 :(得分:1)

在我的应用程序中,使用深度缓冲区进行阴影贴图,不调用

glDrawBuffer(GL_NONE);
如果此帧缓冲区没有颜色附件,

不会导致帧缓冲区不完整。

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

为什么会这样,这是否普遍存在,所以我会留在中间。我只是告诉你我的调查结果,我的调查结果表明你应该谨慎地省略这一陈述。