Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Максимальная производительность при рисовании (http://www.flasher.ru/forum/showthread.php?t=185841)

s3dworld 22.10.2012 17:08

Максимальная производительность при рисовании
 
Всем доброго дня!

Работаю в FlashDevelop и использую Flex SDK. Есть необходимость вывести огромное количество объектов на экране (скажем 1000-10000). Если использовать для этого дела MovieClip'ы или Sprite, то этим мы не добъёмся максимальной производительности. Я решил попробовать другой вариант. В качестве экрана использую Bitmap. А вывожу всё на его BitmapData (правда я сделал два BitmapData и переключался между ними - пародия на двойную буферизацию). В общем-то это оказалось заметно быстрее чем на Sprite'ах/MovieClip'ах. Но тут есть один недостаток: быстро если не использовать трансформации. Стоит только повернуть изображение, как производительность становится равная использование Sprite'ов/MovieClip'ов. Поэтому остаётся только не поворачивать изображения программным способом, а заранее подготовить повёрнутые картинки - геморройно, зато работает быстро.

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

Спасибо за внимание!

Hauts 22.10.2012 17:43

Starling вам как-раз то, что нужно.

Добавлено через 3 минуты
http://www.adobe.com/devnet/flashpla..._Starling.html

И вот еще перевод (надеюсь оплатят хостинг). Если что — ищите сохраненную копию в гугле.

s3dworld 22.10.2012 18:06

Hauts
Хорошо, спасибо! Это я почитаю. Но и этот движок сам-то как-то реализован. Что он использует? То есть как мне добиться самому максимальной производительности? Что использовать из функционала (без стороннего кода)?

Hauts 22.10.2012 18:09

s3dworld, используйте Starling для вашего проекта, по-моему, это самый лучший вариант. Но не самостоятельные попытки :)

gagaga 22.10.2012 18:10

setPixels, copyPixels ... быстрее только магия.... выложите код, возможно подскажу, где можно оптимизировать

Добавлено через 1 минуту
на GPU ускорение я бы надеяться не стал, оно работает не на всех платформах

Tails 22.10.2012 18:13

Hauts,
А можно узнать насчёт старлинга, блюры и бевалы будут работать на телефонах?

Hauts 22.10.2012 18:17

Tails, насколько мне известно, старлинг не поддерживает фильтры именно для дисплэйобджектов старлинга. Но так как для клипов используются текстуры из битмапдат, то не составит большого труда накладывать фильтр на картинку, а ее, в свою очередь, использовать как текстуру.

s3dworld 22.10.2012 18:23

Спасибо всем за ответы! Поэкспериментирую и если что, напишу ещё.

Vreden 22.10.2012 18:40

Присоединяюсь к вопросу автора. Я бы тоже почитал про самостоятельную оптимизацию большого количества экранных объектов, ибо у меня тоже есть десятки тысяч спрайтов, при этом приложение офисное и использовать игровой движок для этого как бы не тот случай. Может кто-нибудь имеет линки или информацию по этому случаю.

Tails 22.10.2012 18:52

Vreden,
Если объекты не двигаются внутри своего пространства (содержимое контейнера/мувиклипа) можно использовать кеширование. Прирост может быть ощутимым.
В Flas ide галочка - caching bitmap


Часовой пояс GMT +4, время: 10:11.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.