【问题标题】:Any way to make an entire Android OpenGL ES scene transparent?有什么方法可以使整个 Android OpenGL ES 场景透明?
【发布时间】:2011-11-24 10:12:03
【问题描述】:

有没有办法让整个 Android OpenGL ES 场景变得透明?这对于小部件和壁纸很有用。

有一个特定于 Android 的答案 here。但我的理解是,这种技术创建了一个透明背景,人们可以在其上进一步绘制透明形状。

我正在寻找一种在绘制后使整个场景透明的方法。例如,有没有什么方法可以在场景绘制完成后改变整个颜色缓冲区的 alpha 值?

【问题讨论】:

    标签: android opengl-es


    【解决方案1】:

    是的,而且非常简单。您需要通过使用正确的颜色和混合功能用四边形覆盖整个视图来混合颜色缓冲区中的值。我认为这可以解决问题:

    • 照常绘制场景
    • 设置glBlendFunc(GL10.GL_ZERO, GL10.GL_SRC_COLOR)
    • 使用 (R,G,B,A) = (1,1,1,a) 绘制一个覆盖整个视图的无纹理彩色四边形,其中 a 是您想要的不透明度

    这应该用 a 缩放颜色缓冲区的 alpha,我认为这是你想要的。

    【讨论】:

      【解决方案2】:

      如果您需要 API 14 (Android 4.0),那么有一个新类可以解决这个问题:TextureView。在这个Android Developers blog post 中有一些关于它的信息。不幸的是,我认为在以前的 Android 版本中没有一种简单的方法可以做到这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多