【问题标题】:Rendering layers of bitmaps with alpha to FBO将具有 alpha 的位图图层渲染到 FBO
【发布时间】:2016-11-08 18:27:26
【问题描述】:

我需要绘制几个对 FBO 半透明的位图“层”(供以后回读)。

我目前的方法是创建一个 FBO,为其附加纹理并使用 glTexSubImage2D 将位图“绘制”到 FBO,但是这不起作用,因为 glTexSubImage2D 不绘制/混合像素,而只是覆盖纹理中当前的像素。

最好的方法是什么?

【问题讨论】:

    标签: opengl rendering blending fbo


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

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

    【讨论】:

    • 谢谢,这行得通。最后一个问题:我的图层可能有不同的大小(因此 glTextSubImage2D),这意味着 T 中可能有前一层的剩余部分。确保在每个图层绘制之间有一个空纹理的最佳方法是什么?
    • 如果纹理大小发生变化:要么每次创建一个新纹理,要么调整四边形和纹理坐标,以便它们仅从 FBO/纹理的相关部分绘制和采样。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    相关资源
    最近更新 更多