The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan "
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для слежения за появлением новых сообщений в нити, нажмите "Проследить за развитием треда".
. "Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan " +/
Сообщение от n00by (ok), 03-Фев-24, 11:56 
Благодарю за подробное описание.

> чтобы игрок не замечал дискретного шага времени.
> Обычно это 30 Гц. Связь с частотой монитора косвенная:
> оба пытаются подстроиться под "частоту обновления" человеческого глаза (24-25Гц).

Вот в первом предложении цитаты - ключевой момент.
Ставится целью удовлетворить пользователя, вписать происходящее в виртуальном мире игры в особенности восприятия игрока. Далее программисты эту задачу решают. Кто-то справляется, согласовав модель с картинкой и ожиданиями пользователя. У других ТП начинает имитировать деятельность: подкрутите то, потом это.

> Связь между подсистемами косвенная, на уровне планировщика потоков ОС.

А с этим на "дефолтной" игровой платформе свои нюансы. Квант по умолчанию 15 мс, а способ изменить такое недоразумение Микрософт документировала лишь лет через 10 после начала массового использования. Без вызова timeBeginPeriod(1) случалась дилемма: Sleep(1) приводит к пропуску кадра, а без него загрузка 100%.

> Если вызывать подсистемы последовательно в одном цикле, то добиться фиксированной частоты
> затруднительно. То время на себя перетянет физика, то графика. То динамичная
> сцена замирает в ожидании окончания построения видеокадра (в теневом буфере -
> при двойной буферизации), то картинка замирает в ожидании пересчета всего мира.
> Тогда подсистемы нужно делать с плавающим кадром, с интерполяцией по переменной
> величине времени между кадрами (deltaTime) для каждой подсистемы соответственно. Но у
> плавающего кадра свои проблемы. А в век многоядерных всего-и-вся это как-то
> совсем нерационально.

Так первые шутеры возникли задолго до многоядерности. Там разносить по потокам было чревато потерями на лишние переключения контекста. Для дублирования данных было мало памяти. Ждать синхроимпульс в DX7 - 100% загрузка процессора, насколько помню. Тогда отключение VSync, наверное, действительно имело смысл, а с тех пор обросло легендами и мифами.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan , opennews, 01-Фев-24, 22:46  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру