Поделиться через


Основная идея

Системы отслеживания головы в виртуальной реальности "изнутри" — это новая и очень интересная технология. Благодаря их сильным сторонам они кажутся волшебством. Но у них есть и недостатки.

Системы отслеживания головы "изнутри", как в HoloLens, хорошо подходят для того, чтобы узнать, где находится голова относительно близлежащих объектов в физическом мире. Аналогично, они хорошо определяют, где находятся объекты физического мира относительно головы.

Но они не так хорошо определяют, где находится голова относительно того, где она была ранее. Когда голова перемещается из точки A в точку Б, система отслеживания, как правило, немного ошибается при оценке пройденного расстояния. Это означает, что система отслеживания неправильно определит расстояние между точками A и Б. Этот результат часто называется "проблемой масштабирования".

Затем, когда голова перемещается из точки Б обратно в точку A, пройденное ей расстояние снова будет определено неправильно. Значение будет достаточно близко к правильному, но заметно отличаться от него. Этот результат также называется "дрейфом".

Эти проблемы подробнее обсуждаются в этих часто задаваемых вопросах.

Суть в том, что World Locking Tools может устранить эти проблемы. В последнем случае World Locking Tools может распознать, что голова снова возле точки А на основе физических объектов вокруг точки А и исправлять координаты головы.

В первом случае задачи масштабирования World Locking Tools может принять входные данные из приложения, чтобы понять, где точка Б находится относительно точки A, и исправить пройденное расстояние.

Чтобы понять, каким образом World Locking Tools решает эти проблемы, полезно усвоить некоторые дополнительные термины.

Эластичные пространства и пространства, привязанные к миру

Эластичное пространство

В основе World Locking Tools лежит подсистема оптимизации. Она принимает в качестве входных данных граф активных в настоящий момент пространственных привязок в мире вместе с текущими данными отслеживания головы. Эти входные данные часто называются в этой и связанной документации и коде эластичным состоянием. Оно так называется потому, что постоянно меняется. Пространственные привязки всегда находятся в движении относительно друг друга и в пределах собственного эластичного координатного пространства в ходе того, как их состояние уточняется на основе поступающих с датчика данных.

Эластичное пространство — единственная система координат, которая ранее была доступна для разработчиков приложений смешанной реальности.

Пространство, привязанное к миру

Из эластичного состояния подсистема World Locking Tools рассчитывает устойчивое пространство, которое оптимально сопоставляет эластичное пространство с физическим миром. Это устойчивое пространство называется пространством, привязанным к миру, а его полное состояния — замороженным состоянием.

Важно понимать, что и эластичное пространство, и пространство, привязанное к миру, являются жестко зафиксированными декартовыми системами координат и фактически отличаются друг от друга только поворотом и смещением. Однако преобразование из эластичного пространства в пространство, привязанное к миру, меняется в каждом кадре, так как обрабатываются новые данные датчика.

Различие между двумя пространствами состоит в том, что, несмотря на то, что входящие данные датчика могут уточнять (т. е. перемещать) пространственные привязки относительно друг друга и головы в эластичном пространстве, для уменьшения таких перемещений выбирается пространство, привязанное к миру. Это различие позволяет объектам сцены, помещенным в пространство, привязанное к миру, выглядеть привязанными к физическому миру без привязки к отдельным пространственным точкам. В каждом кадре подсистема рассчитывает пространство, привязанное к миру, в котором базовые привязки являются наиболее стабильными. То есть пространство, привязанное к миру, в котором виртуальные объекты остаются оптимально согласованными с объектами реального мира.

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

Сохраняемость

Замороженное состояние можно при необходимости сохранять в разных сеансах. Существуют ручные элементы управления для сохранения текущего состояния и для загрузки из сохраненного состояния. Кроме того, флаги в World Locking Tools Manager включают или отключают автоматическое регулярное сохранение замороженного состояния и автоматическую загрузку последнего сохраненного состояния при запуске.

Использование этих функций позволяет сканировать и стабилизировать реальное пространство, чтобы они сохранялись в течение нескольких сеансов.

Кроме того, если для сопоставления смоделированного пространства в реальном времени используется функция Space Pin, сопоставление можно сохранить. В этом случае после первоначального сеанса сопоставления для настройки Space Pin с целью сопоставления смоделированного пространства с физическим пространством последующие сеансы могут автоматически загружать смоделированную сцену в физическое пространство с сопоставленными виртуальными и реальными объектами.

Дополнительные сведения см. в статьях о сохраняемости и компоненте Space Pin.

Предположения о перемещении камеры

Небольшим, но важным примечанием является то, что путем применения преобразования исправления к камере собственная стационарная система координат Unity преобразуется в оптимальную систему координат, привязанную к миру. Поскольку объекты в сцене не перемещаются, это исправление не мешает моделированию физических законов и другим вычислениям динамики.

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

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

Кроме того, MRTK уже учитывает необходимость таких преобразований, поэтому для пользователей MRTK все будет работать без каких-либо дополнительных действий.

Для пользователей, которым требуется прямой доступ к системам более низкого уровня, которые не могут воспользоваться МРТК, предоставляются примеры для создания адаптеров. Приведем несколько примеров:

См. также