Показать сообщение отдельно
Старый 09.12.2014, 17:12
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 1  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
По умолчанию Оптимизация (растеризация) векторной программной анимации для мобильных устройств

И так рассказываю по порядку. Есть схемы навигации торгового центра, выполненные в векторе, в которых с помощью A* находится путь и затем проигрывается анимация отрисовки пути от точки до точки. Каждая схема (один этаж) реализована в виде отдельной swf (сейчас они проигрываются с терминалов). Передо мной встала задача написания мобильного приложения на AIR для навигации по этому торговому центру, в котором указанные схемы можно будет скейлить и вращать + опять же будет работать поиск пути и анимация. Первые же тесты показали, что при вращении и скейлинге векторной схемы (я тестировал на Sumsung Galaxy S III) происходит 1 – 2х секундное падение fps (это четко видимое торможение, которое неприемлемо). Но самое страшное происходит при проигрывании анимации, она вообще тормозит просто жутко. Понятно, что от вектора нужно уходить, и хотелось бы при этом сделать это малой кровью т.е. минимально переделывая существующие флешки, и чтобы это нормально выглядело на различных разрешениях :-).

Какие я вижу стратегии:

1)Тупо перегнать содержимое всех флешек в растр под 3 – 4 скейлфактора. Определять разрешение на устройстве и грузить нужную флешку с растром. Пока считаю этот вариант наиболее быстрым и реалистичным.
2) Грузить схему, определять разрешение устройства, и уже на лету в памяти растеризовать содержимое флешки. Минус – долгое время запуска, по моим прикидкам это может занять 5 – 10 секунд, поправьте, если я не прав.
3)Возможно еще есть какие то хитрожопые стратегии, например, растеризовать схему, а сверху отдельным слоем проигрывать анимацию, созданную программно, но это, видимо, потребует серьезную переделку флешек.

В общем буду рад любому совету на этот счет.

Ну и самое главное – также интересуют программные способы автоматического перегона всего содержимого флешки в растр нужного разрешения (т.к. в моих флешках очень много объектов не хочется делать это вручную) Если есть готовые решения тоже буду им рад.

Заранее спасибо!