LibGDX:过滤缩放的TextureRegion

时间:2013-07-15 22:21:40

标签: java libgdx game-engine textures scaling

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

使用Texture,我可以这样做:

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

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

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

2 个答案:

答案 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)的复选框,你就可以了...