使用OpenGL的帧缓冲对象(FBO)进行图像处理?

时间:2009-09-07 17:52:31

标签: opengl fbo

我已经读过FBO可以用于使用OpenGL绘图操作进行快速图像处理。有谁知道如何做到这一点的基础知识?或者有一些非常简单的示例代码说明它?

2 个答案:

答案 0 :(得分:2)

帧缓冲对象(FBO)只是一个不能用于直接操作图像的基本工具。如果您知道如何在OpenGL中将图像处理渲染到屏幕,则可以使用FBO将它们渲染到屏幕外。因此,它们对于此任务非常有用,因为您不受屏幕分辨率的限制,也不必分散数千个闪烁图像。但是,操作本身发生在OpenGL中,可能在片段着色器中。

访问OpenGL forum以获取有关如何开始使用OpenGL基础知识的建议。他们还有很多指向sample code的链接。

答案 1 :(得分:2)

在使用FBO进行图像处理之前,您需要知道如何处理OpenGL,因为FBO可以简单地用作渲染目标(用于渲染操作的输出缓冲区)。一旦你熟悉OpenGL并且可能知道如何进行着色器编程,你几乎可以在FBO中使用图像做任何事情,并且非常快速地完成。

更简单的方法可能是采用CUDA(NVidia)或流计算(ATI)来利用GPU的图像处理能力,因为这些API更接近于常规的基于阵列的C ++编程。与使用OpenGL相比,图像处理可能稍微慢一些,但仍然比传统的CPU驱动代码更快。