如何在android上的opengl中有2个图层?

时间:2012-09-24 00:14:54

标签: android animation opengl-es transparency

我有一个用1个纹理动画

的图层

我有一个图层是透明的图像,是静态的(非动画的)

如何将透明图像叠加在移动的背景上,以便显示?

这必须在opengl中发生,因为我正在使用LiveWallPaperService

1 个答案:

答案 0 :(得分:0)

在禁用深度测试的情况下,将两个纹理四边形相互叠加,并使用您选择的混合模式。

相关的OpenGL程序:

  • glDisable(GL_DEPTH_TEST);
  • glDepthMask(GL_FALSE);
  • glEnable(GL_BLEND_MODE);
  • glBlendFunc(...,...),请参阅文档了解值。您可能希望(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)用于常规图片,或者(GL_ONE,GL_ONE_MINUS_SRC_ALPHA)用于预乘alpha。我建议稍后再做。