解决Android OpenGL动画中的黑边问题


如果你的png图片是预乘的,并且使用gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA)就会产生黑边,解决方法是使用gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA).

下面是我用的一个不完美的解决方案.

if (this.transparency > 0.4f) {

   gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA);
   gl.glColor4f(1.0f, 1.0f, 1.0f, 1);
} else {
  gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
  gl.glColor4f(1.0f, 1.0f, 1.0f, this.transparency);
}

相关内容