LibGDX 抗锯齿使边缘变灰

LibGDX anti-aliasing makes gray edges

我的 libGDX 舞台上有小 (20x20) 圆圈。我用 GIMP 创建了纹理,对于 hdpi 设备它是 (30x30)。当我在我的游戏中使用它时,它看起来像预期的那样。

但是当我尝试使用以下代码进行线性过滤时

textureRegion.getTexture().setFilter(Texture.TextureFilter.Linear,Texture.TextureFilter.Linear);

,由于某种原因圆有灰色边缘:

我检查了 GIMP 中的图像,它没有任何抗锯齿像素。原始纹理看起来与第一张图像相同。为什么会出现这种情况,怎么才能圆滑呢?

如果使用缩小,则边框可能需要大一点。并且为了避免灰色边框综合症,透明边框不应该是 color(0,0,0,0) 而是 alpha 通道为 0 的边缘颜色。所以白色边缘图片将使用 255,255,255,0 作为边框颜色。

编辑

我如何使用 GIMP 添加带透明层的边框:

  1. 创建 Canvas 任意大小(GIMP 中的图像大小)(文件 -> 新建)

  2. 在图层上绘制外层透明 border/space 的图像。

  3. 在没有 space/border 和 Colour(255,255,255,0) 的图像层下方创建新层,以便该层变得不可见。

  4. 导出图像。