0

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

4

2 回答 2

2

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

一种更简单的方法可能是使用 CUDA (NVidia) 或流计算 (ATI) 来利用 GPU 的能力进行图像处理,因为这些 API 更接近于常规的基于数组的 C++ 编程。以这种方式处理图像可能比使用 OpenGL 慢一些,但仍然比使用传统 CPU 驱动的代码快得多。

于 2009-09-07T19:11:10.677 回答
2

帧缓冲对象 (FBO) 只是一个基本工具,不能用于直接操作图像。如果您知道如何在 OpenGL 中将图像操作渲染到屏幕上,那么您可以使用 FBO 将它们渲染到屏幕外。因此,它们实际上对这项任务很有用,因为您不受屏幕分辨率的限制,也不必用成千上万的闪烁图像分散用户的注意力。然而,操作本身发生在 OpenGL 中,可能在片段着色器中。

访问OpenGL 论坛以获取有关如何从 OpenGL 基础开始的一些建议。他们也有相当多的示例代码链接。

于 2009-09-07T18:46:29.247 回答