Текстурный атлас 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