OpenGLES 2.0帧缓冲可以同时绑定到纹理和渲染缓冲区吗?

时间:2013-08-19 16:36:10

标签: ios textures opengl-es-2.0 fbo

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

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

1 个答案:

答案 0 :(得分:3)

听起来你可能会对FBO的使用感到困惑。如果您需要它,这应该让您入门:Apple Developer - Drawing offscreenThis也可以提供帮助。

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

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

  1. 绑定FBO
  2. 向附加到FBO
  3. 的纹理渲染内容
  4. 绑定默认的帧缓冲区
  5. 使用步骤2中的纹理影响第二个渲染通道中的渲染。
  6. 希望这能回答你的问题。