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

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

Advanced: Тема повышенной сложности или важная.

Страницы: 115 16 17 1821 Следующая »
#225
1:23, 12 мар. 2013

RPG
Упаковщик супер получился, жаль только что "Merge" не работает - http://youtu.be/5_6JBuThkmY?t=3m59s


#226
11:17, 12 мар. 2013

medvedya
> жаль только что "Merge" не работает
Скорее всего Merge работает, просто в программе, где вы делаете анимацию, экспортируется шарик с антиалиасингом. На глаз это незаметно, но субпиксельного смещения на одну тысячную пикселя достаточно, чтобы получился совершенно другой объект. В данном случае может помочь merge по дельте, который у меня в планах.

#227
3:37, 13 мар. 2013

Большое спасибо за отличный упаковщик, очень помог в одном проекте(постараюсь дать ссылку на Google Play после публикации, кстати, советаю сделать приписку на GitHub а-ля showcases). Прошу прощения, если это покажется наглостью...есть два момента, которые хотелось бы видеть в следующих релизах:
1. Возможность импорта в популярные форматы, или хотя бы ткнуть носом где в исходниках проекта это можно дописать (для Starling пришлось писать одноразовую тулзу для конвертации, именно потому что не было времени разбираться как добавить свой вариант экспорта).
2. Автоматически генирировать уменьшенные атласы - очень полезно для мобильных проектов, когда делаешь несколько версий под разные устрйоства, с разными разрешениями, и, что самое важное, с разными объемами памяти.

#228
4:59, 13 мар. 2013

RPG
Для Merge предлагаю такой алгоритм, уменьшаем все фреймы приблизительно одного размера в "К" и считаем разницу цветов у каждого пиксела (смотреть разницу каждого канала rgba rs+=(abs(r1-r2)+abs(g1-g2)+abs(b1-b2)+abs(a1-a2)) или можно через vector4 ) 

опиши как оформить функцию (входные и выходные  параметры) я её сделаю

еще очень хочется чтоб цвет фона для кропа(обрезки пустых областей) можно было задавать для каждого фрейма выбрал фреймы и пипеткой ткнул по цвету, для некоторых режимов наложения иногда приходится использовать фон разного цвета, например  blend mode на черном.

#229
11:41, 13 мар. 2013

medvedya
> опиши как оформить функцию (входные и выходные  параметры) я её сделаю
Механизм здесь сложнее, чем в пакере шрифтов: дело в том, что сравнение и поиск дубликатов происходит по хэш-функции файла, т. е. если они бинарно равны. Чтобы добавить нечеткое сравнение придётся повозиться и нужно будет перегазгружать всю графику после изменения параметров сравнения.

Логика находится в файле imagepacker.cpp, там сначала при добавлении файла считается его хэш (addItem), а затем в функции recalculateDuplicates вычисляются дубликаты. Предложенный метод должен хорошо сработать, для этого нужно заменять CRC функцию хэша на свою собственную функцию нечеткого хэша. Далее при упаковке я просто беру данные о дубликатах из структуры.

Ещё у меня появилась мысль что всё-таки сравнение не до конца честное. Оно выкидывает абсолютно идентичные картинки, а надо бы считать хэш после кропа, а не до него.

medvedya
> еще очень хочется чтоб цвет фона для кропа(обрезки пустых областей) можно было
> задавать для каждого фрейма выбрал фреймы и пипеткой ткнул по цвету, для
> некоторых режимов наложения иногда приходится использовать фон разного цвета,
> например  blend mode на черном.
Про бленд мод не понял, можно пример где прозрачный пиксель мешает? Кстати вокруг каждого спрайта свой бордюр не получится сделать так как бордюр для двух соседних спрайтов на атласе общий. Здесь поможет только упаковка заранее увеличенного спрайта.

C4Grey
> 1. Возможность импорта в популярные форматы, или хотя бы ткнуть носом где в
> исходниках проекта это можно дописать (для Starling пришлось писать одноразовую
> тулзу для конвертации, именно потому что не было времени разбираться как
> добавить свой вариант экспорта).
У меня увы пока никакой универсальности, всё в функции packerUpdate из файла mainwindow.cpp. Хотел вообще сделать что-то типа шаблонов, чтобы каждый мог написать свой конфигурационный файл для любого формата.

C4Grey
> 2. Автоматически генирировать уменьшенные атласы - очень полезно для мобильных
> проектов, когда делаешь несколько версий под разные устрйоства, с разными
> разрешениями, и, что самое важное, с разными объемами памяти.
Мысль конечно дельная хотя бы потому, что полученный атлас нельзя изменять в размере - однопиксельный бордер уменьшится. Это несложно сделать я возможно даже включу это дело в ближайшее обновление.

#230
11:48, 13 мар. 2013

Добавил сюда все хотелки чтобы не потерялись:

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

#231
21:23, 13 мар. 2013
Про бленд мод не понял, можно пример где прозрачный пиксель мешает? Кстати вокруг каждого спрайта свой бордюр не получится сделать так как бордюр для двух соседних спрайтов на атласе общий. Здесь поможет только упаковка заранее увеличенного спрайта.

Имел в виду чтоб кроп работал не только на цвет с alpha 0, а чтоб можно было задавать кастомный цвет, или хотя бы режим кроп black||alpha
+ Показать
#232
21:44, 13 мар. 2013

medvedya
> Имел в виду чтоб кроп работал не только на цвет с alpha 0, а чтоб можно было
> задавать кастомный цвет, или хотя бы режим кроп black||alpha
Всё я понял. Этот режим был, но приводил к глюкам - см. пост http://www.gamedev.ru/projects/forum/?id=161714&page=10#m144 и я его пока выключил просто - логика imagecrop глючит маленько.

#233
3:49, 15 июня 2013

Пользуемся, супер. Проблема при сборке кучи картинок в несколько текстур. Генерятся атласы, но пнг только одна - первая. Мак. Прошу прощения, если этот вопрос уже обсосан.

#234
11:03, 15 июня 2013

AlexTrust
> Генерятся атласы, но пнг только одна - первая. Мак.
На маке была такая проблема со старой версией, новую надо собрать из исходников, я просто физически не могу это сделать.

Если не поможет - надо будет конечно разбираться...

Пока могу посоветовать поиграть форматом (png/bmp).

#235
19:15, 17 июня 2013

Я пока в эмуляторе собираю атласы. Со скомпилировать у меня проблемы.

#236
1:25, 14 июля 2013

Смерджил ветвь поддержки Qt5, не заметил даже как она появилась:) Похоже, на фоне UBFG перепутал в какой проект коммит делал, а в какой нет.

Пока проект остаётся на исходниках, для релиза придётся поправить баги с кропом и объединением.

#237
17:36, 16 июля 2013

Для собственных нужд написал конвертер из .atlas в .json на питоне, может кому ещё пригодится.
Скрипт ищет в своей директории файлы *.atlas и создаёт там же файлы *.atlas.json, с древовидной структурой.

Пример работы:

+ atlas

+ json

ссылка: atlas2json converter

#238
23:49, 20 июля 2013

Попробовал сегодня переписать свой пакер(на модификации MaxRects от RPG) под многоядерные процы... Перебираются все 7 вариантов с поворотами и для каждого параллельно сортируются и пакуются  800 изображений в 4 потока, затем из этих 28 вариантов паковки выбирается лучший(естественно это все для TopLeft). На 4-х ядерном Athlonе это занимает около секунды, на 2-х ядерном - ближе к двум. На обработку в 2.5 раза меньшего арта для игры violetland по идее должно уйти несколько десятых, это я RPG на заметку :)

ps. Писал на C#, MaxRects в dll, т.к. на шарпе получается всего на 20% быстрее, чем на Qt с динамической линковкой :)

#239
14:16, 2 авг. 2013

Можно зареквестить фичу? Очень уж нужна.

Было бы здорово, если бы можно было собирать спрайтшиты на основе уже существующего атласа.
То есть, помимо каталога со спрайтами задаёшь ещё и файл .atlas, который был сгенерирован ранее.
И программа составляет спрайтшит, читая оттуда данные, т.е. пытается брать спрайты по указанным в атласе путям, обрезать их до указанных в атласе размеров и помещать в координаты спрайтшита, указанные в атласе.

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

Зачем это нужно?
Главным образом, чтобы получать спрайтшиты, которые могли бы корректно накладываться друг на друга. Например, спрайтшит юнита и спрайтшит его масок для процедурной перекраски юнита в цвета игроков. Перекрасить сразу весь спрайтшит гораздо проще и быстрее, чем перекрашивать покадрово. Мы сейчас делаем игру на HTML5 и тут это критически важно.

Страницы: 115 16 17 1821 Следующая »
ПроектыФорумУтилиты

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