Термины XR: runtime, tracking и действия
Практические различия между устройством, API, pose, tracker, картой и фокусом.
Термины ниже помогают понять настройки и причины отказа XR. Они не означают, что все перечисленные возможности доступны на каждом устройстве.
Устройство, API и runtime
| Термин | Практический смысл |
|---|---|
| XR | Общее обозначение приложений с отслеживаемым пространством и XR-устройствами |
| VR | Виртуальное окружение вместо обычного вида реального мира |
| AR | Виртуальные объекты вместе с видимым реальным окружением |
| MR | Термин для смешанных сценариев; сам по себе не название API или гарантированной функции |
| HMD | Устройство на голове пользователя; его наличие не подтверждает 6DoF или hand tracking |
| OpenXR | API взаимодействия приложения с XR runtime |
| OpenXR runtime | ПО, обслуживающее устройство, сеанс, tracking и вывод; это не папка Runtime движка |
| XRInterface | Реализация XR-интерфейса в движке; регистрация интерфейса не означает успешную инициализацию |
Passthrough показывает реальное окружение через доступный устройству способ вывода. Это не то же самое, что tracking рук, реконструкция комнаты или пространственные якоря: для каждой функции нужна отдельная поддержка. WebXR — браузерный API; его настройки не заменяются включением OpenXR.
Положение и tracking
Pose — положение и ориентация относительно выбранного пространства. В OpenXR позиция выражается в метрах. Числовой transform сам по себе не подтверждает актуальные данные tracking. Определение XrPosef.
3DoF отслеживает ориентацию по трём осям. 6DoF добавляет перемещение по трём осям. Поворот головы не доказывает, что отслеживается её линейное перемещение; видимая модель руки не доказывает отслеживание кисти.
Tracker — именованный источник отслеживаемых данных. В стандартной настройке Tracker контроллера — left_hand или right_hand; Pose выбирает данные внутри tracker, например grip. Это не имя Entity и не BindingPath кнопки. Проверяйте наличие tracking, прежде чем использовать положение как действительное.
Reference space задаёт систему отсчёта XR. VIEW связано с точкой зрения, LOCAL — с локальным началом, STAGE — с определённой runtime площадкой; доступность и настройка пространства проверяются отдельно. XROrigin3D размещает получаемые XR-данные в игровом мире; он не является физическим датчиком. Пространства OpenXR.
WorldScale связывает метры XR с масштабом игрового мира. Не исправляйте несоответствие масштаба постоянным добавлением смещения к отслеживаемой камере. Recenter меняет опорное представление пространства; его обработка не равна телепортации персонажа.
Действия и состояние сеанса
| Термин | Отличие |
|---|---|
| Action | Игровое действие, например select; не физическая кнопка |
| Action set | Группа действий, которую runtime может активировать для режима игры |
| Interaction profile | Описание подходящего набора компонентов устройства; не экземпляр контроллера |
| BindingPath | Полный путь компонента, например /user/hand/right/input/select/click |
| Initialized | Интерфейс инициализирован; это ещё не фокус и не доступность всех действий |
| Focused | Сеанс имеет XR-фокус для взаимодействия |
| Visible | Изображение видно, но фокуса XR-ввода нет |
| Haptic | Запрос обратной связи устройству; ресурс параметров ещё не является отправленным импульсом |
Настройка пути или наличие SDK-класса не создаёт совместимое устройство. Пример разделения ресурсов и runtime-состояния есть в карте действий, обработка отказа и фокуса — в стартовом контроллере.
Foveation уменьшает работу рендеринга в менее важных областях изображения. Она может быть фиксированной; eye tracking не появляется от одного включения VRS. Применение и компромисс качества описаны в руководстве VRS.
Ресурсы, настройка рига и ветки отказа проверены без гарнитуры в связанных примерах. Термины и возможности runtime сверены с исходниками и первичной документацией; это не подтверждение tracking или XR-вывода на конкретном устройстве.