Форум Flasher.ru

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

zCHESNOKz 14.12.2015 12:38

Почему так сильно падает FPS? Где вся производительность?
 
Вложений: 2
По невиданным мне причинам вращение 30 растровых картинок вызывает лаги(понижение FPS).

У меня в игре есть возможность сажать растения, когда оно созревает - на его заднем плане появляется анимация вращающегося свечения (100х100 px. растровая картинка) Задумывалось максимальное количество активных растений не больше 30 шт. Но! Начало сильно все лагать и падать FPS. Я пробовал ТвинЛайт, думал из-за него. Попробовал ентерфрейм - тоже самое. Когда у всех 30 растений включается анимация вращения клипа со свечением то FPS c 45 резко падает ниже 30.

Что я делаю не так? Почему так все падает?

Провел эксперимент - у меня отдельно есть пустой проект, где я провожу всякие испытания. Добавил на сцену 50 клипов (100х100 px. растровая картинка) и по клику включил вращение каждого клипа (также пробывал твином и ентерфреймом, твин лучше). FPS также сразу просело с 45 до 30. Что за!? Пробовал во Flashе менять в свойствах клипа менять визуализацию(варианты кеширования) - ничего не изменилось. Пробовал менять качество растрового изображения с png на jpeg - тоже ничего.

Что делать? :(((

*[никаких еффектов, в том числе и свечения нету, просто растровое изображение]

illuzor 14.12.2015 12:54

Цитата:

Что я делаю не так?
Знать бы, что вы вообще делаете.

Битмапдата одна на все картинки?

caseyryan 14.12.2015 12:55

Цитата:

Когда у всех 30 растений включается анимация вращения клипа со свечением
Счечение как сделано? Уж не глоу фильром ли?
1) Фильтры - это очень тормозная штука
2) Вращение объекта присвоением ему свойства rotation заставляет каждый раз пересчитываться матрицу трансформации объекта. Эта процедура более затратна, чем, скажем просто замена битмап даты.
Я бы лучше сделал при первом запуске такой картинки кэширование всех ее кадров в битмапдату, а потом просто заменял бы ее покадрово. Это сильно упростит процессору работу в дальнейшем

zCHESNOKz 14.12.2015 13:20

Цитата:

Сообщение от illuzor (Сообщение 1189666)
Знать бы, что вы вообще делаете.

Перечитайте еще раз вопрос. Какая битмапдата?

Я во флеше импортированую растровую картинку обернул в символ, и его уже использую в самой игре.

Добавлено через 6 минут
Цитата:

Сообщение от caseyryan (Сообщение 1189667)
Счечение как сделано? Уж не глоу фильром ли?
1) Фильтры - это очень тормозная штука
2) Вращение объекта присвоением ему свойства rotation заставляет каждый раз пересчитываться матрицу трансформации объекта. Эта процедура более затратна, чем, скажем просто замена битмап даты.
Я бы лучше сделал при первом запуске такой картинки кэширование всех ее кадров в битмапдату, а потом просто заменял бы ее покадрово. Это сильно упростит процессору работу в дальнейшем


1) Я же написал, что - " (100х100 px. растровая картинка) ".
2) Так получается, это просто rotation такое тормознутое и все нагружает?
Замена битмап даты - не совсем понял. А можно по подробней? Можно ссылки?

undefined 14.12.2015 13:55

Цитата:

2) Так получается, это просто rotation такое тормознутое и все нагружает?
Применяются ли к картинке какие-нибудь фильтры?

zCHESNOKz 14.12.2015 15:02

Цитата:

Сообщение от undefined (Сообщение 1189671)
Применяются ли к картинке какие-нибудь фильтры?

Да нет же говорю! Никаких эффектов нету. Просто растровая картинка

Bletraut 14.12.2015 18:16

Цитата:

Да нет же говорю! Никаких эффектов нету. Просто растровая картинка
Товарищ caseyryan и говорит, что растровая картинка это тот же битмап с битмапдатой. Ну и соответственно

Цитата:

2) Вращение объекта присвоением ему свойства rotation заставляет каждый раз пересчитываться матрицу трансформации объекта. Эта процедура более затратна, чем, скажем просто замена битмап даты.
Лагает скорее всего из-за этого, т.к. картинку крутить это затратно.

zCHESNOKz 14.12.2015 19:57

Цитата:

Сообщение от Bletraut (Сообщение 1189677)
Товарищ caseyryan и говорит, что растровая картинка это тот же битмап с битмапдатой. Ну и соответственно



Лагает скорее всего из-за этого, т.к. картинку крутить это затратно.

Хорошо, а не подскажите тогда как мне это исправить?

Bletraut 14.12.2015 20:11

Всё от того же caseyryan
Цитата:

Я бы лучше сделал при первом запуске такой картинки кэширование всех ее кадров в битмапдату, а потом просто заменял бы ее покадрово. Это сильно упростит процессору работу в дальнейшем
Нужно перевести все кадры анимации в битмапдаты и потом отдельно их подменять, можно написать свой велосипед основываясь на
http://gamedevblogs.ru/blog/actionscript/520.html

zCHESNOKz 14.12.2015 20:12

Цитата:

Сообщение от illuzor (Сообщение 1189666)
Битмапдата одна на все картинки?

А не подскажите как это сделать?

Добавлено через 50 секунд
Цитата:

Сообщение от Bletraut (Сообщение 1189679)
Всё от того же caseyryan


Нужно перевести все кадры анимации в битмапдаты и потом отдельно их подменять, можно написать свой велосипед основываясь на
http://gamedevblogs.ru/blog/actionscript/520.html

Спасибо, посмотрю!


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

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