4

Brad Larson在此处此处提供了一些很棒的代码,用于“将场景渲染到支持纹理的帧缓冲区”,但尚不清楚这是否与我用于其余绘图的帧缓冲区相同。

如果将渲染缓冲区附加到帧缓冲区,帧缓冲区是否也可以通过相同的调用渲染到纹理中?

4

1 回答 1

3

听起来您可能对 FBO 的使用有点困惑。如果您需要它,这应该可以帮助您入门:Apple Developer - Drawing offscreen也有帮助。

渲染缓冲区是您可以绑定到 FBO(帧缓冲区对象)的东西。FBO 是您在不希望立即显示渲染但想要读取渲染结果或对其执行额外渲染时创建的东西。FBO 在 OpenGL ES 2.0 中的工作方式,您只有一个可用的颜色连接点(GL_COLOR_ATTACHMENT0 - 您的片段着色器输出变量 gl_FragColor 连接到此连接点),并且它只能连接一个纹理或渲染缓冲区。因此,要回答最后一个问题,您不能拥有一个同时将颜色写入渲染缓冲区和纹理的 FBO。

至于问题的第一部分,这取决于您是否已经在使用 FBO 或默认帧缓冲区。您正在寻找的行为可能是这样的:

  1. 绑定一个 FBO
  2. 将某些东西渲染到附加到 FBO 的纹理上
  3. 绑定默认帧缓冲
  4. 使用步骤 2 中的纹理来影响第二个渲染过程中的渲染。

希望这能回答你的问题。

于 2013-08-25T14:10:11.133 回答