Flashgamedev.ru | Разработка и Монетизация Флэш игр
http://flashgamedev.ru/

Starling Framework + флеш Box2D = производительность на iOS
http://flashgamedev.ru/viewtopic.php?f=22&t=5028
Страница 7 из 7

Автор:  Roman Konyukhov [ Вт мар 20, 2012 7:23 am ]
Заголовок сообщения:  Re: Starling Framework + флеш Box2D = производительность на iOS

keenblaze писал(а):
Roman Konyukhov Есть какие-нибудь успехи в оптимизации?

У меня предложенный код исполняется на ipod touch 4 за ~110 мс, что никуда не годится :)
Наверное все-таки 1 мс это что-то из области фантастики.

Кстати насчет ipa-test-interpreter все правильно - там не создается нативного кода, поэтому AIR вообще подыхает


Так как замеры показали, что вычисления в Air выполняются в 50 раз медленнее на текущей версии SDK, чем нативный код, я решил ее не использовать.
Не могу, я что-то делать в Air, зная, что приложение можно значительно улучшить перейдя на нативный код.
Хотя бы раза в 2 медленее было, уже бы можно было использовать.
Наверное со временем это исправят, тогда и посмотрим.

Автор:  puzzlesea [ Вт мар 20, 2012 9:57 am ]
Заголовок сообщения:  Re: Starling Framework + флеш Box2D = производительность на iOS

hanuman писал(а):
Stranger087 писал(а):
Не совсем понимаю, что значит проход? )


Ну, я в этом не спец, но если грубо говорить, при отрисовке CPU загружает один раз атлас в видео-память и затем GPU когда прорисовывает объекты на экране, использующие этот атлас, делает это очень быстро - в один проход, для него это типа одинаковые объекты. Если же использовать для каждого объекта свою отдельную текстуру, это всё будет гораздо дольше. В общем я грамотно это объяснить не могу, может кто специалист объяснит нормально... :pardon:

ну как-то так :)
вообще проходы несколько другое и оптимизация для них отдельная.
а для использующего уже готовый движок рендеринга, проходов будет столько, сколько он их организует сам. т.е. для конечного пользователя движка (клиента) проход - это цикл отрисовки - обычно он один. Но в обычном флеше даже его не видно, т.к. векторный рендеринг на ЦП макромедия сделала достаточно оптимальным, и клиенту надо только указать порядок отрисовки во всяких DisplayObject-ах и DisplayObjectContainer-ах.
А оптимизация с текстурами заключается в том, что сама операция переключения текстур относительно затратная, поэтому при отрисовке с одной текстуры ее просто не будет (т.е. будет один раз).
Если же все отдельно, на своих текстурах, то это самый медленный вариант. Опять же зависит еще от движка рендера и последовательности отрисовки. Если рендер не сильно тупой, он предварительно проверяет какая текстура стоит, чтоб не дергаться лишний раз (проверить в разы быстрее, чем переключить) и самой элементарной оптимизацией на стороне клиента будет сортировка объектов отрисовки по текстурным группам не нарушая видимого наложения (Z-order, думаю понятно что нарисованное позже будет видно как находящееся выше).
Умный и хороший рендер сам формирует текстуру(ры), куда в соответствии с надобностью (частота, порядок) размещает картинки клиента. Если адоб советует самому размещать картинки по большим текстурам, то их рендер - гавно и его индусам и так нелегко кодится, чтоб еще замутить нормальную оптимизацию (элементарная, с чеканьем последней текстуры, надеюсь есть, но есть в этом сомненья у меня небезосновательные).
Вообще мой опыт говорит, что оптимизация рендера до такого уровня на ПК для 2д - нафик не нужна. Максимум - это партиклы в одну текстуру "запечь", гуй еще можно. Элементарной оптимизации с чеканьем последней текструры хватает. Для 3д - совсем другое, там и текстуры побольше, и их самих побольше. А для мобилок таки надо и 2д оптимизировать, особенно для аир, который наверняка в виртуальной машине крутится (предварительные выпуски такими и были), а для андроида, там и две виртуальные машины могут быть. Так что формируйте из картинок текстуры сами. Ручками. Или используя тулзы третьих лиц.

Автор:  hanuman [ Вт мар 20, 2012 11:57 am ]
Заголовок сообщения:  Re: Starling Framework + флеш Box2D = производительность на iOS

В догонку вот - всё написано что и как, есть сорсы, пробуйте и меряйте производительность...
http://www.bytearray.org/?p=4074

Страница 7 из 7 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/