opengl - 使用 Alpha 到 FBO 渲染位图图层

标签 opengl rendering blending fbo

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

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

最好的方法是什么?

最佳答案

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

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

关于opengl - 使用 Alpha 到 FBO 渲染位图图层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40493995/

相关文章:

c++ - 显示列表和 OpenGL 状态

rendering - 覆盖多个显示器的窗口的交换链

colors - 如何在代码中实现鲜艳的光色混合?

C# Color Blend 和像 Photoshop 一样计算不透明度/alpha

c++ - 当不是最后加载的纹理时,纹理会显得模糊

opengl - GL_TRIANGLE_STRIP 与 GL_TRIANGLE_FAN

opengl - 眼空间坐标到底是什么?

ubuntu - 使用 ffmpeg 创建定格动画 - 渲染时出错

几何基元的 Java 算法

ios - OpenGL 减法混合