За 5 лет мы выполнили более 20 интеграций Eye Tracking в VR-проекты — от прототипов на Quest 3 до корпоративных решений на Varjo XR-3. Основная боль клиентов: GPU-бюджет жёсткий, а Fixed Foveated Rendering экономит всего 10–15%. Dynamic FFR с Eye Tracking выжимает до 25% производительности. Но подключить SDK и просто считывать gaze direction мало: raw data зашумлена, требует фильтрации, а для каждого типа интеракции нужна своя логика. Наши инженеры прошли сертификацию Meta XR и OpenXR, что гарантирует стабильную работу на всех поддерживаемых гарнитурах.
Платформы и SDK
Meta Quest Pro / Quest 3
Meta предоставляет Meta Movement SDK (ранее OVRPlugin). Компонент OVREyeGaze и низкоуровневый OVRPlugin.GetEyeGazesState() позволяют получить direction gaze, eye openness и pupil dilation. Точность после калибровки — ±1.5–3°. Перед использованием нужно запросить permission через OVRPermissionsRequester.
OpenXR
Кросс-платформенный путь через расширение XR_EXT_eye_gaze_interaction. В Unity подключается через XR Interaction Toolkit 2.3+ — GazeInteractor и GazeInteractable. Один код для всех гарнитур, поддерживающих OpenXR: от Quest Pro до Varjo. Это снижает стоимость поддержки и окупается на мультиплатформенных проектах.
Tobii XR SDK
Для старых PC-гарнитур (HTC Vive Pro Eye) используется Tobii XR SDK. Официальный Unity пакет, но интеграция через Windows Mixed Reality. Требуется отдельная настройка калибровки.
Сравнение платформ
| Платформа | SDK | Точность | FFR поддержка | Управление взглядом |
|---|---|---|---|---|
| Meta Quest Pro | Meta Movement | ±1.5–3° | Dynamic FFR (FB_foveation) | GazeInteractor Oculus |
| Quest 3 | Meta Movement | ±2–3° | Dynamic FFR (FB_foveation) | GazeInteractor Oculus |
| Varjo XR-3 | OpenXR | ±0.5–1° | Foveated rendering | OpenXR Gaze |
| Pico 4 Pro | PICO Motion | ±1.5–2° | Fixed/FFR | PICO Gaze |
| PSVR 2 | Sony SDK | ±1–2° | Dynamic FFR | Sony Eye Tracking |
Сравнение методов фильтрации gaze data
| Метод | Задержка | Плавность | Сложность реализации |
|---|---|---|---|
| Экспоненциальный фильтр | ~5 мс | Средняя | Низкая |
| Калмановский фильтр | ~10 мс | Высокая | Высокая |
| One-Euro filter | ~7 мс | Высокая | Средняя |
| Без фильтрации | 0 мс | Низкая (мерцание) | Нет |
Как работает EyeTracked FFR?
Fixed Foveated Rendering (FFR) рендерит края в пониженном разрешении, но центр фиксирован. Dynamic FFR смещает высококачественную зону вслед за взглядом. На Quest 3 это даёт прирост 15–25% GPU — разница между 72 и 90 FPS в тяжёлых сценах.
Подключение в Unity через OpenXR: включить XR_FB_foveation и XR_FB_foveation_vulkan. Для Meta SDK — OVRManager.eyeTrackingEnabled = true и OVRManager.fixedFoveatedRenderingLevel в паре с OVRPlugin.useDynamicFixedFoveatedRendering. Dynamic FFR превосходит Fixed FFR на 20–30% по экономии GPU, сохраняя качество в точке взгляда.
Почему gaze cursor нужно фильтровать?
Raw gaze data содержит высокочастотный шум ±0.5–1°. Без фильтрации объект под взглядом мерцает selected/unselected. Решение: экспоненциальный фильтр.
// Экспоненциальный фильтр для gaze cursor smoothedGaze = Vector3.Slerp(smoothedGaze, rawGaze, smoothFactor * Time.deltaTime); // smoothFactor ≈ 10–15 Дополнительно — dwell time activation: объект активируется, если взгляд удерживается дольше 0.5–1.5 секунд. Визуальный индикатор — arc/ring вокруг объекта.
Разрешения и приватность
Eye Tracking требует специальных permissions в Meta Developer Hub. Для публикации в Meta Store — отдельный policy review: приложение не должно передавать raw eye data на сервер без явного согласия пользователя. В Unity обрабатывать OVRPermissionsRequester и проверять OVRPlugin.eyeTrackingEnabled. Для корпоративных решений — отдельная юридическая документация.
Типичные проблемы калибровки
- Смещение из-за неправильной посадки гарнитуры
- Плавающая точность после 30 минут использования (требуется рекалибровка)
- Конфликт с разными SDK (например, Tobii и OpenXR одновременно)
Что входит в работу
- Анализ требований и выбор оптимального SDK
- Настройка Eye Tracking на целевой гарнитуре
- Реализация gaze cursor с фильтрацией и dwell time
- Интеграция Dynamic Foveated Rendering (если поддерживается)
- Сбор аналитики внимания (heatmaps, gaze duration)
- Документация по API и обучение команды
- Поддержка после релиза (1 месяц)
Процесс и сроки
- Аналитика: определяем платформу, SDK, необходимые разрешения (1–2 дня).
- Проектирование: выбор подхода к фильтрации и интеракции, прототипирование (2–3 дня).
- Реализация: интеграция SDK, настройка FFR, gaze-логика (4–8 дней).
- Тестирование: проверка точности, замеры FPS, юзабилити (2–3 дня).
- Деплой: сборка для target-платформы, передача исходников и документации.
Ориентировочные сроки: базовая интеграция (gaze cursor + selection) — 2–4 рабочих дня; полная (Dynamic FFR + аналитика) — 1–2 недели. Стоимость зависит от сложности и требуемого функционала — свяжитесь с нами для оценки вашего проекта. Инвестиции окупаются за счёт повышения производительности и снижения затрат на адаптацию приложения под разные гарнитуры.
Получите консультацию по вашему VR-проекту: проанализируем требования и предложим оптимальное решение с учётом вашего стека и бюджета. Наши инженеры имеют 5+ лет опыта и сертификацию Meta XR.






