С Новым годом! Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
AS 3.0

Оптимизация нагрузки при разных подходах использования графики

05.07.2014, 01:50. Показов 1170. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сделал интерфейс игры (Портрет героя с хп, инвентарь в виде ячеек в верху екрана, кнопка меню). Потом наложил на них фильтры тень, фаску в ручную. И возникло 2 вопроса:
1. Стоит ли заморачиваться переводить эти мувики програмно в растр при начале лвл игры? Они ведь не двигаются вместе с прокруткой карты и всем игровым миром и вопрос - как в таком случае они нагружают систему по сравнению с растром?
2. Какая разница в нагрузке системы в случаях наложения фильтров изначально на мувики интерфейса и программно в ходе загрузки уровня игры?

Добавлено через 34 минуты
Вобщем тестанул програмное применение фильтров на простом примерчике - 4 кнопки меню, пробегая по них мышкой меняются програмно фильтры создавая эффект нажатости (курсор над кнопкой - применяется програмно фильтр фаска , курсор ушел с кнопки - фильтр фаска и тень). Тестанул Адобе скаутом и итог - половину ресурсов забирает рендеринг наложеных фильтров. Вывод - частое програмное наложение фильтров и их смена на другие фильтры - очень трудоемко для системы. Делаю вывод, что в играх недопустимо програмно налаживать фильтры. Если вывод неправильный - поправьте меня. Остается вопрос насчет перевода в растр мувиков с уже наложеными фильтрами тень и фаска. С фаской думаю проблем нету, а вот с тенью сомневаюсь.

Добавлено через 44 минуты
Потестировал разные вариации на кнопках меню получил следующие итоги: без фильтров все шикарно, ничего не нагружает, но и красоты нету С фильтрами будь то програмные или стационарные - красота, но нагрузка пипец на систему в % (не дай Бог налаживать фильтры тени где-то в самой игре на динамические объекты. И третий вариант - во флеше наложить нужные фильтры на мувик и все это переобразовать в растровую картинку инструментами флеша и с этой картинки уже сделать конечный мувик. В итоге и красота и минимальная нагрузка на систему. Оттестил все варианты на адобе скауте. Вобщем при разработке динамический игр - фильтры недопустимая розкошь, которая отсеет половину конечных пользователей вашей игры из-за жутких лагов и тормозов при рендеринге на слабых машинах. Растр рулит, но увеличивает размер флехи.
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.07.2014, 01:50
Ответы с готовыми решениями:

Построить в разных системах координат при (х=) графики функции
Помогите доделать ребята...

Построить в разных системах координат при х ϵ [-1.8; 1.8] графики функций
Проверьте, пожалуйста, правильно ли я сделал. При проверке работу забраковали, как бы я ни переделывал, второй и третий график остаются...

Мониторинг нагрузки + графики
Всем доброго времени суток!!! Используется: windows server 2008 R2 enterprise Подскажите программу которая включает в себя: ...

11
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
05.07.2014, 10:22
Цитата Сообщение от Wells77 Посмотреть сообщение
Вобщем при разработке динамический игр - фильтры недопустимая розкошь
Все же ситуации бывают разные. Но если есть возможность обойтись без фильтра, то да, лучше без него.
0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
05.07.2014, 11:38  [ТС]
А кстати, в чем разница 3 способов? :
1.Перевести объект в битмапу програмно.
2.Преобразовать объект в растровую картинку инструментами флеша.
3.Просто перетащить мышкой jpg или png во флеш и обгорнуть его символом.
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
05.07.2014, 11:49
1) Какой объект?
2) Какими инструментами? Почему именно флеша?
3) Можно сделать символом, тогда это будет спрайт или мувиклип со своим набором свойств, а можно сделать BitmapData - это совсем другой объект.
0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
05.07.2014, 12:33  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
1) Какой объект?
2) Какими инструментами? Почему именно флеша?
3) Можно сделать символом, тогда это будет спрайт или мувиклип со своим набором свойств, а можно сделать BitmapData - это совсем другой объект.
1.Векторный мувик
2.Модификация - Преобразовать в растровое изображение (Обратная процедуре: Модификация - Растровое изображение - Векторизация)
3. В этом и вопрос состоит в чем разница мувика в теле которого джпег картинка и переменной битмапы (всеравно как я понимаю чтоб перевести в битмапу нада: обгорнуть в мувик тотже джпег, и програмно потом этот мувик сделать битмапой присвоив переменной).

Добавлено через 3 минуты
Что именно меньше ест ресурсов и нагружает рендер: оперировать с мувиком внутри которого растровая картинка (jpg png), или получить битмапу даного класса, присвоить переменной и с ней оперировать?
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
05.07.2014, 12:51
1) Во-первых должен быть исходный объект, во-вторых, нужно создать битмапдату, в-третьих отрисовать в нее, в-четвертых на ее основе создать битмапу.
2) В этом случае вы полчаете в библиотеке такую же битмапу, как и 3м варианте без "обертки" в спрайт.
3) В библиотеке у вас по сути BitmapData (при создании из нее класса это видно наглядно), если вы вручную помещаете ее на сцену - она становится Bitmap-ой. При программном создании битмапы происходит тоже самое: 1й аргумент конструктора битмапы - ссылка на битмапдату.
4) А что вам необходимо, мувик или битмапа? сли вам нужны кадры - используйте мувик, если просто интерактивный объект без кадров - спрайт, если просто изображение - битмапа.
И на счет изображений. png и jpg не равнозначны. 1й выделяется наличием канала прозрачности, расчет прозрачности, особенно при сильно "слоистом" наложении объектов чреват появлением артефактов.
1
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
05.07.2014, 13:51  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
3) В библиотеке у вас по сути BitmapData (при создании из нее класса это видно наглядно), если вы вручную помещаете ее на сцену - она становится Bitmap-ой. При программном создании битмапы происходит тоже самое: 1й аргумент конструктора битмапы - ссылка на битмапдату.
Не совсем понятно тогда, зачем переводить програмно векторные мувики в битмапу если с ваших слов они и так переводятся автоматом в битмапу при помещении на сцену?
Зачем нужна тогда функция:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
public function getBmd(object:DisplayObject):BitmapData 
        {
            var rect:Rectangle = object.getBounds(object);
            var m:Matrix = object.transform.matrix;
            m.tx = object.x - rect.x;
            m.ty = object.y - rect.y;
            var bmd:BitmapData = new BitmapData(rect.width, rect.height, true, 0);
            bmd.draw(object, m);
            return bmd;
        }
Добавлено через 3 минуты
Возможно немного отклонился от основного вопроса. Перефразирую: пытаюсь оптимизировать графику в игре и перевести все в растр (так нада делать по правильному или все-же некоторые векторные объекты можна оставлять в векторе?). И вот основной вопрос как правильно и корректно перевести векторные мувики в растр?

Добавлено через 19 минут
Дочитался до опции "cache as bitmap". Вообще тогда не пойму нафига програмно было переводить мувики в битмапу если просто можно было в библиотеке выставить галочку "cache as bitmap" для нужных мувиков (например для векторного мувика фона).

Добавлено через 8 минут
Вобщем долго копался в поисках ответов и нашел то, что раставляет все на свои места: http://habrahabr.ru/post/101766/
В даной статье все описано как оптимизировать графику флешки. Очень помогла и избавила меня от лишнего кода в проекте.
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
05.07.2014, 13:56
Цитата Сообщение от Wells77 Посмотреть сообщение
Не совсем понятно тогда, зачем переводить програмно векторные мувики в битмапу если с ваших слов они и так переводятся автоматом в битмапу при помещении на сцену?
Я не про векторные, а про растровые говорил. Нужно было уточнить.
Судя по коду метод по ссылке на любой объект создает его BitmapData. Но откуда этот метод и зачем не знаю. Я таким не пользуюсь.
Цитата Сообщение от Wells77 Посмотреть сообщение
или все-же некоторые векторные объекты можна оставлять в векторе?
Можно. Все зависит от каждого конкретного случая.
Цитата Сообщение от Wells77 Посмотреть сообщение
И вот основной вопрос как правильно и корректно перевести векторные мувики в растр?
Зависит от задачи. Предложенный вами 2й вариант очень даже не плох.
Цитата Сообщение от Wells77 Посмотреть сообщение
Вообще тогда не пойму нафига програмно было переводить мувики в битмапу
А кто-то где-то говорил про "нужно". Я говорил про "все зависит от задачи". В случае с cache as bitmap для, например, вложенных анимаций - это плохой вариант: будет значительно расти память, да и нагрузка на систему, думаю, тоже несколько увеличится.
1
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
05.07.2014, 14:06  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
В случае с cache as bitmap для, например, вложенных анимаций - это плохой вариант: будет значительно расти память, да и нагрузка на систему, думаю, тоже несколько увеличится.
Если есть например мувик идущего героя состоящий из 5-6 составляющих мувиков(ноги,руки, тело). То если я применю cache as bitmap для каждой составляющей а не до конечного мувика идущего героя, то метод норм будет работать?
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
05.07.2014, 14:08
Wells77, я бы это реализовал следующим образом: в контейнере для руки растровое изображение руки, для ноги - ноги и т.д. В этом случае не вижу необходимости кешировать весь объект или его часть.
0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
05.07.2014, 14:26  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
я бы это реализовал следующим образом: в контейнере для руки растровое изображение руки, для ноги - ноги и т.д. В этом случае не вижу необходимости кешировать весь объект или его часть.
Собственно на даный момент так у меня все и реализовано, но думал это неправильный подход. Минус такого метода в том что нарисовав в векторе руку или ногу, приходится дублировать векторный символ и дубль превращать в растр. В итоге в библиотеке хранится и векторный символ руки-ноги и его дубль растр для вывода на екран, что существенно нагромождает саму библиотеку . А так да метод конечно рабочий.
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
05.07.2014, 14:38
Цитата Сообщение от Wells77 Посмотреть сообщение
что существенно нагромождает саму библиотеку
В библиотеке тоже все можно по разным папкам разместить. А вообще наполнение (качественно и количественно) библиотеки на результат не влияет. Влияют только те объекты, которые оказываются в финальной версии программы.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.07.2014, 14:38
Помогаю со студенческими работами здесь

Построить в разных системах координат при x принадлежит [-1,7. 1,5] графики функций:
Помогите пожалуйста сделать это в exle

Оптимизация нагрузки на сервер
Пусть у нас система генерирует запросы на исполнение чего-то (документы). Как лучше исполнять эти запросы, чтобы было оптимально с точки...

Построить в разных системах координат при x принадлежит [-1,5, 1,8] графики следующих функций
Не нашел в редакторе как сделать систему поэтому на скрине. Не представляю как. Всем спасибо

Построить в разных системах координат при х ∈[-1,8,1,8] графики следующих функций
Помогите,а то что-то не получается)

О формульных и алгоритмических моделях и вообще о некоторых подходах при рассмотрении явлений (интересно!)
Предлагаю ознакомиться со свеженькой статьей, написанной очень простым языком об очень сложных вещах. Физика и экономика....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru