![]() |
Максимальная производительность при рисовании
Всем доброго дня!
Работаю в FlashDevelop и использую Flex SDK. Есть необходимость вывести огромное количество объектов на экране (скажем 1000-10000). Если использовать для этого дела MovieClip'ы или Sprite, то этим мы не добъёмся максимальной производительности. Я решил попробовать другой вариант. В качестве экрана использую Bitmap. А вывожу всё на его BitmapData (правда я сделал два BitmapData и переключался между ними - пародия на двойную буферизацию). В общем-то это оказалось заметно быстрее чем на Sprite'ах/MovieClip'ах. Но тут есть один недостаток: быстро если не использовать трансформации. Стоит только повернуть изображение, как производительность становится равная использование Sprite'ов/MovieClip'ов. Поэтому остаётся только не поворачивать изображения программным способом, а заранее подготовить повёрнутые картинки - геморройно, зато работает быстро. Есть ли ещё какие-то способы добиться максимальной производительности? Например как включить аппаратное ускорение? Подскажите способы, как можно рисовать огромное количество изображений на экране. Спасибо за внимание! |
Starling вам как-раз то, что нужно.
Добавлено через 3 минуты http://www.adobe.com/devnet/flashpla..._Starling.html И вот еще перевод (надеюсь оплатят хостинг). Если что — ищите сохраненную копию в гугле. |
Hauts
Хорошо, спасибо! Это я почитаю. Но и этот движок сам-то как-то реализован. Что он использует? То есть как мне добиться самому максимальной производительности? Что использовать из функционала (без стороннего кода)? |
s3dworld, используйте Starling для вашего проекта, по-моему, это самый лучший вариант. Но не самостоятельные попытки :)
|
setPixels, copyPixels ... быстрее только магия.... выложите код, возможно подскажу, где можно оптимизировать
Добавлено через 1 минуту на GPU ускорение я бы надеяться не стал, оно работает не на всех платформах |
Hauts,
А можно узнать насчёт старлинга, блюры и бевалы будут работать на телефонах? |
Tails, насколько мне известно, старлинг не поддерживает фильтры именно для дисплэйобджектов старлинга. Но так как для клипов используются текстуры из битмапдат, то не составит большого труда накладывать фильтр на картинку, а ее, в свою очередь, использовать как текстуру.
|
Спасибо всем за ответы! Поэкспериментирую и если что, напишу ещё.
|
Присоединяюсь к вопросу автора. Я бы тоже почитал про самостоятельную оптимизацию большого количества экранных объектов, ибо у меня тоже есть десятки тысяч спрайтов, при этом приложение офисное и использовать игровой движок для этого как бы не тот случай. Может кто-нибудь имеет линки или информацию по этому случаю.
|
Vreden,
Если объекты не двигаются внутри своего пространства (содержимое контейнера/мувиклипа) можно использовать кеширование. Прирост может быть ощутимым. В Flas ide галочка - caching bitmap |
| Часовой пояс GMT +4, время: 21:40. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.