Краткое руководство. Создание приложения HoloLens с использованием службы "Объектные привязки Azure" в C++/WinRT и DirectX
В этом кратком руководстве показано, как создать приложение HoloLens с использованием службы Объектные привязки Azure в C++/WinRT и DirectX. Объектные привязки — это управляемая облачная служба, которая преобразует трехмерные ресурсы в модели искусственного интеллекта, которые обеспечивают взаимодействие с смешанной реальностью с поддержкой объектов для HoloLens. По завершении работы с руководством у вас будет приложение HoloLens, которое может обнаруживать объекты и определять их пространственное расположение в приложении Holographic DirectX 11 (универсальная платформа Windows).
Вы изучите следующие темы:
- создать и загрузить неопубликованное приложение HoloLens;
- обнаружить объект и визуализировать его модель;
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Необходимые компоненты
В рамках этого краткого руководства вам потребуются:
- Физический объект в вашей среде и ее трехмерной модели ( CAD или сканированный).
- Компьютер Windows со следующим установленным:
- Git для Windows.
- Visual Studio 2019 с рабочей нагрузкой Разработка приложений для универсальной платформы Windows и компонент Пакет SDK для Windows 10 (10.0.18362.0 или более поздняя версия).
- Устройство HoloLens 2 с актуальными обновлениями и включенным режимом разработчика.
- Чтобы обновить HoloLens до последнего выпуска, откройте приложение Параметры, перейдите в раздел Update & Security (Обновление и безопасность), а затем выберите Проверить обновления.
создать учетную запись Объектных привязок;
Сначала необходимо создать учетную запись с использованием службы Объектные привязки.
Перейдите на портал Azure и выберите Создать ресурс.
Найдите ресурс Объектные привязки.
Выполните поиск строки "Объектные привязки".
В ресурсе "Привязки объектов" в результатах поиска выберите "Создать -> Привязки объектов".
В диалоговом окне Учетная запись Объектных привязок сделайте следующее.
- Введите уникальное имя ресурса.
- Выберите подписку, к которой хотите подключить ресурс.
- Создайте группу ресурсов или используйте имеющуюся.
- Выберите регион, в котором должен находиться ресурс.
Выберите Создать, чтобы начать создание ресурса.
После создания ресурса выберите команду Перейти к ресурсу.
На странице "Обзор" сделайте следующее.
Запишите Домен учетной записи. Оно понадобится вам позже.
Запишите ИД учетной записи. Оно понадобится вам позже.
Перейдите на страницу Ключи доступа и запишите Первичный ключ. Оно понадобится вам позже.
Добавление модели
Перед запуском приложения необходимо сделать ваши модели доступными для приложения. Если у вас еще нет модели объектных привязок, создайте ее, следуя инструкциям в статье Создание модели. Потом возвращайтесь к этому разделу.
Если приложение HoloLens включено и подключено к устройству разработки (ПК), выполните следующие действия, чтобы загрузить модель в папку Трехмерные объекты на вашем HoloLens:
Выберите и скопируйте модели, с которыми вы хотите работать, нажав сочетание клавиш CTRL и C (Ctrl + C).
Чтобы запустить Проводник, нажмите клавишу Windows и E (Win + E). HoloLens отображается в списке с другими дисками и папками на левой панели.
Нажмите ссылку HoloLens, чтобы отобразить хранилище на устройстве HoloLens на правой панели.
В проводник перейдите к внутренним служба хранилища > трехмерных объектов. Теперь вставьте свои модели в папку Трехмерные объекты, нажав сочетание клавиш Ctrl и V (Ctrl + V).
Открытие примера проекта
Клонируйте репозиторий примеров, выполнив следующие команды:
git clone https://github.com/Azure/azure-object-anchors.git
cd ./azure-object-anchors
Откройте краткие руководства,приложения/directx/DirectXAoASampleApp.sln в Visual Studio.
Укажите для параметра Конфигурация решения значение Выпуск, а для параметра Solution Platform (Платформа решения) задайте значение ARM64 и выберите элемент Устройство в списке целевых вариантов развертывания.
Настройка сведений об учетной записи
Следующим шагом является настройка приложения для использования данных вашей учетной записи. Вы записали значения ключа учетной записи, идентификатора учетной записи и домена учетной записи, как указано в разделе Создание учетной записи Объектных привязок.
Открытие assets\ObjectAnchorsConfig.json.
Найдите поле AccountId
и замените Set me
идентификатором учетной записи.
Найдите поле AccountKey
и замените Set me
ключом учетной записи.
Найдите поле AccountDomain
и замените Set me
доменом учетной записи.
Теперь выполните сборку проекта AoaSampleApp. Для этого щелкните проект правой кнопкой мыши и выберите пункт Сборка.
Развертывание приложения на устройстве HoloLens
После успешной компиляции примера проекта можно развернуть приложение на устройстве HoloLens.
Убедитесь, что устройство HoloLens включено и подключено к компьютеру через USB-кабель. Убедитесь, что устройство является выбранным целевым объектом развертывания, как описано выше.
Щелкните правой кнопкой мыши проект AoaSampleApp , а затем выберите "Развернуть " в контекстном меню, чтобы установить приложение. Если в окне вывода Visual Studio ошибки не отображаются, приложение будет установлено на устройстве HoloLens.
Перед запуском приложения необходимо передать объектную модель, например chair.ou, в папку 3D-объектов в HoloLens. Если вы этого не сделали, следуйте инструкциям в разделе "Отправка модели ".
Чтобы запустить и отладить приложение, выберите ">Начать отладку".
Прием объектной модели и обнаружение ее экземпляра
Теперь приложение AoaSampleApp работает на устройстве HoloLens. Ходить близко, в пределах 2-метрового расстояния, к целевому объекту (стулу) и сканировать его, глядя на него с нескольких перспектив. Вы должны увидеть розовый ограничивающий прямоугольник вокруг объекта с желтыми точками, которые отображаются ближе к поверхности объекта. Это означает, что объект был обнаружен. Вы также увидите желтое поле, указывающее область поиска.
Вы можете определить область поиска для объекта в приложении, коснувшись объекта правой или левой рукой. Область обнаружения можно переключить, выбрав сферу с радиусом 2 м, ограничивающий прямоугольник размером 4 кубических метра или усеченную пирамиду представления. Для больших объектов, таких как автомобили, лучше всего использовать выбор представления frustum, стоя перед углом объекта около 2-метрового расстояния. При каждом изменении области поиска приложение удаляет экземпляры, которые в настоящее время отслеживаются. Затем он пытается найти их снова в новой области поиска.
Это приложение может одновременно отслеживать несколько объектов. Для этого нужно отправить несколько моделей в папку 3D-объекты на устройстве и задать область поиска, охватывающую все целевые объекты. Обнаружение и отслеживание нескольких объектов может занять больше времени.
Приложение полностью сопоставляет трехмерную модель с физическим представлением объекта. С помощью жеста касания левой рукой пользователь может включить режим отслеживания с высокой точностью для вычисления более точного пространственного расположения. Эта функция все еще является экспериментальной. Он потребляет больше системных ресурсов и может привести к более высокой jitter в предполагаемом позе. Чтобы вернуться в обычный режим отслеживания, повторите касание левой рукой.