1

在开发小型 2D 引擎时,我偶然发现了一个小设计问题,不幸的是,以我的知识水平,如果没有您的帮助,我无法解决。

让我解释一下:我正在为其开发 2D 引擎的游戏应该包含复杂的效果,这可能需要多次渲染。问题是,我不确定我是否正确理解了多通道渲染的概念。

在这个知识水平上,我会以这种方式实现它:

  1. 最初创建,设置(将其附加到纹理,...)并绑定帧缓冲区对象
  2. 现在渲染应该应用效果的东西到 FBO 的附加纹理
  3. 在第一遍使用着色器将该纹理渲染到相同的 FBO
  4. 取消绑定 FBO 并将附加的纹理渲染到标准 FBO,方法是使用最后一遍的着色器

现在的问题是这是否是解决我的问题的最有效方法,或者是否有更好的方法来解决这个问题。

4

1 回答 1

2

在第一遍使用着色器将该纹理渲染到相同的 FBO

不能同时读取和写入同一纹理中的同一图像。好吧,你可以,但你会得到未定义的行为,这可能没有帮助。因此,您需要使用多个纹理,或者在可用的情况下使用NV_texture_barrier

于 2012-07-08T18:29:20.617 回答