![]() |
Оптимальные настройки обновления экрана...
В целях изучения as пишу небольшую игру, и у меня встала задача о "плавной" анимации. То есть мне хотелось бы добиться наибольшей частоты кадров для более приятного восприятие игры глазом. На сколько я заметил в трехмерные игры наиболее комфортно играть с частотой от 60 кадров в секунду. Если играть например в какую-нибудь CS1.6 с частотой кадров при которых просматривают фильмы ~ 25 кадров в секунду, то в игре это будет сразу заметно и будет доставлять некий дискомфорт.
Допустим я хочу добиться во флеше этих 60 кадров в секунду, соответственно я задаю stage.frameRate = 60 , но от этого не будет пользы если объекты в игре будут двигаться не каждый кадр. Поэтому интервал таймера, по событию которого двигаются объекты, должен быть установлен в 16мс, что примерно даст 60 событий в секунду. Но все это в теории, поскольку мне кажется, что не на всякой машине все объекты успеют переместиться и отрисоваться за 16мс. Так вот, хотелось бы узнать какие использовать оптимальные настройки обновления экрана и игрового таймера, которые подойдут для большинства случаев? |
Не знаю кто как, но думаю, что большинство поддержит, что ставить более 30 fps смысла нет. И не нужно сравнивать контру с флеш-играми.
|
По моему от 25 до 30 будет достаточно, для динамической игры.
|
Есть кстати вариант обновлять кадры только после окончания рендеринга каждого из них, тогда скорость воспроизведения будет зависеть от нагруженности флешки и оптимальности его кода, но анимация может иногда ускоряться или замедляться, в зависимости от использования флешем ресурсов машины.
В сети есть много решений с динамическим изменением fps. Ссылок не дам, специально их не искал, но раньше несколько раз натыкался на такую инфу. |
Мда и всетаки при перемещении объекта из одной части экрана в другую замечаю что он иногда двигается с еле заметными рывками, но очень раздражающими. Хотя может быть я просто избалован DirectX'ом... Насчет обновления объектов после окончания рендеринга кадра - частота кадров на разных машинах может быть не одинаковой, а скорость анимации должна быть на всех одной и той же. Поэтому придется расчитывать движения объектов исходя из времени прошедшим между сменой кадров, а это на порядок усложнит алгоритмы анимации объектов.
|
Насчет усложнения алгоритмов согласен, но иногда это того стоит))
|
Смена кадров в любом случае будет происходить и все видимые объекты сцены будут отрисовываться. В плане оптимизации важно, чтоб все объекты отрисовывались одновременно, для этого есть ряд методов (с ростом версии флешплеера их больше). С точки зрения структуры наверное было бы лучше создать отдельный класс, который бы "заведовал" отрисовкой.
В отношении разных можностей компьютеров думаю не стоит придумывать суперсложные алгоритмы - это может замедлить работу. Просто ориентируйтесь на некий минимальный уровень, на определенное значение фпс, при котором будет комфортно пользоваться приложением. А методика подъема фпс к хорошему не приведет. С другой стороны если приложение не будет успевать просчитать или визуализировать данные, то фпс упадет автоматически. |
Цитата:
|
ставлю 33 всегда. приятнее работать
|
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
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.