我正在尝试编写一个将视频摄像机帧写入四边形的程序.我看到教程解释说使用framebuffers可以更快,但仍然学习如何做到这一点.但是除了帧缓冲之外,我发现还有渲染缓冲区.
问题是,如果目的只是将纹理写入将填满屏幕的四边形,我真的需要一个渲染缓冲区吗?
我知道渲染缓冲区用于深度测试,我认为它只用于检查像素的Z位置,因此为我的场景创建渲染缓冲区是愚蠢的,对吗?
Nic*_*las 10
一个帧缓冲区对象是要坚持的图像,这样就可以使他们的地方.颜色缓冲区,深度缓冲区等都进入帧缓冲对象.
一个渲染就像是一个纹理,但有两个重要的区别:
所以你在谈论两个主要是分开的概念.Renderbuffers不具备成为"深度测试." 这是渲染缓冲区的常见用例,因为如果要将颜色渲染到纹理,通常不关心深度.您需要深度,因为您需要对隐藏表面移除进行深度测试.但是你不需要从那个深度进行采样.因此,不是制作深度纹理,而是制作深度渲染缓冲区.
但渲染缓冲区也可以使用颜色而不是深度格式.你不能将它们作为纹理附加.你仍然可以对它们进行blit,你仍然可以阅读它们glReadPixels.你无法在着色器中读取它们.
奇怪的是,这没有回答你的问题:
问题是,如果目的只是将纹理写入将填满屏幕的四边形,我真的需要一个渲染缓冲区吗?
我不明白为什么你需要一个帧缓冲或任何类型的渲染缓冲.纹理是纹理; 只画一个纹理四边形.