Если коротко:
Motion-to-photon latency обозначает время от движения головы или руки до соответствующего изменения света на дисплее. В задержку входят измерение позы, работа приложения и GPU, compositor, передача кадра и развёртка панели. Сетевой ping описывает только один возможный участок этой цепочки и не показывает полную задержку VR-системы.
Motion to photon latency VR — время от физического движения до соответствующего изменения света на дисплее.
Motion-to-photon latency — время от физического движения головы или руки до появления соответствующего изменения света на дисплее. Это не только время рендера и не сетевой ping. В цепочке участвуют датчики, прогноз позы, игровой цикл, GPU, compositor, передача кадра и развёртка панели.
Этапы задержки
IMU измеряет движение, система объединяет его с другими датчиками и оценивает позу. Приложение строит кадр для прогнозируемого момента показа. GPU завершает рендер, runtime может применить позднюю коррекцию, после чего дисплей физически обновляет пиксели.
Каждый этап занимает время и имеет разброс. Поэтому два одинаковых средних значения могут ощущаться по-разному, если одна система периодически пропускает бюджет кадра.
Связь с частотой обновления
При 90 Гц новый кадр приходится примерно на каждые 11,1 мс, но это не означает общую задержку 11,1 мс. Движение может произойти сразу после выборки, рендер занять несколько этапов, а панель обновляться последовательно.
Повышение частоты сокращает интервал, но увеличивает требования к производительности. Нестабильные 120 Гц могут быть хуже устойчивых 90 Гц.
Прогнозирование позы
Runtime прогнозирует, где окажется голова к моменту показа. Это уменьшает воспринимаемое отставание при плавном движении. Ошибка прогноза возрастает при резкой смене направления, поэтому одна только агрессивная экстраполяция не решает проблему.
Late latching и reprojection обновляют часть преобразований ближе к показу. Они уменьшают отдельные компоненты задержки, но не заменяют своевременный кадр приложения.
PC VR и потоковая передача
В проводном PC VR добавляются драйвер и интерфейс передачи. В беспроводном — кодирование, сеть, буфер и декодирование. Ping до интернета здесь почти не важен; важен локальный путь от ПК до точки доступа и гарнитуры.
Слишком большой буфер делает поток стабильнее, но повышает latency. Настройка всегда балансирует качество, потери и задержку.
Как измерять
Программные оверлеи показывают части конвейера и полезны для сравнения конфигураций. Полное motion-to-photon измерение требует связать физическое движение с изменением света, например внешним датчиком и фотодиодом. Значения из разных инструментов нельзя сравнивать без методики.
Как уменьшать
- удерживать приложение в бюджете кадра;
- устранять пики CPU и GPU, а не только снижать среднее;
- использовать рекомендованный runtime;
- избегать лишних слоёв запуска;
- для wireless VR подключить ПК по Ethernet;
- подобрать кодек и битрейт без переполнения буфера;
- проверять частоту и режим дисплея на устройстве.
Практическую сторону профилирования раскрывает статья оптимизация VR в Unreal Engine.
Итог
Motion-to-photon latency является суммой всей XR-цепочки. Её уменьшают стабильным frame timing, поздним обновлением позы и коротким транспортным путём. Оценивать нужно не одно число из оверлея, а метод измерения, редкие пики и поведение в реальном движении.