有没有办法让整个Android OpenGL ES 场景透明化?这对于小部件和墙纸很有用。
有一个特定于 Android 的答案 here .但我的理解是,这种技术创建了一个透明背景,可以在该背景上进一步绘制透明形状。
我正在寻找一种方法,让整个场景在绘制后变得透明。例如,有没有什么办法可以在绘制场景后更改整个颜色缓冲区的 alpha?
最佳答案
是的,而且非常简单。您需要通过使用正确的颜色和混合函数用四边形覆盖整个 View 来混合颜色缓冲区中的值。我认为这可以解决问题:
- 照常绘制场景
- 设置
glBlendFunc(GL10.GL_ZERO, GL10.GL_SRC_COLOR)
- 使用 (R,G,B,A) = (1,1,1,a) 绘制一个覆盖整个 View 的无纹理彩色四边形,其中 a 是您想要的不透明度
这应该用 a 缩放颜色缓冲区的 alpha,我认为这就是您想要的。
关于android - 有什么方法可以使整个 Android OpenGL ES 场景透明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8249362/