正面、后退和其他缓冲区

OpenGL 在帧缓冲区中存储和作像素数据。 framebuffer 由一组逻辑缓冲区组成:颜色、深度、累积和模具缓冲区。 颜色缓冲区本身由一组逻辑缓冲区组成;此集可以包括前左、右前、左后、后右和一些辅助缓冲区。 特定像素格式或 OpenGL 实现可能无法提供所有这些缓冲区。 例如,Windows 中 openGL 实现 Microsoft的当前版本不支持立体图像,因此像素格式不能有左右颜色缓冲区。 此外,当前版本不支持辅助缓冲区。 有关 OpenGL 缓冲区及其上运行的 OpenGL 函数的详细信息,请参阅 OpenGL 参考手册OpenGL 编程指南

Microsoft在 Windows 中实现 OpenGL 支持对映像进行双重缓冲。 这是一种将像素绘制到屏幕外缓冲区的技术,然后当图像准备好显示时,将屏幕外缓冲区的内容复制到屏幕缓冲区。 双重缓冲可实现平滑图像更改,这对动画图像尤其重要。

使用双缓冲的应用程序可以使用两个颜色缓冲区:一个前缓冲区和一个后缓冲区。 默认情况下,绘图命令将定向到后台缓冲区(屏幕外缓冲区),而前缓冲区显示在屏幕上。 当屏幕外缓冲区准备好显示时,调用 SwapBuffers,Windows 会将屏幕外缓冲区的内容复制到屏幕缓冲区。

泛型实现使用独立于设备的位图(DIB)作为后台缓冲区,屏幕显示为前缓冲区。 硬件设备及其驱动程序可能使用不同的方法。

双缓冲是像素格式属性。 若要请求像素格式的双重缓冲,请在调用 ChoosePixelFormat中设置 PIXELFORMATDESCRIPTOR 数据结构中的PFD_DOUBLEBUFFER标志。

OpenGL 核心函数 glDrawBuffer,选择用于写入和清除的缓冲区。

缓冲区函数