用OpenGL的粒子系统制作一个动态滤镜时发现纹理被绘制成下面这样的效果:
而我的原图是
可以看到花瓣的周围都黑了一圈
最后发现是混合模式的问题,之前采用的混合模式是
GLES20.glEnable(GLES20.GL_BLEND);
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
在改成下面的混合模式后,问题解决:
GLES20.glEnable(GLES20.GL_BLEND);
GLES20.glBlendFunc(GLES20.GL_ONE, GLES20.GL_ONE_MINUS_SRC_ALPHA);
这里介绍一下这两种混合模式:
前一种是传统的alpha通道混合,这