![]() |
Фильтры и быстродействие.
Всем привет.Задача следующая.
Имеется спрайт в который каждый фрейм рисуются линии. Каждый раз меняется их длина и местоположение. После этого к спрайту(то бишь ко всем отрисованным линиям) применяется фильтр Glow, что приводит к капитальным тормозам. Я вот подумал может можно как-то оптимизировать этот процесс или добиться того же результата другими способами без использования фильтра? |
Ну да
Можно разделить линию на составляющие 2-х типов: середина и конец Далее, можно нарисовать середину (кусочек линии с "уже примененным" GlowFilter) - то есть BitmapData в которую скопирован внешний вид середины То же повторить для конца линии Составить много-много линий из полученных кусочков (graphics.beginBitmapFill()) |
дорисовывать каждую новую линию в спрайт и тут же отрисовывать его в прозрачную битмапдату? чую что проблема в куче линий, а не в фильтре.
|
Цитата:
Хорошо бы немного кода... Цитата:
Цитата:
|
Цитата:
|
Метод gloomyBrain действительно быстрый (ещё бы и в битмапу рисовать), но, например, пересечение линий будет рисовать некорректно - свечение одной линии перекроет другую.
Я бы попробовал примерно как советует Zebestov. Т.е. рисуем линию в спрайт, спрайт "рисуем в битмапу" к которой применён фильтр, чистим спрайт. Без фильтра работает быстро возможно т.к. установка фильтра включает cacheAsBitmap. С включенным cacheAsBitmap при изменении спрайта тормозной векторный рендерер перерисовывает всю кучу линий во внутреннюю битмапу. Т.е. возможно тормозит не столько из-за фильтра, сколько из-за cacheAsBitmap=true у спрайта. Ну и там не забыть качество фильтру поменьше. А вообще хоть бы код тормозящий кинули на поковырять) |
Цитата:
|
| Часовой пояс GMT +4, время: 22:57. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.