2013-10-28 68 views
1

我知道我们可以创建这样一个FBO(无颜色附件,只是深度附件),例如可以用于阴影映射。创建没有颜色附件的帧缓冲区对象

此外,FBO完整性检查指出

  • 每个绘制缓冲器必须指定颜色的附着点的是 具有附着的图像或必须GL_NONE。 (错误时为GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER)。请注意,如果OpenGL 4.2或ARB_ES2_compatibility为 可用,则不执行此 测试。

我的问题是,是否有必要。如果我不指定任何颜色的附件,是不是由OpenGL的了解,也不会附加任何颜色缓存,明确使用

glDrawBuffer(GL_NONE); 

提到这一点? (我的程序在OpenGL 4.0上没有提到“glDrawBuffer(GL_NONE);”,所以我认为它没问题,但维基说FB完整性检查一定失败了)

回答

0

在我的应用程序中,阴影映射,不调用

glDrawBuffer(GL_NONE); 

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

然而,一切都变成垃圾,深度纹理显然不是可写或可读,或两者兼而有之。

为什么这样,这是否普遍,所以我会离开中间。我只是告诉你我的发现,而且我的发现表明你应该谨慎地忽略这个陈述。

相关问题