Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вопрос производительности графики, Аппаратное ускорение. (http://www.flasher.ru/forum/showthread.php?t=158268)

Seagull 17.06.2011 17:25

Вопрос производительности графики, Аппаратное ускорение.
 
Доброго времени суток=)
Собственно говоря очень хотелось бы понять как быстрее производить отрисовку чего либо на экран. На сколько я знаю флеш сейчас ускоряет только видео, вот и хотелось бы понять как правильней отрисовывать графику в игрушке.
1) Быстрее ли один раз отрисовать битмап дату на каждый спрайт а потом двигать их накладывая друг на друга? (то есть сверху рамка интерфейса, которая отрисовывается в самом начале и далее не меняется, совсем снизу фон, огромная картинка на весь спрайт, опять таки не изменяющийся, а между прозрачный битмап который перерисовывается, собственно игровое поле)
2)Или каждый раз формировать битмап дату размером с экран, draw-ом на неё рисуя игровые объекты, интерфейс и после выводя.
Может что-то гибридное стоит сделать?
Или вообще может стоит промежуточный слой сделать спрайтом-контейнером и на него помещать bitmap-ы игровых объектов, и флеш сам позаботится о неотрисовке объектов не попавших в кадр?

Заранее спасибо за ответы, и\или ссылки на то где можно про это почитать. Можно и на английском.

S-ed 17.06.2011 17:50

Флеш отрисовывает регионы.
В вашем случае, перерисовываться будет средний слой. (посмотрите в плеере View - Show Redraw Regions - Ctrl+E)

Seagull 17.06.2011 18:54

Итак я ещё немного поэкспериментировал.
1)При смещении даже неизменного битмапа он всё равно перерисовывается, но это должно быть быстрее чем рисовать что либо его битмап дате... (чисто из логики)
2)Проверял будет ли изменение в быстродействии при создании 10000 колеблющихся битмапов, которые вначале будут колебаться в видимой области, а потом вне. К сожалению просадить быстродействие не удалось, фпс как было 30 так 30 и осталось, видимо виновато хорошее железо=). Посему судить о наличии\отсутствии\эффективности встроенного отсечения не могу.
3)Так как средний слой есть прозрачная битмап дата, и она изменяется вся, даже если был изменён лишь один пиксел.

Я может что-то делаю неправильно, или чего-то не понимаю. Прошу всё таки ответить на вопрос чуть полнее=)

-De- 17.06.2011 19:06

Гуглить flash, render, speed, fastest, faster и в таком духе.
И тестить Ваш случай. Ставить 120 фпс (может упереться во фреймрейт монитора, у меня 60), увеличить перерисовываемую область, мерять время на кадр.

gloomyBrain 17.06.2011 19:08

Я бы еще добавил слово blitting (вот пример)

S-ed 17.06.2011 19:11

Альфа транзишены сильно процессор грузят.
Например 50 перекрывающих друг друга спрайтов с накинутым эффектом блюра.

Seagull 17.06.2011 19:19

Цитата:

Сообщение от gloomyBrain (Сообщение 1004453)
Я бы еще добавил слово blitting (вот пример)

Ох, как я вам благодарен!

Про 50 спрайтов тут даже на форуме была страничка, где кто-то делал патиклы. Однако альфы можно полностью избежать, если работать с единственной битмап датой на которую слоями выводить фон->спрайты->рамку...

Ушёл копать. Когда найду достоверную и полную информацию, о результате доложусь=) Ну или чего-нибудь типа статьи сам наваяю... Если надо, конечно.


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

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