android - 有什么方法可以使整个 Android OpenGL ES 场景透明?

标签 android opengl-es

有没有办法让整个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/

相关文章:

ios - glClear 上的 "invalid framebuffer operation"- 在 OpenGL ES3 中使用 sRGB

ios - 缩放包含 OpenGL 上下文的 UIView

c++ - 为什么很难找到 C++ 3d 游戏教程

android - 没有专用子组件的 fragment 注入(inject)

Java:如何在 Android Studio 中生成随机信号?

ios - 在多个对象上渲染多个纹理的问题

iphone - 使用 Quartz 制作 iOS 逐帧动画

Java android,从图库获取图像并将其显示在屏幕上(错误)

php - 如何将从 MySQL 检索到的数据插入到 Android 应用程序中的数组中?

Android AudioHardware pcm播放要待机了