帧缓冲对象支持

Posted

技术标签:

【中文标题】帧缓冲对象支持【英文标题】:Frame buffer object support 【发布时间】:2012-12-14 17:38:57 【问题描述】:

大多数仍在使用的 OpenGL 2.0 和 2.1 显卡是否支持帧缓冲区对象(通过 GL_ARB_framebuffer_object 或 GL_EXT_framebuffer_object 扩展)?

【问题讨论】:

即使他们没有,他们也提供等价物。然而,3.0 是在 nv 9xxx 系列中引入的,那是几年前的事了。 @Bartek Banachewicz:nVIDIA 并不让我担心,但我们的一些客户拥有相当旧的英特尔显卡。 你看过 Angle lib 吗?它通过 DirectX 提供 Opengl ES,如果可以帮助您处理旧的英特尔驱动程序。 【参考方案1】:

根据我的经验,确实如此。

在 nVidia 中,至少可以追溯到 GeForce FX 5xxx(支持 OpenGL 2.0)的 GPU 支持 FBO,我怀疑甚至更旧的显卡也支持。

在老到只支持 OpenGL 2.0 的 ATI GPU 中,我见过 HD 2400 和 X1300 这样的 GPU,它们都支持 FBO。

在 Intel GPU 中,我认为主要是 HD Graphics 系列完全支持 OpenGL 2.0,而且我见过的所有 HD Graphics GPU 都支持 FBO。我还看到了其他一些支持 2.0 和 FBO 的 GPU,包括某些版本的 965,以及称为“Eaglelake”的东西。不过,我不确定为什么只有一些 965 支持 OpenGL 2.0。可能是驱动问题。

另一方面,我还没有找到任何支持 FBO 的兼容 2.0 的 GPU。

我希望这个纯粹的经验性答案有所帮助。

【讨论】:

【参考方案2】:

我会说是的。我的英特尔 GMA 950 的 Windows 7 驱动程序(至少)非正式地公开了 OpenGL 2.0 功能,并且通过 EXT_framebuffer_object 扩展支持帧缓冲区对象。

【讨论】:

以上是关于帧缓冲对象支持的主要内容,如果未能解决你的问题,请参考以下文章

ios上的帧缓冲区对象渲染

通过帧缓冲区对象渲染到纹理

纹理和渲染缓冲区是不是在帧缓冲区对象上共享相同的空间?

将OpenGL帧缓冲区对象与Qt(QOpenGLWidget)一起使用,绘制到帧缓冲区时如何禁用多重采样

基于鼠标单击读取帧缓冲区对象中的像素

WebGL入门(四十一)-使用帧缓冲区对象(FBO)实现将渲染结果作为纹理绘制到另一个物体上