我正在开发一款Android游戏,但当我使用透明度绘制图像时,似乎总会在透明部分添加一些黑色。这种情况经常发生,使我的一些效果看起来很奇怪。
以下是一个例子。两个圆只是带有模糊的白色图像,但你可以看到当它们重叠时,会产生阴影。如果我在Inkscape中重叠两个圆,它们重叠的部分会变成纯白色。
我正在使用
这是我寻找的结果。
现在唯一的问题是忽略了我拥有的具有透明黑色的透明图像,这很合理,因为目标alpha为1。为什么源减去One加上灰色?
以下是一个例子。两个圆只是带有模糊的白色图像,但你可以看到当它们重叠时,会产生阴影。如果我在Inkscape中重叠两个圆,它们重叠的部分会变成纯白色。
![enter image description here](https://istack.dev59.com/Meyib.webp)
GLES20.glEnable(GLES20.GL_BLEND);
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
针对我的混合操作,有什么原因导致这种情况发生,我该如何避免它?
编辑:我唯一想到的是两个图片具有相同的 z 值,所以它们可能只与背景混合而不是互相混合?
编辑:
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
to
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_DST_ALPHA);
这是我寻找的结果。
![输入图像描述](https://istack.dev59.com/GIJd5.webp)