Android OpenGL ES 2.0中的透明边问题
所以,我在android上使用OpenGL ES 2.0制作了一张实时壁纸,在3D环境中使用了一系列带有图像纹理的正方形。我遇到的问题是,我得到了一条奇怪的黑线,在相机移动时闪烁。正方形应该是透明的,我不知道是什么原因造成的,也不知道如何修复。我尝试过使用抗锯齿,并使用这两种方法设置透明度 GLES20.glBlendFunc(GLES20.GL_ONE,GLES20.GL_ONE_减去SRC_ALPHA); 及 这就是我的壁纸现在的样子。三层(背景、女孩、草),草和女孩在顶部边缘显示一条暗线Android OpenGL ES 2.0中的透明边问题,android,opengl-es,Android,Opengl Es,所以,我在android上使用OpenGL ES 2.0制作了一张实时壁纸,在3D环境中使用了一系列带有图像纹理的正方形。我遇到的问题是,我得到了一条奇怪的黑线,在相机移动时闪烁。正方形应该是透明的,我不知道是什么原因造成的,也不知道如何修复。我尝试过使用抗锯齿,并使用这两种方法设置透明度 GLES20.glBlendFunc(GLES20.GL_ONE,GLES20.GL_ONE_减去SRC_ALPHA); 及 这就是我的壁纸现在的样子。三层(背景、女孩、草),草和女孩在顶部边缘显示一条暗线
有人知道我做错了什么,或者如何解决这个问题吗?所以,看起来安登·m·科尔曼是对的。我所要做的就是夹紧纹理坐标以移除黑色边缘。 添加:
看起来很有意思 你是在把图层从后面画到前面吗?另外,你的纹理包裹参数是什么?抗锯齿(以MSAA的形式)通常不会解决这个问题,事实上更可能导致它。它不会更改用于计算像素的纹理提取的采样率。纹理只采样一次,并且只有像逐顶点属性这样的东西才进行抗锯齿处理。你在这里看到的很可能是对没有固定纹理坐标的纹理进行线性过滤的结果,在对纹理进行采样时,它将获取并平均4个最近的邻居,即使这些相邻的纹理不透明且无意义。因此,是的,我向后画(背景、女孩、草)。我的纹理绑定如下所示:'GLES20.glTexParameteri(GLES20.GL_texture_2D,GLES20.GL_texture_MIN_FILTER,GLES20.GL_LINEAR);'
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);