LibGDX: фильтрация масштабированного TextureRegion
у меня есть несколько объектов с разными текстурами, для разных государств, поэтому я использую TextureAtlas
сделано с TexturePacker, и изменение размера TextureRegion
где мне это нужно. Я должен изменить размер, потому что я не только пытаюсь поддерживать как 720p, так и 1080p, но некоторые из моих объектов-это плитки или курсоры, которые изменяют размер в зависимости от ширины и высоты доски, так как это может измениться в моей игре, тогда как доска всегда будет занимать тот же процент экрана.
С Texture
, Я могу просто сделайте так:
texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
однако, когда я использую TextureRegion
нет возможности установить фильтр. Это приводит к этим TextureRegion
s изменение размера как острые, блочные и зубчатые. Это не очень приятное масштабирование, и это вообще не похоже на анти-псевдоним.
это довольно расстраивает, потому что я достаточно плох в создании графики, и теперь, даже когда мне нравится то, что я сделал, это выглядит дерьмово. Что мне сделать, чтобы воспроизвести эффект TextureFilter.Linear
С помощью TextureRegion
вместо Texture
?
2 ответов
вы можете открыть свой .atlas файл и изменить filter
значение Linear, Linear
. Или вы можете использовать region.getTexture()
чтобы получить доступ к текстуре, к которой принадлежит области, то позвоните 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 затем установите флажок для linear(min) и linear (max), и вам хорошо идти...