|
Модераторы: Rickert, Alexeis, BorisVorontsov |
|
Oldshelf |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 157 Регистрация: 22.4.2018 Репутация: нет Всего: 4 |
Заметил небольшое торможение в своих программах на OpenGL. Проявляется на современной видеокарте NVidia. Причём сцена строится вроде бы нормально, небольшой фриз и потом снова нормальный рендеринг. Кажется, дело в вертикальной синхронизации. При любых Sleep'ах между SwapBuffers даётся стабильно 60 FPS. Пробовал подключать заголовочный файл "wglext.h" и использовать этот код:
Но эффекта не получил. Причём пример работает, при установке wglSwapIntervalEXT(2) - частота кадров снижается вдвое, но выше 60 не поднимается, даже со Sleep (1) или usleep (1)... Отключил Sleep вообще и видеокарта выдала 800-1000 FPS без замедлений. Вопрос. Можно ли избавиться от едва заметных подвисаний, не используя ресурсы на полную? |
|||
|
||||
Oldshelf |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 157 Регистрация: 22.4.2018 Репутация: нет Всего: 4 |
Проблема давно известна и называется "stuttering". В случае с однопоточным приложением решается установкой wglSwapIntervalEXT(1), отключением Sleep'ов и подстройки перемещений/вращений в зависимости от FPS (вместо этого нужно указать постоянный коэффициент, зависящий от частоты обновления дисплея).
|
|||
|
||||
Вы можете найти полезным что... | |
|
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |