LibGDX:过滤缩放的TextureRegion

我有几个具有不同纹理的对象用于不同的状态,因此我使用TexturePacker制作的TextureAtlas ,并在需要它的地方调整TextureRegion大小。 我必须resize,因为我不仅要支持720p和1080p,而且我的一些对象是基于棋盘宽度和高度resize的平铺或光标,因为这可以在我的游戏中改变,而棋盘将始终占据屏幕的相同百分比。

使用Texture ,我可以这样做:

 texture.setFilter(TextureFilter.Linear, TextureFilter.Linear); 

但是,当我使用TextureRegion ,没有选项来设置filter。 这导致这些TextureRegion的大小调整为锐利,块状和锯齿状。 这不是很好的缩放,它似乎根本没有反别名。

这非常令人沮丧,因为我制作图形时已经够糟糕了,现在即使我喜欢我制作它看起来很糟糕的东西。 如何使用TextureRegion而不是Texture来复制TextureFilter.Linear的效果?

您可以打开.atlas文件并将filter值更改为Linear, Linear 。 或者您可以使用region.getTexture()来访问该区域所属的Texture,然后在其上调用setFilter(...)

如果使用gdx-tools进行打包,则必须设置该选项

 Settings settings = new Settings(); settings.paddingX = 2; settings.paddingY = 2; settings.minWidth = 32; settings.minHeight = 32; settings.maxHeight = 1024; settings.maxWidth = 1024; settings.stripWhitespaceX = true; settings.stripWhitespaceY = true; settings.filterMag = TextureFilter.Nearest; settings.filterMin = TextureFilter.Nearest; settings.flattenPaths = true; TexturePacker2.process(settings, "input directory", "output directory","packName"); System.out.println("PackTextures->main finished."); 

或者如果你使用的是texture-packer-gui.jar,那么勾选线性(最小)和线性(最大)的复选框,你很高兴…