将具有 alpha 的位图层渲染到 FBO

Rendering layers of bitmaps with alpha to FBO

我需要绘制几个 "layers" 位图,这些位图对 FBO 是半透明的(供稍后回读)。

我目前的方法是创建一个 FBO,为其附加纹理并使用 glTexSubImage2D "draw" FBO 的位图,但是,这不起作用,因为 glTexSubImage2D 没有 draw/blend 像素,但只是覆盖当前在纹理中的像素。

最好的方法是什么?

  • 您创建一个 FBO,并附加一个干净的纹理 R 来保存最终结果。
  • 对于您的每个位图,您:
    • 将位图上传到纹理 T(T 和 R 是不同 纹理)。
    • GL_BLEND 启用并正确设置的情况下,将带有 T 纹理的四边形渲染到 FBO 中。

最终结果是 R 保留了您的混合位图。您现在可以读回它或用于其他纹理操作。