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

2014-11-24 12:05:07 · 作者: · 浏览: 2

如果你的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);
}