【发布时间】:2011-01-13 00:02:47
【问题描述】:
长期以来,我一直想知道处理 OpenGL 帧缓冲区对象 (FBO) 的最佳方式是什么。 切换 FBO 的成本可能很高,但也会定义新的附件。
你是怎么做到的快速?
我在这三个之间犹豫:
1 FBO 适用于所有内容,更改附件但不要在 FBO 之间切换
为渲染路径中的每个渲染目标(大小 + 格式)提供 1 个 FBO。这意味着我将为类似的渲染目标重用相同的 FBO。但这种方式自定义模糊将花费 4+ FBO。
每个渲染目标1个FBO,只设置一次附件,然后在FBO之间切换
另外,我是否应该尽量减少 FBO 开关的数量(就像我尽量减少纹理绑定的数量一样)?
【问题讨论】:
-
首先...什么是 FBO?如果您要多次使用首字母缩写词,建议第一次使用未展开的缩写词。
-
FBO = 帧缓冲对象
-
很好的问题。但是下面给出的答案的第一部分与“OpenGL Insights”一书中所说的相矛盾。该书指出,在多个 FBO 之间切换是昂贵的,并且是提高性能的最佳方法正在对同一个 FBO 使用多个附件。
-
这就是为什么他说“为了提高性能”。