【问题标题】:LibGDX: Filtering a scaled TextureRegionLibGDX:过滤缩放的 TextureRegion
【发布时间】:2013-07-13 22:45:20
【问题描述】:

我有几个对象在不同的​​状态下具有不同的纹理,所以我使用了一个用 TexturePacker 制作的TextureAtlas,并在我需要的地方调整了TextureRegion 的大小。我必须调整大小,因为我不仅要同时支持 720p 和 1080p,而且我的一些对象是瓷砖或光标,它们会根据棋盘的宽度和高度调整大小,因为这可能会在我的游戏中发生变化,而棋盘将始终占据屏幕的相同百分比。

有了Texture,我可以这样做:

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

但是,当我使用TextureRegion 时,没有设置过滤器的选项。这导致这些TextureRegions 调整为尖锐、块状和锯齿状。这不是很好的缩放,而且似乎根本没有抗锯齿。

这很令人沮丧,因为我在制作图形方面已经够糟糕了,现在即使我喜欢我制作的东西,它看起来也很糟糕。我该怎么做才能使用TextureRegion 而不是Texture 来复制TextureFilter.Linear 的效果?

【问题讨论】:

    标签: java libgdx game-engine textures scaling


    【解决方案1】:

    如果你使用 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,然后勾选线性(最小)和线性(最大)复选框,您就可以开始了......

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-14
      • 2016-06-22
      相关资源
      最近更新 更多