Если коротко:
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».
Поддерживаемые режимы, движки и версии различаются. Инструкцию из чужого проекта нельзя переносить без проверки устройства, плагина и сборки.
Короткий порядок проверки
- Зафиксируйте целевую гарнитуру, runtime, версию движка и режим рендеринга.
- Снимите исходный замер на тяжёлой, но повторяемой сцене.
- Включите только поддерживаемый для этой связки режим и повторите тот же маршрут.
- Проверьте периферию, текст, пользовательские шейдеры и резкие переводы взгляда.
- Оставляйте настройку, только если выигрыш измерим и не ухудшает задачу пользователя.
Foveated rendering полезен, когда он соответствует устройству, runtime, движку и сцене. Результат подтверждает замер на устройстве.