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 添加带透明层的边框:
创建 Canvas 任意大小(GIMP 中的图像大小)(文件 -> 新建)
在图层上绘制外层透明 border/space 的图像。
在没有 space/border 和 Colour(255,255,255,0)
的图像层下方创建新层,以便该层变得不可见。
导出图像。
我的 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 添加带透明层的边框:
创建 Canvas 任意大小(GIMP 中的图像大小)(文件 -> 新建)
在图层上绘制外层透明 border/space 的图像。
在没有 space/border 和
Colour(255,255,255,0)
的图像层下方创建新层,以便该层变得不可见。导出图像。