Системы координат

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


Поддержка устройств

Компонент HoloLens (1-го поколения) HoloLens 2 Иммерсивные гарнитуры
Стационарная рамка ссылки ✔️ ✔️ ✔️
Присоединенная рамка ссылки ✔️ ✔️ ✔️
Промежуточный кадр ссылки Функция пока не поддерживается. Функция пока не поддерживается. ✔️
Пространственные привязки ✔️ ✔️ ✔️
Пространственное сопоставление ✔️ ✔️
Интерпретация сцены ✔️

Масштабирование возможностей смешанной реальности

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


Масштабирование работы Требования Пример интерфейса
Только ориентация Ориентация гарнитуры (с согласованием по мере падения) 360 ° Video Viewer
Установленный масштаб Выше и по положению гарнитуры на основе нулевой должности Игра по игре или симулятору свободного пространства
Фиксированное масштабирование Выше и Начало временного этажа Игра по действию, в которой вы утка и осветление на месте
Комната — масштабирование Над многоугольником плюс границы этапа Игра головоломки, на которой можно проанализировать головоломку
Масштаб мира Пространственные привязки (и обычно пространственное сопоставление) Игра с противниковами, поступающими от реальных стен, таких как робораид

Ниже приведена работа над моделью "Nested куклы". основной принцип разработки для Windows Mixed Reality — это заданная гарнитура, которая поддерживает приложения, созданные для масштабирования целевого интерфейса, и все меньшее масштабирование:


Отслеживание 6DOF Определенное основание Отслеживание 360 ° Определенные границы Пространственные привязки Максимальный опыт работы
Нет - - - - Только ориентация
Да Нет - - - Расположена
Да Да Нет - - Вперед
Да Да Да Нет - Стоящее 360 °
Да Да Да Да Нет Комната
Да Да Да Да Да Реального

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

Пространственные системы координат

Все приложения трехмерной графики используют декартовые системы координат по отношению к положениям и ориентациям виртуальных объектов. Эти системы координат устанавливают три перпендикулярных оси, а также положение объектов: ось X, Y и Z.

В смешанной реальностиваши приложения являются основанием для виртуальных и физических систем координат. Windows вызывает систему координат, которая имеет реальное значение в физическом мире — пространственной системе координат.

Пространственные системы координат выражают значения координат в метрах. Это означает, что объекты, размещенные на двух единицах в оси X, Y или Z, будут отображаться на 2 метрах друг от друга при визуализации в смешанной реальности. Зная это, можно легко визуализировать объекты и среды в реальном масштабе.

В общем случае Декартовая система координат может быть либо правой, либо левой. пространственные системы координат на Windows всегда являются верными. это означает, что положительные точки на оси X расположены вправо, а положительная ось Y — вверх (выровнять по тяжести) и положительные точки по оси Z.

В обоих видах систем координат положительная ось X направлена вправо, а положительная точка на оси Y вверх. Разница заключается в том, что положительные точки оси Z отходят от вас или от вас. Помните, в каком направлении положительные точки оси Z, нажимая пальци в левой или правой руки в положительном направлении X и обведя их положительным направлением по оси Y. Направление точек бегунка (в сторону или вдали от вас) является направлением положительных точек на оси Z для этой системы координат.

Создание интерфейса, поддерживающего только ориентацию, или с возможностями масштабирования

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

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

Стационарная рамка ссылки

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

Для современных возможностей в игровых механизмах, таких как Unity, стационарный кадр Reference определяет «источник мира». Объекты, размещенные в определенной мировой координате, используют стационарную рамку ссылки для определения их положения в реальном мире с использованием тех же координат. Содержимое, которое остается в мире, даже при обходе пользователем, называется содержимым, заблокированным в мире .

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

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

Присоединенная рамка ссылки

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

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

Создание фиксированного масштаба или возможностей для масштабирования комнаты

Чтобы не выходить за пределы установленного масштаба на иммерсивное гарнитуру и создать фиксированный интерфейс, вы можете использовать промежуточный кадр справки.

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

Промежуточный кадр ссылки

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

Границы этапа

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

Так как в качестве промежуточного фрейма ссылки предоставляется единая фиксированная система координат, в рамках которой можно разместить содержимое, относительное по полу, это самый простой путь для переноса приложений в фиксированном масштабе и размещения на уровне комнаты, разработанных для головных телефонов Virtual Reality. Однако, как и в случае с этими платформами VR, единая система координат может стабилизировать содержимое только на расстоянии 5 метров (16 нижних), прежде чем эффекты ARM приведут к значительному смещению содержимого из центра, так как система корректируется. Чтобы выйти за пределы 5 метров, требуются пространственные привязки.

Создание возможностей для мирового масштабирования

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

Почему невозможно использовать одну жесткую систему координат за 5 метров

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

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

Например, гарнитура в настоящее время может считать, что два расположения в мире не соблюдаются на 4 метрах, а затем повышены, чтобы понять, что расположения на самом деле 3,9 метров друг от друга. Если эти голограммы изначально были размещены на 4 метрах друг за друга в одной жесткой системе координат, один из них бы затем всегда отображался 0,1 метров из реального мира.

Пространственные привязки

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

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

Такая непрерывная коррекция пространственных привязок на основе друг друга является основным различием между системами координат из пространственных привязок и стационарными кадрами ссылок:

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

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

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

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

Хорошим правилом является обеспечение того, что все, что отображается на основе системы координат удаленных пространственных привязок, находится в пределах 3 метров своего источника. В ближайшем источнике промежуточного этапа отрисовка отдаленного содержимого имеет значение «ОК», так как любая увеличенная ошибка может повлиять только на небольшие голограммы, которые не будут сильно сдвигаться в представлении пользователя.

Сохраняемость пространственной привязки

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

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

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

можно также использовать пространственные привязки Azure для асинхронного сохранения голограмм на устройствах HoloLens, iOS и Android. При совместном использовании пространственной геодоступной облачной привязки несколько устройств могут отслеживать одну и ту же голограмму с течением времени, даже если эти устройства не присутствуют одновременно.

Предоставление доступа к пространственной привязке

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

с помощью пространственных привязок Azureприложение может совместно использовать пространственный якорь на нескольких устройствах HoloLens, iOS и Android. Если каждое устройство будет отрисовывать голограмму с использованием одной и той же пространственной привязки, голограмма будет отображаться в одном и том же месте в реальном мире для сеансов всех пользователей.

Избегайте содержимого, заблокированного головным управлением

Мы настоятельно не рекомендуем отображать содержимое, заблокированное головкой, которое остается в фиксированном месте на экране (например, HUD). Как правило, содержимое, заблокированное головным управлением, неудобно для пользователей и не похоже на естественную часть своего мира.

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

Обработка ошибок отслеживания

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

Гарнитура не может отслеживаниь из-за недостатка данных датчика

Иногда датчики гарнитуры не способны определить, где находится гарнитура. Причины могут быть следующими:

  • Комната темнее
  • Если датчики попадают в волосы или руки
  • Если в обстановке недостаточно текстуры.

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

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

Неправильное отслеживание головного телефона из-за динамических изменений в среде

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

Гарнитура отслеживает неверно, так как среда значительно изменилась со временем.

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

Неверное отслеживание головного телефона из-за идентичных пробелов в среде

Иногда дома или в другом пространстве может быть две идентичные области. Например, два идентичных конференц комнаты — две идентичные угловые области, два крупных идентичных плаката, охватывающие поле зрения устройства. В таких случаях устройство может, в то же время, разобраться между идентичными частями и помечать их как одно и то же во внутреннем представлении. Это может привести к тому, что голограммы из некоторых областей появятся в других местах. Устройство может начать терять отслеживание часто, так как его внутреннее представление окружения повреждено. В этом случае рекомендуется сбросить основные сведения о среде системы. Сброс схемы приводит к утрате всех размещений пространственных привязок. Это приведет к тому, что гарнитура будет хорошо прослеживаться в уникальных областях среды. Однако проблема может возникать, если устройство снова перепутать между идентичными областями.

См. также раздел