除了默认的帧缓冲之外,在什么情况下我想在OpenGL FBO中使用渲染缓冲附件而不是纹理附件?因为,纹理附件看起来更加通用。
答案 0 :(得分:22)
纹理为您提供更多功能(采样!,格式多样),因此更容易出现性能损失。
答案很简单:使用纹理,无论您需要从表面采样(无可选择)。
在不需要采样的地方使用渲染缓冲区。根据您表示不进行采样的意图,驱动程序可能决定也可能不会更有效地存储您的像素数据。 之后你可以使用GL blitting来对结果做些什么。
答案 1 :(得分:1)
将问题扩展到OpenGL | ES,使用RenderBuffers而不是纹理的另一个原因是在某些配置中可能不支持纹理并阻止您构建有效的FBO。我特别考虑深度纹理,这些纹理在某些硬件上本身不受支持,例如nVidia Tegra 2/3。