Об оптимизации графики(растр/вектор) и анимаций
Коллеги вот такой вопрос к игроделам, которые собаку на этом съели, что будет быстрее работать. У самого очень мощный комп, и тесты провести сложновато.
Рендерим 100 кадров 3д анимации, просто тупо 100 картинок, размером от 100*100 до 300*300 например. Загоняем во флеш. Запускаем таймер на 50-100 мс 1) Мы добавим сразу все 100 картинок в спрайт и будем менять visible по очереди. 2) Мы будем делать addChild/removeChild 3) До импорта, создаем одну большую битмапу как спрайтшит ( получается если 100 картинок по 300 (10х10) , 3000 * 3000 битмапка) добавляем ее и под маской меняем x-y битмапки 4) Аналогично пунтк 3, только добавляем одну битмапку 300*300 и потом методом draw из большой получаем bitmapData которую скармливаем этой битмапке. 5) ваш варинат Какой из варинатов будет самым шустрым? ( мне кажется 1й будет быстрее, так как мы сразу забиваем память нужным кол-вом, и держим ее пока анимируем, чем например посл варинат, так как каждые 50 мс делать draw будет напрягать проц еще, - но могу сильно ошибаться ) -------------- Отдельный вопрос по шейпам (статика). Допустим мне надо зарисовать ( программно ) 1000 шейпов, различные фигуры. Будет ли правильным после такой зарисовки, сделать draw общего контейнера и добавить как одну битмпаку, а зарисованные шейпы просто удалить, заодно вписав их в null ? |
5)Загнать большую битмапдату в Bitmap и выставить ей scrollRect.По идеи это оптимизированный метод как раз для таких задач.
Цитата:
|
draw() медленный, самым шустрым считается copyPixels().
|
Цитата:
Цитата:
|
А если сделать массив из 100500 экземпляров BitmapData и при каждой итерации bitmapData одной единственной Bitmap будет ссылаться на текущий кадр?
|
Цитата:
Цитата:
Думаю copyPixels и scrollRect дадут одинаковые результаты, но у copyPixels оверхед по памяти меньше. Тесты никто за тебя делать не будет. |
Цитата:
|
Каждый кадр отрисовать в отдельную битмапдату, кинуть их все в массив. Дальше в одной bitmap менять битмапдату на значение из массива. Чем плох этот способ по сравнению с маской и скроллом?
Добавлено через 6 минут Пример кода 5-ти летней давности, нарезает длинную .png c кадрами на битмадаты и затем проигрывает их. Код AS3:
|
Вложений: 1
Пример портянки с кадрами
http://www.flasher.ru/forum/attachme...1&d=1520198995 |
Для одинаковых объектов можно создать глобальный массив с кадрами-битмапдатами, но возможно для этого уже есть отдельная оптимизация в самом ФП, я не проверял.
|
Часовой пояс GMT +4, время: 17:20. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.