【发布时间】:2018-01-24 05:58:10
【问题描述】:
每当我绘制边缘周围有 alpha 的纹理时(它已被 Photoshop 消除锯齿),这些边缘就会变暗。我无休止地使用纹理过滤器和混合模式,但没有成功。
这就是我的意思:
minFilter: Linear magFilter: Linear
minFilter: MipMapLinearNearest magFilter: Linear
minFilter: MipMapLinearLinear magFilter: Linear
如您所见,更改 libGDX Texture Packer 上的过滤器会对外观产生很大影响,但 alphas 仍然很暗。
我尝试在 libgdx 中手动设置纹理过滤器:
texture.setFilter(minFilter, magFilter);
但这不起作用。
我已经读过使用线性过滤器缩小比例会导致 alpha 像素默认为黑色?如果是这种情况,我该如何避免呢?
我也尝试过更改混合模式:glBlend(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_APHA) 没有区别。 glBlend(GL_ONE, GL_ONE_MINUS_SRC_ALPHA) 完全删除了 alpha,所以这不起作用。
我确实不想将我的minFilter 设置为Nearest,因为这会使事情看起来非常像素化。我已经尝试过所有其他纹理过滤器组合,但所有结果都会产生相同的黑色/深色边缘/轮廓效果。
【问题讨论】:
-
如果您使用的是使用 Texture Packer 创建的 TextureAtlas,您可以尝试增加 Sprite 的填充。如果我没记错的话,线性过滤器检查最近的 8 帧以找到最佳像素,它可能会导致它是黑边。我实际上遇到了这个问题,但我不记得我是如何解决的。我要么用 PS 重新制作了精灵,要么改变了 TexturePacker 选项。我总是将 TexturePacker 中的过滤器设置为线性。很抱歉无法发布更明确的答案,我已经有一段时间没有使用 LibGDX
标签: java android opengl-es libgdx photoshop