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

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

Страницы: 14 5 6 79 Следующая »
#60
15:38, 8 ноя. 2011

Mikle
>На DirectX9 это перестало помогать, но часто помогает Sleep(0) в цикле рендера.
>моей игре AoS2 и это не помогало, пока я не подключил звук (DirectSound), и баг пропал сам собой, я пробовал выключать звук - опять рывки
Может подключение DirectSound подключает мультимедийные таймеры и калибрует точность системного таймера до нормальной величины :D (что влияет на минимальное время возвращения управлению потоку после Sleep())?
Хотя sorry, к теме это наверное мало относится...


#61
15:39, 8 ноя. 2011

gkv311
> Может подключение DirectSound подключает мультимедийные таймеры и калибрует
> точность системного таймера до нормальной величины
У меня все замеры времени идут по QueryPerformanceCounter.

#62
16:06, 8 ноя. 2011

Mikle
>У меня все замеры времени идут по QueryPerformanceCounter.

gkv311
>(что влияет на минимальное время возвращения управлению потоку после Sleep())?

#63
16:17, 8 ноя. 2011

можно еще попробовать ограничить фпс средствами HGE, не VSync, hge->System_SetState(HGE_FPS, 60);

#64
17:02, 8 ноя. 2011

Opts
> А если при 60 фпс игра тормозит, то как быть? А вот если поставить 300 то всё
> гладко идёт. Оптимизировать под 60?

Прочитал это и заплакал от отчаяния.

.___.

#65
17:03, 8 ноя. 2011

warchief
> Что лучше VSYNC или неограниченное ФПС
Нужно поддерживать оба режима, как VSYNC, так и без. Притом в дебаге режимом по умолчанию лучше использовать: "без вертикальной синхронизации", а в релизе -  с включенным vsync.


Я без возможности включения vsync играть не могу. Сильно раздражают разрывы, впрочем, если бы я о них не знал, то наверное и не замечал бы.

#66
17:21, 8 ноя. 2011

gkv311
> Для дико живых игр и активных игроков может требоваться !!!!!!100-120!!!!!! FPS для достижения наивысших результатов
Где такой монитор найти, чтобы столько был способен отобразить? ЧЯДНТ? У меня 85 Гц частота монитора. И то, есть плавающие жк матрицы с высокой инертностью, где даже те 85 fps будут как 20. 100-120 Гц видел только на старых трубковых мониках.

Кстати, 100 Гц, хуже чем 85 или 120 Гц, тк может появится эффект мигания из-за "совпадения" с частотой мигания лампы освещения: те самые 50 Гц. Это,  конечно, если лампочка соответствующей конструкции.

#67
17:38, 8 ноя. 2011

Lamer007
> 100-120 Гц видел только на старых трубковых мониках.

добро пожаловать в мир 120hz LCD: http://www.viewsonic.com/products/archive/vx2265wm-fuhzion-lcd.htm
хотя большая часть владельцев наверное будет все-таки в 3d очках играть.

Lamer007
> может появится эффект мигания из-за "совпадения" с частотой мигания лампы
> освещения: те самые 50 Гц.

вобще-то мигает с частотой 100Гц, так как за один период синусоида оказывается в нуле два раза. но это решается покупкой нормальных лампочек/светильников.

и я непонял что с чем и на чем должно совпасть. на LCD разве что частота мигания подсветки совпадет.

#68
17:54, 8 ноя. 2011

Lamer007
>Где такой монитор найти, чтобы столько был способен отобразить?
Раньше ЭЛТ были, которые тянули 100-120 Hz в зависимости от разрешения. На некоторых моделях и в некоторых разрешениях можно было и 140 Hz сделать.
Но ЭЛТ вымерли как мамонты, сегодня есть только TFT и AMOLED. Последние (имеют очень малое время отклика) пока крутятся только в мобильных девайсах, поэтому их трогать не будем.

У TFT же есть с этим проблемы - медленные пиксели. Хуже того, пиксели переключаются с разной скоростью в зависимости от нового/старого цвета, и при этом не гаснут совсем (в противовес ЭЛТ)!

С первой проблемой борются технологиями 'компенсации времени отклика' (с дополнительными спецэффектами как side effects),
со второй - иногда пытаются эмулировать поведение ЭЛТ (отключают лампы подсветки на короткие промежутки времени между сменой кадров).
Результаты пока не очень, но тем не менее уже значительное время продаются 120 Hz ЖК мониторы на богомерзких TN+Film матрицах
и позиционируются они как 3D-стерео совместимые для ужасных затворных очков (в противном случае при 60 Hz / 2 = 30 Hz глаза можно быстро убить).
Стерео не стерео, но по обзорам 120 Hz в обычном моно режиме вполне замечаются пользователем (ну во всяком случае теми, кто сравнивал).

>Кстати, 100 Гц, хуже чем 85 или 120 Гц, тк может появится эффект мигания из-за "совпадения" с частотой мигания лампы освещения: те самые 50 Гц.
Ну это уже не ко мне.

#69
17:59, 8 ноя. 2011

Mikle
> дёргается картинка
>На DirectX9 это перестало помогать
timeBeginPeriod
timeEndPeriod
1)Попробуйте через эти (или другие) функции период на минимум поставить (типа 1).
2)Посмотрите: подходящий ли таймер вы используете в игре? Возможно следует использовать другой. Ошибка проявляется в блоке расчетов перемещения объектов на сцене. Просто используется не подходящий или не верно настроенный "тормозной" таймер. А использование DirectSound просто заменяет его на другой или перенастраивает, например тем же timeBeginPeriod.
3)В ХР ещё есть проблема, когда потоки с одного ядра на другое перебрасываются (в ХР они всегда принудительно перебрасывались с определенным периодом), при этом некоторые типы таймеров начинают выдавать немного разное время на каждом ядре. То есть опять же ошибка проявляется на уровне расчетов перемещения объектов на сцене. Вроде в 7ке проблему убрали, но подробностей не знаю, поэтому возможно проблема все же осталась и там.
4)Возможно вам Sleep(0) помогает, тк есть потоки, у коих недостаточный приоритет или по каким-то причинам они не получают управление, но их "отрабатывание" необходимо для завершения рендера кадра.

#70
18:16, 8 ноя. 2011

ITIhonov
> но это решается покупкой нормальных лампочек/светильников.
Уже сказал:
Lamer007
> Это,  конечно, если лампочка соответствующей конструкции.

ITIhonov
> вобще-то мигает с частотой 100Гц
Оговорился. Думал в тот момент про частоту в сети питания в 50 Гц. Хотя, раз на раз не приходится: говорят, частота сеть питания в российских условиях колеблется от 40 до 60 Гц. Так, что если повезет, то на 100 Гц мониторе мигать не будет, но лучше не "рисковать" и ставить 60-75 Гц. В принципе совпадение частоты моника и освещения вполне может способствовать усталости и перенапряжению, не говоря уж об неудобствах.

>на LCD разве что частота мигания подсветки совпадет.
Я про трубчатые говорил (я сам виноват, забыл это упомянуть), хотя может эта проблема и на LCD есть, но я не слышал. Вот gkv311 говорит, что:
> жидкокристаллические иногда пытаются эмулировать поведение ЭЛТ (отключают лампы подсветки на короткие промежутки времени между сменой кадров).
Возможно это верно и для таких мониторов, а не только для трубчатых.

gkv311
> для ужасных затворных очков
А вот мне не нравятся анаглиф (двухцветные) очки. По моему, они портят цветопередачу.

#71
18:22, 8 ноя. 2011

ITIhonov
> Motion blur'а как в реале нет, соответственно при высокой скорости объектов и недостаточном fps они будут "скакать" по экрану с места на место.
Размытие можно реализовать. Это улучшит картину. Смотрел демку Motion blur через Reference Rasterizer (чисто по приколу) с 2ми фпс и смотрелось очень хорошо.

#72
18:52, 8 ноя. 2011

Lamer007
>А вот мне не нравятся анаглиф (двухцветные) очки. По моему, они портят цветопередачу.
Офтоп, но я предпочитаю системы с пассивными поляризационными очками (хотя бы самодельный зеркальный монитор).
Смотреть моргание.... бррр... больше не хочу!

#73
18:58, 8 ноя. 2011

о флейм развели.

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

Если же при 60 кадрах игра не играбельна - кривые руки

#74
19:03, 8 ноя. 2011

Mikle
Точность таймера меняется если использовать present_one. Провалы раз в три кадра случаются, если ГПУ варит медленнее цпу, который забивает буфер команд. По-умолчанию, команды буферизируются на три кадра. То есть по выходу из present с vsync синхры еще не было и так может набить на три кадра, а потом цпу будет ждать ГПУ, пока тот смолотит эти три кадра. Если надо равномерный фпс в этом случае, то добавь query после present и жди его делая getdata flush. Еще можно делать present перед begin render, а не после end.

Страницы: 14 5 6 79 Следующая »
ПрограммированиеФорумГрафика

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