我知道我们可以创建这样一个FBO(没有颜色附件,只有深度附件),例如,这可以用于阴影Map。
此外,FBO完整性检查指出
- 每个绘制缓冲区必须指定已附加图像的颜色附加点,或者必须为GL_NONE。(如果为false,则为GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER)。请注意,如果OpenGL 4.2或ARB_ES2_compatibility可用,则不执行此测试。
我的问题是,是否有必要通过使用
glDrawBuffer(GL_NONE);
如果我没有指定任何颜色附件,OpenGL是否不理解它没有附加任何颜色缓冲区?(我的程序在OpenGL 4.0上运行良好,没有提到“glDrawBuffer(GL_NONE);“所以我认为不这样做是可以的,但是Wiki说FB完整性检查一定失败了)
1条答案
按热度按时间brjng4g31#
在我的应用程序中,使用深度缓冲区进行阴影Map,而不是调用
如果该帧缓冲区没有颜色附件,则不会导致不完整的帧缓冲区。
然而,所有的东西都变成了垃圾,深度纹理显然要么不可写,要么不可读,要么两者兼而有之。
为什么会这样,是否普遍如此,我将在中间离开。我只是告诉你我的发现,我的发现表明你应该谨慎省略这一陈述。