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

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

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

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

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

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


Масштаб взаимодействия Требования Пример взаимодействия
Только ориентация Ориентация гарнитуры (выравнивание по гравитации) Средство просмотра видео на 360 градусов
Масштабирование с сидячим размещением Выше плюс положение гарнитуры на основе нулевой позиции Гоночная игра или космический симулятор
Вертикальное масштабирование Выше плюс источник пола этапа Экшн-игра, где вы утка и увернулись на месте
Масштабирование помещений Многоугольник над плюсом границ этапа Головоломка игра, где вы ходите вокруг головоломки
Мировой масштаб Пространственные привязки (и обычно пространственное сопоставление) Игра с врагами, исходящими из ваших реальных стен, таких как RoboRaid

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


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

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

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

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

Как правило, декартовые системы координат называются "правшами" или "левшами", так как для указания направлений осей XYZ можно использовать положения рук. В обеих системах координат положительная ось X указывает вправо, а положительная ось Y — вверх. Разница между ними заключается в том, что в правой системе координат ось Z указывает на вас, а в левой системе координат ось Z указывает от вас.

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

Изображение левой руки человека, демонстрирующее левую систему координат

Системы пространственных координат в Windows (и, следовательно, Windows Mixed Reality) всегда являются правшами.

[! ПРИМЕЧАНИЯ]

  • Unity и Unreal используют левую систему координат.
  • Хотя левша и правая координаты являются наиболее распространенными системами, существуют и другие системы координат, используемые в трехмерном программном обеспечении. Например, в приложениях трехмерного моделирования нет ничего необычного в использовании системы координат, в которой ось Y указывает на средство просмотра или от нее, а ось Z — вверх.

Создание интерфейса только для ориентации или сидячих рабочих мест

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

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

Стационарная рамка отсчета

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

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

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

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

Прикрепленная рамка отсчета

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

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

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

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

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

Промежуточную систему отсчета

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

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

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

Так как система отсчета этапа предоставляет единую фиксированную систему координат, в которой можно размещать содержимое относительно пола, это самый простой путь для переноса приложений постоянного и комнатного масштаба, разработанных для гарнитур виртуальной реальности. Однако, как и в случае с этими платформами ВИРТУАЛЬНОй реальности, одна система координат может стабилизировать только содержимое примерно в 5 метров (16 футов) диаметром, прежде чем рычаг-рука эффекты вызывают содержимое далеко от центра, чтобы заметно сместить, как система корректируется. Чтобы превысить 5 метров, требуются пространственные привязки.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • В комнате темно
  • Если датчики покрыты волосами или руками
  • Если окружающая среда не имеет достаточной текстуры.

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

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

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

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

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

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

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

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

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