我正在绘制一些带有 alpha channel 的纹理,但是当它们显示时,看起来 alpha channel 只是二进制的。所以一个像素要么是透明的要么是不透明的,尽管在纹理文件本身中像素是半透明的。混合设置如下:
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA);
这个问题有解决办法吗?
上面是应该的样子,下面是应该的样子:
最佳答案
试试这个:
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
gl.glEnable(GL10.GL_ALPHA_BITS);
//draw...
gl.glDisable(GL10.GL_ALPHA_BITS);
关于android/opengles alpha 纹理不是半透明的而是二进制透明的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3634444/