Текстурный атлас libgdx против файлов

Так что в моей игре у меня есть более 32000 изображений (размер: 32x32). Как хранить это количество изображений? Что может быть лучше: загрузка этих изображений в виде отдельных файлов или одного большого текстурного атласа?

1 ответ

Решение

Когда вы загружаете текстуру (изображение) в вашу игру, вы загружаете текстуру в GPU.

Допустим, у вас есть 3200 изображений, и вы загружаете их отдельно, что означает 3200 текстур, загруженных в графический процессор. Это сурово и съест кучу памяти.

Теперь позвольте мне объяснить, что TextureRegion

TextureRegion, занимает площадь от Texture в зависимости от предоставленного вами измерения преимущество заключается в том, что вам не нужно загружать текстуры снова и снова, а большее преимущество заключается в том, что вам не нужно загружать каждую текстуру в графический процессор, поскольку вы можете сделать это напрямую, загрузка одной большой текстуры и извлечение из нее субрегионов (TextureRegions).

Теперь, потому что вы хотите использовать TextureRegions, будет трудно узнать размеры каждого субизображения, чтобы загрузить их из листа текстуры. Так что мы делаем, мы упаковываем текстуры в большую текстуру, используя TexturePacker (приложение), которое затем создает .pack файл. Он упакует каждую текстуру в одно изображение и создаст файл.pack. Теперь, когда вы загружаете.pack файл, он загружается с помощью TextureAtlas класс Например, представьте файл пакета покемонов, в котором есть все покемоны.

 TextureAtlas  pokemonFrontAtlas = new TextureAtlas(Gdx.files.internal("pokemon//pokemon.pack"));

Теперь вы упаковали 3200 файлов с помощью Texture Packer и хотите загрузить изображение (Texture) который имеет имя файла как "SomePokemon".

Теперь, чтобы получить конкретный TextureRegion из него, вы делаете

pokemonFrontAtlas.findRegion("SomePokemon")

findRegion(String name) возвращает вам textureRegion из TextureAtlas,

TextureAtlas класс содержит коллекцию AtlasRegion класс, который расширяется TextureRegion учебный класс.

Смотрите Javadocs для более подробной информации TextureAtlas

Другие вопросы по тегам