Если коротко:

Foveated rendering снижает детализацию на периферии изображения, чтобы уменьшить нагрузку на GPU. Фиксированный режим держит область высокого качества в центре кадра, а динамический перемещает её вслед за взглядом пользователя. Эффект проверяют на целевой гарнитуре: выигрыш зависит от runtime и узкого места проекта, а границы зон могут стать заметными.

Foveated rendering в VR — способ уменьшить нагрузку на рендеринг, снизив детализацию в менее важной части изображения. Самая качественная зона остаётся в центре кадра или там, куда смотрит пользователь, а периферия отрисовывается проще. Идея опирается на особенности зрения: человек не воспринимает весь угол обзора с одинаковой детализацией.

Результат зависит от узкого места проекта, поддержки гарнитуры, runtime и шейдеров. Сначала найдите ограничение через профилирование VR-проекта, затем проверяйте режим в повторяемой сцене.

Два режима, которые нельзя путать

Режим Где остаётся максимальная детализация Что нужно
Fixed foveated rendering В заранее заданной центральной зоне Поддержка платформы; трекинг взгляда не обязателен
Eye-tracked foveated rendering В области, куда пользователь смотрит Трекинг взгляда, совместимые runtime и приложение

В фиксированном варианте граница качества не перемещается: центральная часть изображения остаётся самой детальной, а ближе к краям разрешение или плотность обработки снижается. Этот способ проще внедрить, но при взгляде в сторону пользователь может заметить переход.

В варианте с eye tracking система переносит высокодетальную зону вслед за взглядом. Для этого мало иметь гарнитуру с камерами для глаз: данные должны быть доступны через выбранный runtime, а приложение должно использовать поддерживаемый путь. Поэтому формулировка «в шлеме есть eye tracking» не равна «в конкретной игре включится динамическая фовеация».

Что именно экономит технология

В VR изображение готовится для двух глаз, а высокая частота кадров чувствительна к цене материалов, геометрии и экранных эффектов. Более простая обработка периферии оставляет GPU больше времени на важную область. Unity связывает этот подход с variable rate shading и variable rate rasterization. Технология не заменяет работу с draw calls, логикой или физикой: сперва нужно убедиться, что ограничение действительно на GPU.

Проверка совместимости

Неравномерная плотность меняет работу экранных координат и выборки текстур. Стандартные URP-шейдеры учитывают этот сценарий, а собственные экранные эффекты, материалы и постобработка нужно проверять отдельно. Текст, тонкие линии и критические подсказки на периферии тоже проверяют в гарнитуре.

OpenXR задаёт общий способ взаимодействия с runtime, но не обещает одинаковые возможности на всех устройствах. В реестре Khronos есть конфигурации и расширения, связанные с foveated rendering; приложение сначала выясняет поддержку текущей системы. Подробнее о роли стандарта — в материале «Что такое OpenXR».

Поддерживаемые режимы, движки и версии различаются. Инструкцию из чужого проекта нельзя переносить без проверки устройства, плагина и сборки.

Короткий порядок проверки

  1. Зафиксируйте целевую гарнитуру, runtime, версию движка и режим рендеринга.
  2. Снимите исходный замер на тяжёлой, но повторяемой сцене.
  3. Включите только поддерживаемый для этой связки режим и повторите тот же маршрут.
  4. Проверьте периферию, текст, пользовательские шейдеры и резкие переводы взгляда.
  5. Оставляйте настройку, только если выигрыш измерим и не ухудшает задачу пользователя.

Foveated rendering полезен, когда он соответствует устройству, runtime, движку и сцене. Результат подтверждает замер на устройстве.

Поделиться:TelegramВКонтакте

Источники

  1. Unity Manual — Foveated rendering
  2. VIVE OpenXR — Foveated Rendering for Unreal Engine
  3. Khronos OpenXR Registry — XrViewConfigurationType