Если коротко:
Репроекция преобразует предыдущий кадр с учётом свежей позы головы или синтезирует промежуточное изображение, когда приложение не успевает отрисовать новое. Rotational timewarp корректирует поворот, а motion reprojection пытается учитывать движение сцены. Метод уменьшает рывки, но может создавать двоение и деформации, поэтому не заменяет устойчивую производительность.
Reprojection VR обновляет или синтезирует изображение, когда приложение не подготовило полноценный свежий кадр.
Репроекция помогает VR-системе показать новый кадр, когда приложение не успело полностью его отрендерить. Runtime берёт предыдущий результат, учитывает более свежую позу головы и преобразует изображение к моменту вывода. Это снижает видимое отставание, но не восстанавливает всю информацию о движущейся сцене.
Rotational timewarp
Самый надёжный случай — коррекция поворота головы. Известный кадр можно повернуть ближе к новой ориентации. По краям иногда не хватает пикселей, но мир остаётся стабильнее, чем при показе старой позы.
Поступательное движение сложнее: объекты имеют разную глубину, и один плоский кадр не содержит всё, что откроется из новой точки.
Motion reprojection
Когда приложение выдаёт, например, половину целевой частоты, runtime может синтезировать промежуточные кадры по движению и глубине. Названия отличаются: motion smoothing, spacewarp и другие технологии решают близкую задачу разными методами.
Система особенно заметна на движущихся руках, тонких линиях и объектах перед контрастным фоном. Там появляются двоение, волны или разрывы.
Почему режим включается
Причина — приложение не укладывается в бюджет кадра. При 90 Гц доступно около 11,1 мс на цикл. Если нагрузка стабильно выше, runtime выбирает запасной режим. Редкие пики и постоянная половинная частота ощущаются по-разному.
Оверлей производительности поможет отличить CPU-bound от GPU-bound. Снижение разрешения полезно только во втором случае.
Это ошибка или функция
Репроекция является штатной защитой комфорта, а не признаком поломки. Но приложение не должно полагаться на неё как на бесплатное удвоение FPS. Синтезированный кадр не знает будущего состояния игры и создаёт артефакты.
Для спокойного симулятора устойчивый режим половинной частоты может быть приемлем. Для быстрых рук, прицела и интерфейса артефакты сильнее.
Как уменьшить зависимость
- снизить разрешение или тяжёлые эффекты;
- проверить частоту дисплея;
- устранить пики CPU;
- закрыть фоновые оверлеи;
- использовать актуальный runtime и драйвер;
- тестировать одну сцену после каждого изменения.
Общая цепочка задержки описана в статье motion-to-photon latency.
Как распознать артефакт
Двигайте контроллер поперёк контрастного фона. Двойной контур или желеобразное искажение при стабильном положении мира характерны для синтеза движения. Если весь мир дёргается вместе с головой, ищите потерю кадров или трекинга.
Итог
Репроекция обновляет старый кадр под более свежую позу и при необходимости создаёт промежуточное изображение. Она полезна как страховка, но не заменяет производительность приложения. Оценивать следует стабильность, тип артефактов и конкретный runtime, а не только индикатор «включено».