一个纹理可以绑定到多个fbo吗?

4

是否可以将同一纹理绑定到多个帧缓冲对象中? 我需要在一个特定的FBO中对某些纹理进行多目标渲染,然后稍后只对其中一些纹理进行混合,因此我需要第二个帧缓冲对象,并将该纹理绑定到其中。

1个回答

8
我不知道你为什么认为不能将纹理附加到多个FBO上。是的,你可以这样做。
然而,你没有必要这样做。你不需要写入附加到FBO的所有图像。你可以使用glDrawBuffers控制写入哪些图像。如果你需要写入多个缓冲区但只与某些缓冲区混合,则甚至可以选择性地启用和禁用混合
所以,是的,你可以这样做,但你不应该费心。只需切换绘制缓冲区即可,除非你需要一个新的深度缓冲区或其他东西。

1
如果我想从绑定到同一FBO的纹理中读取数据怎么办?假设我有一个带有TextureA和TextureB的FBO,它们都被绑定。我想在TextureA上混合TextureB。如果我只更改glDrawBuffers以仅在TextureA上渲染,这样可以吗?换句话说,如果我不写入特定的纹理,那么当我正在向绑定了这种纹理的FBO写入时,我是否可以从一个纹理中读取数据? - darius
@darius:那是一个全新的问题。请使用“提问”按钮来提出它。或者只需在OpenGL Wiki上查找答案。 - Nicol Bolas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接