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


Настройка камеры в Unity

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

HoloLens и иммерсивные гарнитуры VR

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

  • При запуске на иммерсивной гарнитуре вы отрисовываете все, что видит пользователь, и поэтому, скорее всего, вы хотите сохранить небо.
  • Тем не менее, при запуске на голографической гарнитуре, как HoloLens, реальный мир должен отображаться за всем, что камера отрисовывает. Задайте фон камеры прозрачным (в HoloLens, черный отрисовывается как прозрачный) вместо текстуры Skybox:
    1. Выбор основной камеры на панели иерархии
    2. На панели инспектора найдите компонент камеры и измените раскрывающийся список "Очистить флаги" с Skybox на "Сплошной цвет"
    3. Выберите средство выбора цвета фона и измените значения RGBA на (0, 0, 0, 0, 0)
      1. Если этот параметр задан из кода, можно использовать Unity Color.clear

MRTK автоматически обрабатывает определенные параметры камеры на основе конфигурации в профиле системы камеры.

Пространство имен: Microsoft.MixedReality.Toolkit.CameraSystem
Тип: MixedRealityCameraSystem

Чтобы проверить непрозрачность камеры, система MixedRealityCamera имеет IsOpaque свойство.

CoreServices.CameraSystem.IsOpaque;

Настройка камеры

Независимо от того, какой интерфейс вы разрабатываете, основная камера всегда является основным компонентом стереорисовки, подключенным к головному экрану устройства. Вам будет проще выложить приложение, если вы представляете начальную позицию пользователя как (X: 0, Y: 0, Z: 0). Так как основная камера отслеживает перемещение головы пользователя, начальная позиция пользователя может быть задана, задав начальную позицию основной камеры.

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

Настройка камеры HoloLens

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

Выполните этот пошаговый учебник, чтобы добавить и автоматически настроить набор средств Смешанная реальность в проекте Unity. Кроме того, можно работать непосредственно с классом MixedRealityPlayspace из MRTK для Unity и задать целевой масштаб в мире:

Окно параметров MRTK

MRTK должен автоматически обрабатывать положение пространства воспроизведения и камеры, но это хорошо, чтобы дважды проверить:

Пространство воспроизведения MRTK

  1. На панели "Иерархия" разверните объект MixedRealityPlayspace GameObject и найдите дочерний объект основной камеры
  2. На панели инспектора найдите компонент преобразования и измените положение на (X: 0, Y: 0, Z: 0)

Настройка камеры VR

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

Первый шаг в создании интерфейса смешанной реальности в Unity — определить, какой опыт масштабируется ваше приложение:

Возможности масштабирования помещений или стоячих возможностей

Примечание.

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

Используйте класс MixedRealityPlayspace из MRTK для Unity и задайте для целевого масштаба значение Room или Standing:

Окно параметров MRTK

MRTK должен автоматически обрабатывать положение пространства воспроизведения и камеры, но это хорошо, чтобы дважды проверить:

Пространство воспроизведения MRTK

  1. На панели "Иерархия" разверните объект MixedRealityPlayspace GameObject и найдите дочерний объект основной камеры
  2. На панели инспектора найдите компонент преобразования и измените положение на (X: 0, Y: 0, Z: 0)

Сидячие интерфейсы

Используйте класс MixedRealityPlayspace из MRTK для Unity и установите целевой масштаб на место:

Окно параметров MRTK

MRTK должен автоматически обрабатывать положение пространства воспроизведения и камеры, но это хорошо, чтобы дважды проверить:

Пространство воспроизведения MRTK

  1. На панели "Иерархия" разверните объект MixedRealityPlayspace GameObject и найдите дочерний объект основной камеры
  2. На панели инспектора найдите компонент преобразования и измените положение на (X: 0, Y: 0, Z: 0)

Настройка фона камеры

Если вы используете MRTK, фон камеры автоматически настраивается и управляется. Для пакетов SDK XR или устаревших проектов WSA рекомендуется установить фон камеры на твердый черный цвет на HoloLens и сохранить небо для виртуальной реальности.

Использование нескольких камер

При наличии нескольких компонентов камеры в сцене Unity знает, какую камеру следует использовать для стереоскопической отрисовки на основе того, какой тег GameObject имеет тег MainCamera. В устаревшем XR этот тег также используется для синхронизации отслеживания головы. В пакете SDK XR отслеживание головы управляется скриптом TrackedPoseDriver, подключенным к камере.

Общий доступ к буферам глубины

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

  • Иммерсивные гарнитуры VR могут заботиться о позиционной повторной подготовке при предоставлении буфера глубины, корректируя голограммы для неправильного представления как в позиции, так и в ориентации.
  • Гарнитуры HoloLens имеют несколько различных методов. HoloLens 1 автоматически выбирает точку фокуса при предоставлении буфера глубины, оптимизируя стабильность голограммы вдоль плоскости, которая пересекает наибольшее содержимое. HoloLens 2 стабилизирует содержимое с помощью глубины LSR (см. примечания).

Диалоговое окно конфигурации MRTK попытается задать параметры буфера глубины для пакета SDK XR и устаревшей версии WSA, но это хорошо, чтобы проверить эти вкладки и проверить параметры в Unity.

Использование отрезки плоскостей

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

  1. Выбор основной камеры на панели иерархии
  2. На панели инспектора найдите компонент камеры, вырезая плоскости, и измените текстовое поле "Рядом" с 0,3 на 0,85. Содержимое, отрисованное еще ближе, может привести к дискомфорту пользователя и следует избежать для рекомендаций по расстоянию отрисовки.

Последние действия камеры

Если вы создаете интерфейс с сидячим масштабированием, вы можете недавно создать мир Unity в текущей позиции головы пользователя, вызвав XR. Метод InputTracking.Recenter в устаревшей версии XR или метод XRInputSubsystem.TryRecenter в пакете SDK XR.

Телепортация

Эта функция обычно зарезервирована для интерфейса виртуальной реальности:

MRTK предоставляет встроенную систему телепорта, которая автоматически работает между сформулированными руками и контроллерами.

Режимы повторной подготовки

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

По умолчанию:

  • Иммерсивные гарнитуры виртуальной реальности будут заботиться о позиционной повторной подготовке, если приложение предоставляет буфер глубины для заданного кадра. Иммерсивные гарнитуры также будут настраивать голограммы для неправильного прогнозирования в позиции и ориентации. Если буфер глубины не указан, система исправит только неправильные представления в ориентации.
  • Голографические гарнитуры , такие как HoloLens 2, будут заботиться о позиционной повторной подготовке, независимо от того, предоставляет ли приложение буфер глубины или нет. Позиционный перепроектирование возможно без буферов глубины в HoloLens, так как отрисовка часто разрежена с стабильным фоном, предоставляемым реальным миром.

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

Следующий этап разработки

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

Или перейдите к возможностям и API платформы смешанной реальности:

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

См. также