帧缓冲/色缓冲?

Man*_*ish 3 opengl graphics core-graphics

如果他们两个都一样,有人能指出我吗?我的意思是我一直在阅读有关它的信息,这里的红皮书说

"颜色缓冲区本身可以由多个子缓冲器的.一个系统上的帧缓冲区包含所有这些缓冲器" 在这里

帧缓冲然后就像一个由所有实际缓冲区组成的虚拟缓冲区吗?(如深度/模板等)

Die*_*Epp 7

帧缓冲区(通常)包含深度,模板,颜色和累积缓冲区.颜色缓冲区是最重要的部分,但它们只是一部分.您可以创建更多颜色缓冲区,还可以在OpenGL中创建更多帧缓冲区.

当你说"虚拟帧缓冲区"有时意味着没有被绘制到屏幕的帧缓冲区(例如,它被写入磁盘,或用作纹理).我相信这个术语特定于X11,而不是OpenGL.


Jam*_*mes 6

如果你真的想要了解这个,请看看OpenGL Framebuffer Objects.FBO是"屏幕外"渲染目标.所有这些意味着,不是让你的图片出现在你的显示器上,而是将它渲染到其他地方 - 一个FBO.在此之前,您必须创建和配置FBO.部分配置是添加颜色附件 - 一个缓冲区,用于保存渲染图片的每像素颜色信息.也许你就在那里,或者你也可以添加一个深度附件.如果要渲染3D几何体,并且希望它看起来正确,则可能需要添加此深度附件.

事实上,这是一个很好的实验.编写一个小型OpenGL程序,将简单的3D立方体渲染到屏幕上.完成后,将渲染目标更改为使用颜色附件配置的FBO .可能,它看起来不太正确,因为OpenGL在渲染过程中没有地方存储深度信息.繁荣!一切都得到了同样的深度.现在为FBO添加深度附件,并查看渲染的更改方式.

一旦你认为屏幕帧缓冲区基本上是默认的,从一开始就设置FBO,很明显帧缓冲区由多个缓冲区组成.