个人技术分享

一、说明

关于FrameBuffer的使用,是OpenGL的高级使用方式,而这种新诞生的功能有些未知的技术需要逐步熟悉,本篇就是针对它的图像处理功能展开陈述。

二、帧缓冲区

在前面的章节中,我们了解了 OpenGL 提供的不同类型的缓冲区:颜色、深度和模板缓冲区。这些缓冲区像任何其他 OpenGL 对象一样占用视频内存,但到目前为止,除了在创建 OpenGL 上下文时指定像素格式之外,我们几乎无法控制它们。这种缓冲区组合称为默认帧缓冲区,正如您所见,帧缓冲区是内存中可以渲染的区域。如果您想获取渲染结果并对其进行一些附加操作(例如许多现代游戏中的后处理),该怎么办?

在本章中,我们将讨论帧缓冲区对象,这是创建额外的帧缓冲区以进行渲染的一种方法。帧缓冲区的伟大之处在于它们允许您将场景直接渲染到纹理,然后可以在其他渲染操作中使用该纹理。在讨论了帧缓冲区对象的工作原理之后,我将向您展示如何使用它们对上一章的场景进行后处理。

三、创建新的帧缓冲区

您需要的第一件事是一个帧缓冲区对象来管理新的帧缓冲区。

GLuint frameBuffer;
glGenFramebuffers(1, &frameBuffer