Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.04.2015, 14:16
pas.delger вне форума Посмотреть профиль Отправить личное сообщение для pas.delger Найти все сообщения от pas.delger
  № 1  
Ответить с цитированием
pas.delger
 
Аватар для pas.delger

блогер
Регистрация: Mar 2010
Сообщений: 108
Записей в блоге: 1
По умолчанию Тормоза при wmode=direct

Добрый день!

Делаю барабаны для слот-автомата. Двигаю сверху вниз длинную картинку. Рассчитываю на 50fps. Когда встраиваю флеш с параметром wmode=direct - fps иногда слетает до 30, иногда нет. Что самое интересное, с параметром wmode=window (он же по умолчанию), тормозов нет - все очень шустренько.

Везде в том числе на официальном хелпе от Adobe написано, что direct - самый, так сказать, верняк вариант для производительности. Как объяснить тормоза в мое ситуации?

Я бы плюнул и поставил window, да вот как быть с тем, что если включить fullscreen - wmode автоматом становится direct и начинаются тормоза?

Помогите, пожалуйста, разобраться, где я накосячил?

Старый 01.04.2015, 17:10
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от pas.delger Посмотреть сообщение
Везде в том числе на официальном хелпе от Adobe написано, что direct - самый, так сказать, верняк вариант для производительности.
Direct необходим только для приложений на Stage3D.
__________________
Поймай яблоко 2!

Старый 01.04.2015, 17:34
pas.delger вне форума Посмотреть профиль Отправить личное сообщение для pas.delger Найти все сообщения от pas.delger
  № 3  
Ответить с цитированием
pas.delger
 
Аватар для pas.delger

блогер
Регистрация: Mar 2010
Сообщений: 108
Записей в блоге: 1
Спасибо! Я не против поставить window. Но, все же, что тогда делать с fullscreen-ом?

Старый 01.04.2015, 17:50
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 4  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
А можно узнать, что конкретно стоит за словами "включить fullscreen" и "wmode автоматом становится direct"?
__________________
Поймай яблоко 2!

Старый 01.04.2015, 18:04
pas.delger вне форума Посмотреть профиль Отправить личное сообщение для pas.delger Найти все сообщения от pas.delger
  № 5  
Ответить с цитированием
pas.delger
 
Аватар для pas.delger

блогер
Регистрация: Mar 2010
Сообщений: 108
Записей в блоге: 1
Тут сказано

Цитата:
Flash Player displays content viewed in full screen mode using direct path rendering
И так оно действительно выглядит. При wmode=direct производительность в обычном режиме и в режиме fullscreen'a одинаковая (плохая). Если поставить wmode=window - тогда в обычном режиме все летает, а на fullscreen'е - тормоза.

Добавлено через 1 минуту
Простите, забыл добавить:
Включить fullscreen - stage.displayState = StageDisplayState.FULL_SCREEN

Старый 01.04.2015, 18:19
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 6  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Очевидно, нужно оптимизировать отображение, размытия какие-то, стараться не делать "длинных изображений" и т.д.
Других вариантов нет.

P.S.
Зачем барабанам больше 30 fps?
__________________
Поймай яблоко 2!

Старый 01.04.2015, 18:57
pas.delger вне форума Посмотреть профиль Отправить личное сообщение для pas.delger Найти все сообщения от pas.delger
  № 7  
Ответить с цитированием
pas.delger
 
Аватар для pas.delger

блогер
Регистрация: Mar 2010
Сообщений: 108
Записей в блоге: 1
30 маловато, не доставляет...

Спасибо за ответы, буду думать!

Добавлено через 9 минут
А вообще, просто из интереса решил эту тему поднять. Direct дает возможность использовать аппаратное ускорение, и в хепле от адоба ничего не сказано о том, что его рекомендуется использовать ТОЛЬКО для Stage3D. Напротив, они пишут что этот режим, просто, дает максимальную производительность. Понятно, наверняка в моем случае есть что оптимизировать-пересматривать. Но факт есть факт: в direct - тормоза, в window - все путем. Получается, Adobe врут?

Старый 01.04.2015, 19:29
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 8  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Не, там вроде сказано, что он дает возможность использовать аппаратное воспроизведение видео и Stage3D. Сам по себе wmode direct больше ничего особого в себе не несет. Он скорее всего устроен как gpu + Stage3D + StageVideo. И вот тут стоит понимать разницу между режимами gpu и группой режимов cpu (window, opaque, transparent).

Рекомендуется использовать wmode gpu, если в приложении преобладает растровая графика.

Если же больше графики векторной, то следует ставить режимы window, opaque (если требуется пошаманить с z-index на страничке) или transparent (только если таки никак не получается избежать использования прозрачной флешки).

Говоря другими словами, если у тебя флешка в основном векторная, то wmode gpu (direct) снижает производительность. Если же у тебя и так растр — шерше ля ботлнек
__________________
Поймай яблоко 2!


Последний раз редактировалось Zebestov; 01.04.2015 в 20:05.
Старый 01.04.2015, 19:40
pas.delger вне форума Посмотреть профиль Отправить личное сообщение для pas.delger Найти все сообщения от pas.delger
  № 9  
Ответить с цитированием
pas.delger
 
Аватар для pas.delger

блогер
Регистрация: Mar 2010
Сообщений: 108
Записей в блоге: 1
Да-да, у меня растр. Действительно, сократив свою длиннющую картинку в 5 раз - стабильнее стало держать 50fps при direct'e. Придется, видимо, что-то мутить с дабл буферами или еще чем. А так надеялся, что просто надо где-то галочку поставить... (:

Старый 17.04.2015, 11:51
pas.delger вне форума Посмотреть профиль Отправить личное сообщение для pas.delger Найти все сообщения от pas.delger
  № 10  
Ответить с цитированием
pas.delger
 
Аватар для pas.delger

блогер
Регистрация: Mar 2010
Сообщений: 108
Записей в блоге: 1
С позволения, я все же воскрешу тему. Новые обстоятельства...

Максимально оптимизировав свои барабаны тормоза все равно остались. При чем очень заметна разница между официальным адобовским плеером и хромовским PepperFlash. То есть, в Firefox, в официальном плеере, в режиме Direct - работает стабильно и плавно. В хроме, во встроенном PepperFlash - в 2 раза медленнее. Если поставить wmode=window - в обоих случаях тормозов не заметно.

Что я заметил изучая аналоги... Вот есть такая игруха:
https://games.hollandpowergaming.com...=supergame_prd

В которую босс меня тыкнул носом сказав: "хочу что бы летало быстро как у них". И таки изучив код страницы я заметил, что они определяют wmode в зависимости от броузера. Отрывок из кода:

Код:
function getWmode()
			{
				var wmode = gup("wmode");
				if (!wmode)
				{
					wmode = "direct";
					if (navigator.appName == 'Microsoft Internet Explorer') wmode = "window";
					else if (window.chrome) wmode = "window";
				}
				return wmode;
			}
То есть, если IE или Chrome - то window. Если остальное - то direct.

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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