Перенос приложений VR в Windows Mixed Reality

Windows 10 включает поддержку для впечатляющих и holographic головных телефонов. Если вы создали содержимое для других устройств, таких как Окулус Рифт или HTC Naopak, они имеют зависимости от библиотек, существующих над API платформы операционной системы. перевод существующих приложений Win32 Unity версии в Windows Mixed Reality включает в себя перенацеленное использование пакетов sdk vr, зависящих от поставщика, для api-интерфейсов версии unity cross-vendor.

Требования к переносу

На высоком уровне следующие шаги участвуют в переносе существующего содержимого:

  1. убедитесь, что на компьютере работает Windows 10 Fall Creators Update (16299). Мы больше не рекомендуем получать предварительные сборки от программы предварительной оценки, так как эти сборки не будут самыми стабильными при разработке смешанной реальности.
  2. Обновите версию графического или игрового модуля до последней версии. обработчики игр должны поддерживать Windows 10 SDK версии 10.0.15063.0 (выпущена в апреле 2017) или более поздней версии.
  3. Обновите любое промежуточное по, подключаемые модули или компоненты. Если приложение содержит какие-либо компоненты, рекомендуется выполнить обновление до последней версии.
  4. Удалите зависимости от повторяющихся пакетов SDK. в зависимости от устройства, для которого предназначено содержимое, необходимо удалить или условно откомпилировать этот пакет SDK, чтобы вместо этого можно было ориентироваться на Windows api. Пример такого сценария — Стеамвр.
  5. Работа с проблемами сборки. На этом этапе упражнение по переносу зависит от вашего приложения, подсистемы и зависимостей компонентов.

Общие этапы переноса

1. Убедитесь, что у вас есть правильное оборудование для разработки

На странице с руководством по VR .

2. Обновите до последнего рейса Windows 10

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

  1. установка Windows 10 Creators Update
  2. присоединяйтесь к программе предварительной оценки Windows.
  3. Включить режим разработчика
  4. переключиться на Windows "быстрый рейс " в разделе Параметры > обновление & безопасности

3. обновление до последней сборки Visual Studio

  • если вы используете Visual Studio, выполните обновление до последней сборки
  • см. раздел установка средств на странице Visual Studio 2019.

4. Выберите правильный адаптер.

  • В таких системах, как записные книжки с двумя графическими процессорами, следует выбрать правильный адаптер. Это относится к Unity и собственным приложениям DirectX, где ID3D11Device создается явно или неявно (Media Foundation) для своей функциональности.

Руководство по переносу Unity

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

Чтобы убедиться, что среда разработки настроена правильно, ознакомьтесь с приведенными выше общими действиями. на шаге #3, если вы используете Visual Studio, следует выбрать рабочую нагрузку " разработка игр с помощью Unity ". Вы можете отменить выбор компонента "необязательный редактор Unity", так как вы будете устанавливать более новую версию Unity на следующем шаге.

2. обновление до последней общедоступной сборки Unity с поддержкой Windows MR

  1. Скачайте последнюю рекомендуемую общедоступную сборку Unity с поддержкой смешанной реальности.
  2. Сохраните копию проекта, прежде чем приступить к работе
  3. Ознакомьтесь с документацией , доступной в Unity, при обновлении, если проект создан на основе более старой версии Unity.
  4. Следуйте инструкциям на сайте Unity для использования автоматических средств обновления API.
  5. Проверьте, есть ли дополнительные изменения, необходимые для запуска проекта, и выполните все оставшиеся ошибки и предупреждения.

Примечание

Если по промежуточного слоя от вас зависит, убедитесь, что вы используете последний выпуск (Дополнительные сведения см. на шаге 3 ниже).

3. Обновите по промежуточного слоя до последних версий

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

4. Назначение приложения для запуска в Win32

Изнутри приложения Unity:

  • перейдите к Параметры сборки файла >
  • Выберите "компьютер, Mac, автономная версия Linux"
  • Присвоить целевой платформе значение "Windows"
  • Установка архитектуры "x86" выберите параметр "платформа"

Примечание

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

5. настройка оборудования Windows Mixed Reality

  1. Ознакомьтесь с этапами настройки иммерсивного головного телефона
  2. сведения об использовании симулятора Windows Mixed Reality и навигации по Windows Mixed Reality домой

6. Настройка приложения для запуска на Windows Mixed Reality

  1. Во-первых, необходимо удалить или условно откомпилировать любую другую поддержку библиотеки, относящуюся к конкретному пакету SDK для VR. Эти активы часто изменяют параметры и свойства проекта способами, несовместимыми с другими пакетами SDK для VR, например Windows Mixed Reality.
    • например, если проект ссылается на пакет SDK для стеамвр, необходимо обновить проект, чтобы вместо этого использовать общие api-интерфейсы среды Unity, поддерживающие как Windows Mixed Reality, так и стеамвр.
    • В ближайшее время ожидается процедура, исключающая другие пакеты SDK для VR.
  2. в проекте Unity нацеливание на пакет SDK для Windows 10
  3. Для каждой сцены Настройте камеру .

7. использование этапа для размещения содержимого в этаже

Вы можете создавать возможности смешанной реальности во множестве различных возможностей масштабирования.

Если вы переносите интерфейсное масштабирование, необходимо убедиться, что Unity настроен на стационарный тип пространства отслеживания:

XRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary);

Приведенный выше код устанавливает мировую систему координат Unity для трассировки стационарной рамки ссылки. В режиме стационарного отслеживания содержимое, помещенное в редактор непосредственно перед расположением по умолчанию камеры (переадресация — Z), отображается перед пользователем при запуске приложения. Чтобы перецентрировать исходный элемент пользователя, можно вызвать XR Unity. Метод Инпуттраккинг. recenter .

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

if (XRDevice.SetTrackingSpaceType(TrackingSpaceType.RoomScale))
{
    // RoomScale mode was set successfully.  App can now assume that y=0 in Unity world coordinate represents the floor.
}
else
{
    // RoomScale mode was not set successfully.  App cannot make assumptions about where the floor plane is.
}

После того как приложение успешно установит тип пространства отслеживания Румскале, на этаж будут отображаться содержимое, помещенное на плоскости y = 0. Источник в точке (0, 0, 0) будет определять конкретное место в этаже, где пользователь стояли во время настройки комнаты, с параметром-Z, представляющим Направление переадресации во время установки.

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

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

Дополнительные сведения см. на странице системы координат на Unity .

Пример результатов:

Пример результатов

Алгоритм основан на блоге, Даниэль Смилков: самый крупный прямоугольник в многоугольнике

8. Работа с моделью ввода

Каждая игра или приложение, предназначенное для существующего ХМД, будет иметь набор входных данных, которые он обрабатывает, типы входных данных, необходимые для работы, и конкретные интерфейсы API, которые он вызывает для получения этих входных данных. Мы собрались сделать это как можно проще и простым, чтобы воспользоваться преимуществами входных данных, доступных в Windows Mixed Reality.

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

9. Тестирование и настройка производительности

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

Unity и Visual Studio включают в себя профилировщики производительности, а как корпорация майкрософт , так и корпорация Intel публикуют рекомендации по профилированию и оптимизации производительности. Существует подробное обсуждение производительности, доступное для понимания производительности смешанной реальности. кроме того, в разделе Performance Рекомендации для unityесть определенные сведения о unity.

Руководство по нереальному переносу

Важно!

Если вы используете контроллеры HP reverbы G2, обратитесь к этой статье для получения дополнительных инструкций по сопоставлению входных данных.

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