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


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

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

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

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

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

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


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

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


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

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

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

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

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

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

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

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

[! ЗАМЕТКИ]

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

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

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

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

Неустанный кадр ссылки

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

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

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

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

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

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

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

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

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

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

Эталонная рамка этапа

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

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

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

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

Создание мирового опыта

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Иногда датчики гарнитуры не могут выяснить, где находится гарнитура. Это может произойти если:

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

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

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

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

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

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

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

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

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

См. также