Изображения с прозрачными пикселями, упакованные с помощью Texture Packer, являются черными
Я попытался создать текстурный атлас с прозрачными изображениями для анимации. Вместо моей текстуры я получаю изображение черного квадрата, соответствующее размеру первой текстуры, которую я хотел упаковать в атлас текстуры. Я использовал этот упаковщик текстур https://www.codeandweb.com/texturepacker потому что графический интерфейс libgdx по какой-то причине не может его упаковать (он говорит об ошибке). До появления прозрачных изображений я использовал его для обычных непрозрачных изображений и это работало нормально. Кажется, я получаю черные изображения из-за прозрачности. У кого-нибудь была похожая проблема с прозрачными текстурами?
код:
mainCharAtlas= new TextureAtlas("Sh/mainChar.txt");
mainCharRegions= new Array<TextureAtlas.AtlasRegion>(mainCharAtlas.getRegions());
mainCharAnim= new Animation(1f/31f,mainCharRegions);
mainChar= Decal.newDecal(mainCharRegions.first(),true);
CameraGroupStrategy cameraGroupStrategy = new CameraGroupStrategy(camera);
decalBatch=new DecalBatch(cameraGroupStrategy);
mainChar.setPosition(0.14f, 0f - 1.83f, 0.64f);
mainChar.setWidth(7f);
mainChar.setHeight(7f);
mainChar.setRotation(0, 90, 20.5F);
это пример из текстового файла:
mainCharacter.png
size: 4849, 4069
format: RGBA8888
filter: Linear,Linear
repeat: none
01
rotate: false
xy: 571, 1
size: 568, 568
orig: 906, 906
offset: 168, 167
index: -1
02
rotate: true
xy: 1141, 1
size: 568, 572
orig: 906, 906
offset: 166, 161
index: -1
03
rotate: true
xy: 2922, 1
size: 577, 606
orig: 906, 906
offset: 161, 144
index: -1
mainCharacter.png, созданный с помощью упаковщика текстур, содержит прозрачные области, и это хорошо.
1 ответ
Проблема здесь, скорее всего, в размере текстуры:
size: 4849, 4069
Вы должны остаться ниже 4096, и даже это может не работать на всех устройствах. Я рекомендую оставаться ниже 2048x2048.
Это аппаратное ограничение - с этим ничего не поделаешь.