Войти
ПрограммированиеФорумГрафика

Что лучше VSYNC или неограниченное ФПС (3 стр)

Страницы: 1 2 3 4 59 Следующая »
#30
19:50, 7 ноя. 2011

Без ограничения фпс: комп шумит. С ограничением: комп не шумит, картинка гарантированно не рвется.
Вся разница.


#31
20:04, 7 ноя. 2011

> Без ограничения фпс: комп шумит
А у некоторых и БП от перегрева уходит в защиту и вырубается. Видел на 3д-марке, gts8800 и старом бп на 450 ватт.

#32
21:10, 7 ноя. 2011

Мне даже с 15-20 FPS играть более-менее комфортно. Тормозов особо и не замечаю.

#33
21:18, 7 ноя. 2011

  Естественно разрабатывать надо с отключенным VSync-ом, потому что тогда сразу видно когда упадёт FPS или хотя бы знать, сколько ещё производительности в запасе. А когда он опустится до 50, то будет уже поздно искать все косяки, придётся воспользоваться профилировщиком, хотя если обо всём узнавать заблоговременно заблоговременно, то этого делать может быть и не придётся.

#34
0:12, 8 ноя. 2011

По тестировал игры.
Эхо печали - 250-310. Причём когда нажимаешь паузу сразу до 800 подпрыгивает, получается что фпс неограниченный.
Именем короля 250-310. В меню тоже держится стабильно 250. Видимо фиксированный.
Star Defender3(4) фиксированный 60 фпс.
Jet N Guns не фиксированный, до 1000 доходит.
Cubium - фикс 60.
Trine к моему удивлению тоже фиксированный 60.
Империя дракона(обычная три в ряд) - 250 - 300. Выше 300 не поднимается.
Суперферма - фиксированный 60.
Небесное такси - фиксированный 60
Герои эллады 3 - 250 - 350. Причём видно на некоторых моментах фпс проседает жёстко, где опять же используется куча спрайтов и distortionmesh. Как какой-то эффект(блеск на окне) сразу на полтинник падает. Выходим в меню там сотня, прыгает от 80 до 120. Но в игре 250 - 350. Думаю что если ей дать 60 то она будет не совсем гладко идти, как хотели преподнести её авторы. Отсюда могу сделать вывод, что у них примерно такая же ситуация как и у меня, пожертвовали производительностью ради красоты.

Не в одной игре указать VSYNC было невозможно, такая опция вообще отсутствовала в настройках.

С BFG не удалось скачать, там у них какой-то менеджер ставится в начале, жесть полная, потыкался пару минут и закрыл. Хотя сказали что скачал 150 метров и даже куда-то поставилось а куда, так и не нашёл. Нафига так извращаться, непонятно.

Больше качать не стал. Но уже видно что некоторые просто забивают на Vsync. Либо ставят ограничение 250-300 для комфортной игры либо действительно рендер тяжёлый и выдаёт такой фпс. Правда непонятно, я когда у себя поставил фиксированный 250, то у меня было ровно 250 ни меньше ни больше. А у них у всех прыгал 240,245,250,249, 255. Т.е. получается, что никакого фикса не было, а реально игра шла на максимуме и из-за тяжёлого рендера был такой низкий фпс?

> Но тогда каким образом вы считаете FPS? Может вы округляете на целую секунду, а на самом деле он скачет как бешеный? Каким образом реализовано ограничение на 60 FPS? Только VSync или ещё что-то?

да я HGE использую, там вообщем-то уже всё до меня сделано, я лишь дёргаю методы соответствующие, а как оно там рассчитывается даже не вникал.

gkv311
>Могу только предположить, что вывод или подгрузка дополнительной графики крайне неравномерны по времени между кадрами, что и приводит визуально к рывкам.
т.е. другими словами если игра идёт плавно при 300 фпс,  то это значит что она должна идти плавно и на 60 фпс? У меня например при 60 фпс заметно становится, что когда мышкой водишь, то корабль ГГ чуть-чуть отстаёт от самого курсора. А когда задаёшь те же 250, тогда быстро реагирует на перемещения.

#35
0:22, 8 ноя. 2011

warchief
> (и я обычно его отключаю - люблю скорость)
Не помню со времен Quake 3 еще игры, где бы высокий ФПС играл роль.

#36
8:49, 8 ноя. 2011

Opts
>>т.е. другими словами если игра идёт плавно при 300 фпс, то это значит что она должна идти плавно и на 60 фпс?
Плавно - да.
>>У меня например при 60 фпс заметно становится, что когда мышкой водишь, то корабль ГГ чуть-чуть отстаёт от самого курсора. А когда задаёшь те же 250, тогда быстро реагирует на перемещения.
А это совсем иная особенность. Когда включен VSync (в случае искусственного занижения FPS эффект будет приблизительно таким же, но зависит собственно от её реализации),
то отрисованному в backbuffer кадру приходится ждать очереди, прежде чем он окажется на экране.

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

Учитывая то, что большинство ЖК мониторов работают на 60 герц, то максимальное время задержки может составлять до 16,6 миллисекунд.
В вашем случае кадр успевает прорисоваться за 3,3 миллисекунды (300 FPS), а значит в самом 'худшем' случае задержка будет около 16,6 - 3,3 = 13,3 миллисекунды,
что может быть действительно не очень приятно.

Один из способов обойти проблему - просчитать среднее время задержки вывода кадра и использовать его для коррекции.
Хотя игроделы может чего более умного скажут.

Когда ограничения FPS нет, то отрисованный кадр тут же отправляется на вывод и поэтому задержки не ощущается, но это приводит к тому, что на экране будет
показана мешанина сразу из нескольких кадров, подготовленных для разных временных отметок (http://www.tweakguides.com/images/GGDSG_19.jpg).

#37
9:56, 8 ноя. 2011

Если на 60 Гц вы видите тормоза, в то время, как игра способна выдавать 300, то это не из-за "Prerender Limit", кажется так назывется. На карточках NVidia я этот параметр ставлю на минимум с помощью RivaTuner, и проблемы уходят. Говорю это, как большой любитель Quake3 и Unreal Tournament99.
Моё мнение - VSync нужну включать, когда без него FPS гарантированно процентов на 30 превышает частоту монитора.

#38
10:38, 8 ноя. 2011

gkv311
> Плавно - да.
и вы уверены на сто процентов, что даже при тяжёлом рендере (около 250 активных спрайтов на экране от 8x8 до 256x256) не должен вызывать рывки в движении вражеских самолётов по своей траектории? А это реальный баг в коде передвижения?

#39
11:05, 8 ноя. 2011

Opts
> и вы уверены на сто процентов, что даже при тяжёлом рендере (около 250 активных
> спрайтов на экране от 8x8 до 256x256) не должен вызывать рывки в движении
На какой видеокарте? Разве что на встроенной офисной.
Только что проверил на Intel G33/G31 Express - 256 спрайтов, ВСЕ 256*256 - 45 fps. Причём без оптимизации альфатестом, чистый альфабленд.

#40
11:18, 8 ноя. 2011

Opts
>и вы уверены на сто процентов, что даже при тяжёлом рендере (около 250 активных спрайтов на экране от 8x8 до 256x256) не должен вызывать рывки в движении вражеских самолётов по своей траектории?
Ну если FPS ровно 60 и никаких пропусков и провалов (то есть нагрузка равномерна), то движения должны быть относительно плавными.

Конечно в некоторых случаях для плавности необходима более высокая частота (к примеру 24 кадров в секунду в кино недостаточно для быстрой панорамы,
что иногда бросается в глаза), но я сомневаюсь, что это именно тот случай.

>А это реальный баг в коде передвижения?
По поводу того, где именно баг ничего сказать не могу - это всего-лишь мои предположения.
Я рассуждаю с точки зрения непрерывного 3D-рендеринга по шкале времени в целом, а не о конкретном движке или приложении.
Поэтому возможно не стоит очень глубоко влезать в эти дебри, особенно если они мало касаются вашего кода, а использовать более простое обходное решение проблемы
(если оно вас устраивает).

Chipmunk
> Без ограничения фпс: комп шумит
Кстати на счёт 'правильности' ограничения FPS, есть ещё ноутбуки, пользователи которых не в восторге, когда их батарейка тает на глазах от запущенного приложения...
Хотя при большом желании на эти жалобы тоже можно забить...

#41
12:04, 8 ноя. 2011

Opts
если двигать объекты по формуле pos += velocity * delta * direction;, где delta = (current_time - last_time), а не const delta = ...;, то для плавности в большинстве случаев достаточно 30 фпс, и оптимизировать игру под конкретный FPS вряд ли нужно, скорее нужно чтобы игра хорошо бегала с включенным VSync

#42
13:10, 8 ноя. 2011

> Что лучше VSYNC или неограниченное ФПС

Лучше fps ограниченный, но не VSYNC-ом.
После долгих проб и ошибок, в своих программах ограничиваю fps банальным GetTicksCount.

void render()
{
DWORD ticks = GetTicksCount();

// тут вывод всей графики

while (GetTicksCount()-ticks < 10) Sleep(1);
}
Эффект двусторонний:
При мощной видеокарте или малой нагрузке лишней работы не выполняется.
При большой загруженности ограничение снимается, игра не дёргается как от VSYNC.

#43
13:17, 8 ноя. 2011

bool
> то для плавности в большинстве случаев достаточно 30 фпс

нижняя планка fps все зависит от скорости движения объектов на экране. Motion blur'а как в реале нет, соответственно при высокой скорости объектов и недостаточном fps они будут "скакать" по экрану с места на место. А это нифига не айс, и если даже визуально этого не отражаешь в быстрых шутерах это видно по k/d ratio :)

#44
13:25, 8 ноя. 2011

Mikle
> На какой видеокарте?
видеокарту не помню, но 8 месяцев назад мой ноутбук позиционировался как игровой.

>Только что проверил
вы ещё забыли добавить два бэка в размере 1024/768, плюс каждый спрайт имеет рандомную скорость угол и масштаб.

Вообщем из всего этого я сделал вывод. Что втихаря поставить 300, возможно это и неправильно, но как показал тест, я не один такой буду, а если на тестировании издатель вдруг предъявит претензии на этот счёт, тогда и задумаюсь об 60 фпс и всякие Vsync-ки

Страницы: 1 2 3 4 59 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.