FrameBuffer对象实际上不是缓冲区,而是包含一个或多个附件的聚合容器对象,而这些附件又是实际的缓冲区。可以将Framebuffer理解为C结构,其中每个成员都是指向缓冲区的指针。没有任何附件,framebuffer对象的占用空间非常小。
现在连接到framebuffer的每个缓冲区可以是RenderBuffer或texture。
Renderbuffer是实际缓冲区(字节数组,或整数或像素)。Renderbuffer以原生格式存储像素值,因此它针对屏幕外渲染进行了优化。绘制到RenderBuffer可能比绘制到纹理快得多,缺点是像素使用原生的,依赖于实现的格式,因此RenderBuffer读取比从纹理读取要困难得多。然而,一旦绘制了RenderBuffer,就可以使用像素传输操作将其内容直接赋值到屏幕,这意味着RenderBuffer可用于有效地实现您提到的双缓冲区模式。
222.png
111.png