Форум 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=143905)

kadabrik 28.08.2010 22:04

Оптимальные настройки обновления экрана...
 
В целях изучения as пишу небольшую игру, и у меня встала задача о "плавной" анимации. То есть мне хотелось бы добиться наибольшей частоты кадров для более приятного восприятие игры глазом. На сколько я заметил в трехмерные игры наиболее комфортно играть с частотой от 60 кадров в секунду. Если играть например в какую-нибудь CS1.6 с частотой кадров при которых просматривают фильмы ~ 25 кадров в секунду, то в игре это будет сразу заметно и будет доставлять некий дискомфорт.
Допустим я хочу добиться во флеше этих 60 кадров в секунду, соответственно я задаю stage.frameRate = 60 , но от этого не будет пользы если объекты в игре будут двигаться не каждый кадр. Поэтому интервал таймера, по событию которого двигаются объекты, должен быть установлен в 16мс, что примерно даст 60 событий в секунду. Но все это в теории, поскольку мне кажется, что не на всякой машине все объекты успеют переместиться и отрисоваться за 16мс. Так вот, хотелось бы узнать какие использовать оптимальные настройки обновления экрана и игрового таймера, которые подойдут для большинства случаев?

TanaTiX 28.08.2010 22:19

Не знаю кто как, но думаю, что большинство поддержит, что ставить более 30 fps смысла нет. И не нужно сравнивать контру с флеш-играми.

samana 28.08.2010 22:20

По моему от 25 до 30 будет достаточно, для динамической игры.

zatoichi 28.08.2010 22:24

Есть кстати вариант обновлять кадры только после окончания рендеринга каждого из них, тогда скорость воспроизведения будет зависеть от нагруженности флешки и оптимальности его кода, но анимация может иногда ускоряться или замедляться, в зависимости от использования флешем ресурсов машины.
В сети есть много решений с динамическим изменением fps. Ссылок не дам, специально их не искал, но раньше несколько раз натыкался на такую инфу.

kadabrik 28.08.2010 22:43

Мда и всетаки при перемещении объекта из одной части экрана в другую замечаю что он иногда двигается с еле заметными рывками, но очень раздражающими. Хотя может быть я просто избалован DirectX'ом... Насчет обновления объектов после окончания рендеринга кадра - частота кадров на разных машинах может быть не одинаковой, а скорость анимации должна быть на всех одной и той же. Поэтому придется расчитывать движения объектов исходя из времени прошедшим между сменой кадров, а это на порядок усложнит алгоритмы анимации объектов.

zatoichi 28.08.2010 22:59

Насчет усложнения алгоритмов согласен, но иногда это того стоит))

TanaTiX 29.08.2010 00:31

Смена кадров в любом случае будет происходить и все видимые объекты сцены будут отрисовываться. В плане оптимизации важно, чтоб все объекты отрисовывались одновременно, для этого есть ряд методов (с ростом версии флешплеера их больше). С точки зрения структуры наверное было бы лучше создать отдельный класс, который бы "заведовал" отрисовкой.
В отношении разных можностей компьютеров думаю не стоит придумывать суперсложные алгоритмы - это может замедлить работу. Просто ориентируйтесь на некий минимальный уровень, на определенное значение фпс, при котором будет комфортно пользоваться приложением. А методика подъема фпс к хорошему не приведет. С другой стороны если приложение не будет успевать просчитать или визуализировать данные, то фпс упадет автоматически.

Zebestov 29.08.2010 02:54

Цитата:

Сообщение от TanaTiX (Сообщение 932024)
Не знаю кто как, но думаю, что большинство поддержит, что ставить более 30 fps смысла нет. И не нужно сравнивать контру с флеш-играми.

ставлю загадочные 31 — это больше 30 :D смысл? науке это доподлинно неизвестно.

in4core 29.08.2010 03:35

ставлю 33 всегда. приятнее работать

TanaTiX 29.08.2010 05:16

31 ставят т.к. есть мнение что по (опять же) загадочным причинам это быстрее. ИМХО бред. А по стандартам кинематографа (одному из) - все-таки 30. Кто-то ощущал разницу между 30 и даже 33?
in4core, почему 33? Лень до нуля тянуться? :)
Zebestov, хотел написать про 31, но было лениво объяснять причину необъяснимого. Все-таки пришлось... :)


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

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