Наблюдатель сведений о сцене

понятие сцены возвращает семантическое представление сущностей сцены, а также их геометрические формы на HoloLens 2 (HoloLens 1-й Gen не поддерживается).

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

  • Размещение объектов на ближайшей поверхности определенного вида (например, стены и этажа)
  • Создание панели навигации — сетки для игр в стиле платформы
  • Предоставление понятных геометрических объектов с четырьмя подсистемами
  • Ускорение разработки за счет предотвращения необходимости написания аналогичных алгоритмов

Основные сведения о сцене представлены в виде экспериментальной функции в мртк 2,6. Он интегрируется в МРТК как пространственный наблюдатель с именем WindowsSceneUnderstandingObserver . понятие "сцены" работает как с устаревшим конвейером XR, так и с конвейером пакета SDK XR (опенкср (начиная с мртк 2,7) и Windows подключаемым модулем XR). В обоих случаях WindowsSceneUnderstandingObserver используется.

Примечание

Использование сцены в удаленном взаимодействии не поддерживается.

Общие сведения об наблюдателе

При запросе WindowsSceneUnderstandingObserver будет возвращено спатиалаваренесссценеобжект с атрибутами, полезными для приложения, чтобы понять его окружение. Частота наблюдения, возвращаемый тип объекта (например, стена, Floor) и другие поведения наблюдателя, зависит от конфигурации наблюдателя с помощью профиля. Например, если требуется маска перекрытия, наблюдатель должен быть настроен для формирования четырех чисел. Наблюдаемая сцена может быть сохранена в виде сериализованного файла, который впоследствии можно загрузить, чтобы воссоздать сцену в редакторе в режиме воспроизведения.

Установка

Важно!

понимание сцены поддерживается только в HoloLens 2 и Unity 2019,4 и более поздних версиях.

  1. Убедитесь, что платформа имеет значение UWP в параметрах сборки.
  2. Получите представление о пакете с помощью средства "функция смешанной реальности".

Основные сведения об использовании сцены

Самый быстрый способ приступить к пониманию сцены — извлечь пример сцены.

Пример сцены "сцена"

в Unity используйте проводник Project, чтобы открыть файл сцены в Examples/Experimental/SceneUnderstanding/Scenes/SceneUnderstandingExample.unity и нажмите кнопку воспроизвести.

Важно!

Применяется только к МРТК 2.6.0 — при использовании средства "функция Mixed Reality" или при импорте через УПМ. Импортируйте пример "демонстрационные версии-Спатиалаваренесс" перед импортом примера "экспериментальный-Сценеундерстандинг" из-за проблемы с зависимостью. дополнительные сведения см. в этой GitHub проблемы .

Сцена демонстрирует следующее:

  • Визуализация наблюдаемых объектов сцены в пользовательском интерфейсе приложения для настройки наблюдателя
  • Пример DemoSceneUnderstandingController скрипта, демонстрирующий изменение параметров наблюдателя и прослушивание соответствующих событий
  • Сохранение данных сцены на устройстве для автономной разработки
  • Загрузка ранее сохраненных данных сцены (байт-файлов) для поддержки рабочего процесса разработки в редакторе

Важно!

По умолчанию ShouldLoadFromFile свойство наблюдателя имеет значение false. Чтобы увидеть визуализацию сериализованного примера комнаты, ознакомьтесь с разделом Настройка службы наблюдателя ниже и задайте для свойства значение true в редакторе.

Примечание

Пример сцены основан на устаревшем конвейере XR. При использовании конвейера пакета SDK для XR необходимо соответствующим образом изменить профили. Указанная сцена, посвященная системному профилю пространственной информации ( DemoSceneUnderstandingSystemProfile ) и сцене, посвященной профилям наблюдателя ( DefaultSceneUnderstandingObserverProfile и DemoSceneUnderstandingObserverProfile ), работает для обоих конвейеров.

Примечание

Пример сцены регистрирует There is no active AsyncCoroutineRunner when an action is posted. предупреждение при определенных обстоятельствах из-за инициализации или порядка выполнения потока. Если вы можете подтвердить, что AsyncCoroutineRunner компонент подключен к "демонстрационному контроллеру" GameObject, а компонент или GameObject остается включенным/активным в сцене (вариант по умолчанию), это предупреждение можно спокойно проигнорировать. Однако при создании сцены с пониманием сцены необходимо создать пустую GameObject в корне и присоединить AsyncCoroutineRunner к ней скрипт, иначе понимание сцены может работать неправильно.

Настройка службы наблюдателя

Выберите объект игры "Микседреалититулкит" и проверьте инспектор.

Сцена, в которой понимается расположение в иерархии

Расположение МРТК в инспекторе

Эти параметры позволяют настроить WindowsSceneUnderstandingObserver .

Пример сценария

В примере сценария демосценеундерстандингконтроллер. CS демонстрируются основные понятия, связанные с работой со службой "сцена".

  • Подписка на сцену основные сведения о событиях
  • Обработка событий сцены
  • Настройка WindowsSceneUnderstandingObserver среды выполнения

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

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

Параметры демонстрационного контроллера

Заметки о построении приложения

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

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

Доступ к сохраненным файлам сцены можно получить на портале устройств по адресу User Folders/LocalAppData/[APP_NAME]/LocalState/PREFIX_yyyyMMdd_hhmmss.bytes . Эти файлы сцены можно использовать в редакторе, указывая их в профиле наблюдателя, который находится в инспекторе.

Расположение файла (байт) на портале устройства

Байты сериализованной сцены в наблюдателе

См. также: