Войти
ПроектыФорумУтилиты

[beta] Упаковщик атласов - Cheetah Texture Packer (auto-size ver.) (3 стр)

Страницы: 1 2 3 4 521 Следующая »
#30
22:03, 6 мая 2012

Сравнение с на мой взгляд лучшим на сегодня пакером текстур:

test | [beta] Упаковщик атласов - Cheetah Texture Packer (auto-size ver.)

Везде параметры подбирались для получения наилучшего сжатия.

Выводы делайте сами:)

#31
20:06, 7 мая 2012

Состоялся релиз alpha для линуксов. Подробности в первом посте: http://www.gamedev.ru/projects/forum/?id=161714

#32
22:31, 7 мая 2012

RPG
Судя по посту #30

Текстур пакеры хорошего уровня просто не делают.

#33
22:44, 7 мая 2012

VanZ
Не понял немного. Единственный, который я знаю из пакеров с алгоритмом MaxRect это TexturePacker. Остальное - какая-то жесть. Поделитесь ссылкой, где такие раздают? Кстати я уже выпилил метод упаковки гильотиной и не говорю уж про упаковку грубой силой - самая левая на том скрине - не вижу смысла делать.

#34
23:30, 7 мая 2012

Пример упаковки арта для игры violetland:

atlas | [beta] Упаковщик атласов - Cheetah Texture Packer (auto-size ver.)

Получилось 6 текстур 512х512 и одна 256х256. 13 мегабайт ужались до 2:)

#35
0:06, 8 мая 2012

RPG
Я говорю, у тебя отличный Текстур пакер.=)

#36
12:41, 8 мая 2012

VanZ
Спасибо, надеюсь, кому-то пригодится.

А вот и исходники:

https://github.com/scriptum/Cheetah-Texture-Packer

Проверил на анимациях - всё работает идеально. Упаковывает анимированные спрайты только в путь.

Убедительная просьба откликнуться пользователей Windows, Mac и Linux, имеющих на своих машинах Qt. Сборка займёт две минуты времени, но зато программой смогут пользоваться абсолютно все.

#37
21:51, 9 мая 2012

Итак, готова реализация. При тестировании атласов в движке глюков не обнаружено, при экспорте оставляет бордюр в 1 пиксель (по умолчанию, можно увеличить), в итоге - никаких проблем с резайсом. Сам упаковщик ошибок не имеет, но вот в движке придется реализовать много матана для корректного вывода таких атласов. В Cheetah уже готова поддержка этого формата, если у кого-то не получается реализация: https://github.com/scriptum/Cheetah (вращение не доделано)

Снимок экрана - 09.05.2012 - 21:41:20 | [beta] Упаковщик атласов - Cheetah Texture Packer (auto-size ver.)
Снимок экрана - 09.05.2012 - 21:46:36 | [beta] Упаковщик атласов - Cheetah Texture Packer (auto-size ver.)

Вся эта красота может быть создана примерно следующим кодом:

local data = C.resLoader('data/atlas')
local tiger = C.resLoader('data/1111')

E:new(screen):draw(function()
  data.images.anima.player.death[0][math.floor(time * 20 % 56)]:draw(0, 256, 256, 256)
  tiger.tiger:draw(0,0,368,512)
end)

При этом один атлас, естественно, анимированный.

#38
0:05, 10 мая 2012

RPG
Ты бы описал как использовать интерфейсы, которыми пользователь мог бы заинтересоваться(я так понимаю это - ImagePacker и все, что им используется). Например я бы(в конце концов) просто завернул бы это в динамическую библиотеку для своих нужд и заменил бы свою реализацию...

#39
1:01, 10 мая 2012

Paltr
Сейчас хоть и выполнен серьёзный рерайт, но пакер от графики отделён не полностью, внешние интерфейсы - сплошь Qt и если сделать dll, оболочку без Qt всё равно не собрать. Если у вас используется Qt - то но проблемс.

Описание интерфейса нужно делать... Плюс навести порядок, а так там одни паблики и пабликами погоняют, мне например для графики почти все структуры пакера нужны и на чтение и на запись:). Время появится - попробую сделать что-то вроде класса внешнего хотя бы.

#40
1:05, 10 мая 2012

RPG
> сплошь Qt и если сделать dll, оболочку без Qt всё равно не собрать
Да если что, я от них избавлюсь и сделаю интерфейс без зависимостей. Главное - чтобы с твоей(на "ты" - круче :)) стороны был устоявшийся интерфейс.

#41
1:10, 10 мая 2012

Paltr
> был устоявшийся интерфейс.
Тут я пока ничего не обещаю. Добавилась фича - упаковка в несколько физически разных атласов, так интерфейс изменился полностью, рерайт 90%, так как старый интерфейс этого не предусматривает. Да и из-за такой фичи собственно программа-оболочка сама по себе должна по-другому думать уже.

Если вкратце - наружу смотрит список корзин (то есть список текстур), у каждой текстуры есть свой размер, так как упаковщик автоматически определяет необходимый размер текстуры. Дополнительно наружу вываливается список упакованных изображений с кучей перекрестных ссылок на дубликаты. Чтобы эти списки использовать, внешняя прога должна знать про кутэшные списки и считать их. Дополнительно есть методы добавления и удаления изображений в список, которые теперь независимы от процесса упаковки, то есть сначала происходит добавление (параллельно вычисляются дубликаты и crop-зона), а потом можно много раз запускать пакер с разными параметрами.

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

#42
1:17, 10 мая 2012

Ну главное - устаканить интерфейс, далее все станет ок :) Пусть он даже супер кривой будет, главное - стабильный

#43
10:29, 10 мая 2012

Угу, а если учесть безумную идею с перемещением изображений по атласу вручную, то что от текущего интерфейса останется?:) Я думаю что придётся зафиксировать какую-то версию, но следующая окажется полностью несовместимой.

В исходниках придется правда придется навести порядок: убрать половину фигни в приват, сделать интерфейсы, не зависящие от Qt. Если есть желание помочь - я не притов:) На гите есть механизм форков: форкаете проект себе и делаете что хотите, а потом можно сделать пулл риквест для соединения с основной ветвью.

#44
15:52, 10 мая 2012

RPG
> Если есть желание помочь - я не притов
Да если бы время было... но в обозримом будущем все равно этот вопрос поднимется и если проект будет актуален, я "за"...

Страницы: 1 2 3 4 521 Следующая »
ПроектыФорумУтилиты

Тема в архиве.