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

В этой статье описывается следующий вариант использования голографического удаленного взаимодействия:

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

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

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

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

Два доступных режима в голографическом удаленном взаимодействии

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

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

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

Удаленное приложение прослушивает входящие подключения, пока проигрыватель пытается подключиться.

Настройка приложения "Голографический проигрыватель удаленного взаимодействия"

Чтобы использовать голографическое удаленное взаимодействие только в режиме 1, установите приложение Holographic Remoting Player из Microsoft Store на HoloLens 2 (в этой статье мы будем называть его просто проигрывателем). Как описано ниже, после скачивания и запуска приложения вы увидите номер версии и IP-адрес для подключения. Рекомендуется использовать последнюю доступную версию проигрывателя.

Для голографического удаленного взаимодействия требуется быстрый компьютер и Wi-Fi подключение. Дополнительные сведения см. в статье Проигрыватель, ссылки на которые приведены выше.

Снимок экрана: голографический проигрыватель удаленного взаимодействия, запущенный в HoloLens

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

Создание удаленного приложения на компьютере для голографического удаленного взаимодействия с помощью Unity

  1. В строке меню выберите Изменить > параметры проекта.

  2. В столбце слева выберите Управление подключаемым модулем XR.

  3. Убедитесь, что вы находитесь на вкладке параметров универсальная платформа Windows.

    Снимок экрана: XR-Plug в окне управления с выбранной вкладкой универсальная платформа Windows.

  4. В разделе Подключаемый модуль OpenXR выберите Microsoft HoloLens группу функций и группу функций удаленного приложения для голографического удаленного взаимодействия.

    Снимок экрана: подключаемый модуль OpenXr с выбранными

  5. Снимите флажок Инициализировать XR в проверка запуска.

    Снимок экрана: окно управления подключаемым модулем XR с невыбранным параметром

  6. Напишите код для настройки конфигурации удаленного взаимодействия и активации инициализации XR. Приложение может вызывать функцию Connect для режима 1 или функцию Listen для режима 2. Чтобы просмотреть пример, скачайте примеры Open XR Unity Смешанная реальность, а затем в проекте RemotingSample просмотрите скрипт AppRemoting.cs.

  7. Для режима 1 , режим подключения , вызовите Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Connect с заполненным RemotingConfiguration. Пример приложения предоставляет это в инспекторе и показывает, как заполнить IP-адрес из текстового поля. Вызов Connect задаст конфигурацию и автоматически инициализирует XR, поэтому он должен вызываться как сопрограмма:

    StartCoroutine(Remoting.AppRemoting.Connect(remotingConfiguration));
    
  8. Для режима 2 в режиме прослушивания вызовите Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Listen с заполненным RemotingListenConfigurationзначением . Пример приложения предоставляет это в инспекторе. Вызов Listen задаст конфигурацию и ожидает подключения из примера проигрывателя голографического удаленного взаимодействия, поэтому он должен вызываться как сопрограмма:

    StartCoroutine(Remoting.AppRemoting.Listen(remotingListenConfiguration));
    
  9. Во время выполнения можно получить текущее состояние подключения с помощью AppRemoting.TryGetConnectionState API и при необходимости отключить и деинициализировать XR с помощью AppRemoting.Disconnect(). Его можно использовать для отключения и повторного подключения к другому устройству в рамках одного сеанса приложения. Приложение RemotingSample предоставляет применимый куб, который будет отключать сеанс удаленного взаимодействия при его нажатии.

Запуск удаленного приложения "Голографическое удаленное взаимодействие" и приложения "Проигрыватель" в режимах, описанных выше

Режим 1. Запустите удаленное приложение голографического удаленного взаимодействия на компьютере в режиме подключения и проигрыватель в режиме прослушивания:

  1. Если проигрыватель уже установлен из магазина на HoloLens 2, пропустите шаги 2 и 3 ниже, где вы создаете и запускаете пример приложения проигрывателя. Вместо этого запустите установленный проигрыватель и перейдите к шагу 4.

  2. Откройте приложение голографического удаленного взаимодействия с примером проигрывателя с помощью VS 2019 и выполните одно из следующих действий:

    Для запуска на HoloLens 2 с помощью USB-кабеля:

    • Настройте параметры сборки, как показано ниже.

    Снимок экрана: параметры сборки Visual Studio, если пользователь подключен через USB-кабель.

    • Откройте страницу Свойства проекта и перейдите к разделу Свойства> конфигурацииОтладка.
    • Щелкните раскрывающийся список Отладчик, чтобы запустить , а затем выберите Устройство.
    • В поле Аргументы командной строки добавьте "-listen".

    Снимок экрана: аргументы командной строки для сборки с помощью USB-кабеля.

    Для запуска на HoloLens 2 с помощью Wi-Fi:

    • Настройте параметры сборки, как показано ниже.

    Снимок экрана: параметры сборки Visual Studio, если пользователь выполняет сборку в HoloLens с помощью Wi-Fi.

    • Откройте страницу Свойства проекта и перейдите к разделу Свойства> конфигурацииОтладка.
    • Щелкните раскрывающийся список Отладчик, чтобы запустить , а затем выберите Удаленный компьютер.
    • В поле Аргументы командной строки добавьте IP-адрес Wi-Fi устройства HoloLens.
  3. Чтобы развернуть решение SamplePlayer на HoloLens 2, нажмите кнопку воспроизведения в Visual Studio. Вы увидите, что проигрыватель HAR Sample работает на HoloLens 2 с сообщением "Ожидание подключения по IP-адресу HoloLens 2".

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

  5. После установки подключения проигрыватель, работающий на HoloLens 2, запустит "Получение".

Режим 2. Запустите удаленное приложение на компьютере в режиме прослушивания и приложение проигрывателя HAR в режиме подключения:

  • На экране двухd ui в удаленном приложении, работающем на компьютере, щелкните Прослушивать.

    Снимок экрана: параметры сборки Visual Studio, если пользователь подключен через USB-кабель.

  • Откройте страницу Свойства проекта и перейдите к разделу Свойства> конфигурацииОтладка.

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

  • В поле Аргументы командной строки добавьте IP-адрес хост-компьютера.

Снимок экрана: аргументы командной строки для сборки с помощью USB-кабеля.

  • Чтобы развернуть решение SamplePlayer на HoloLens 2, в решении Visual Studio нажмите кнопку воспроизведения. Вы увидите, что на HoloLens 2 выполняется пример проигрывателя HAR, в котором отображается сообщение "Подключение к IP-адресу, заданному в аргументах командной строки".

  • После установки подключения приложение Голографического удаленного взаимодействия с примером проигрывателя, запущенное на HoloLens 2, запустит "Получение".

Совет

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

Миграция из предыдущих API голографического удаленного взаимодействия

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

UnityEngine.XR.WSA.HolographicRemoting

Из примера кода в документации Unity:

XR. WSA. HolographicRemoting OpenXR.Remoting.AppRemoting
HolographicRemoting.ConnectRemotingSession() AppRemoting.Connect(RemotingConfiguration)
HolographicRemoting.DisconnectRemotingSession() AppRemoting.Disconnect()
HolographicRemoting.ConnectionState AppRemoting.TryGetConnectionState(out ConnectionState, out DisconnectReason)

UnityEngine.XR.WindowsMR. WindowsMRRemoting

XR.WindowsMR. WindowsMRRemoting OpenXR.Remoting.AppRemoting
WindowsMRRemoting.Connect() AppRemoting.Connect(RemotingConfiguration)
WindowsMRRemoting.Listen() AppRemoting.Listen(RemotingListenConfiguration)
WindowsMRRemoting.Disconnect() AppRemoting.Disconnect()
WindowsMRRemoting.TryGetConnectionState(out ConnectionState) и WindowsMRRemoting.TryGetConnectionFailureReason(out ConnectionFailureReason) AppRemoting.TryGetConnectionState(out ConnectionState, out DisconnectReason)
WindowsMRRemoting.isAudioEnabled, WindowsMRRemoting.maxBitRateKbps, WindowsMRRemoting.remoteMachineName Передается через AppRemoting.Connect структуру RemotingConfiguration
WindowsMRRemoting.isConnected AppRemoting.TryGetConnectionState(out ConnectionState state, out _) && state == ConnectionState.Connected

См. также: