我有几个不同状态的不同纹理的对象,所以我使用了一个用TexturePacker制作的TextureAtlas
,并调整了我需要它的TextureRegion
大小。我必须调整大小,因为我不仅要尝试同时支持720p和1080p,而且我的一些对象是基于棋盘宽度和高度调整大小的平铺或光标,因为这可以在我的游戏中改变,而棋盘将始终占据屏幕的相同百分比。
使用Texture
,我可以这样做:
texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
但是,当我使用TextureRegion
时,没有选项来设置过滤器。这导致这些TextureRegion
的大小调整为尖锐,块状和锯齿状。它不是很好的缩放,它似乎根本没有反别名。
这非常令人沮丧,因为我制作图形时已经够糟糕了,现在即使我喜欢我制作它看起来很糟糕的东西。如何使用TextureFilter.Linear
代替TextureRegion
来复制Texture
的效果?
答案 0 :(得分:13)
您可以打开.atlas文件并将filter
值更改为Linear, Linear
。或者您可以使用region.getTexture()
访问该区域所属的纹理,然后在其上调用setFilter(...)
。
答案 1 :(得分:0)
如果使用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,那么勾选线性(min)和线性(max)的复选框,你就可以了...