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


Обзор захвата смешанной реальности

Примечание

Рекомендации по новой возможности MRC для HoloLens 2 см. в разделе Отрисовка с фотокамеры ниже.

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

Разработчики также могут легко интегрировать захват и вставку смешанной реальности в свои приложения.

MRC в HoloLens (первого поколения) поддерживает видео и фотографии до 720p, а MRC на HoloLens 2 поддерживает видео с разрешением до 1080p и фотографии с разрешением до 4 КБ.

Важность качества MRC

Будь то снимки экрана смешанной реальности на странице Microsoft Store или другие пользователи, которые делятся содержимым захвата в социальных сетях, Смешанная реальность мультимедиа часто является первым знакомством пользователей с вашим приложением. Вы можете использовать MRC для демонстрации приложения, обучения пользователей, поощрения пользователей к совместному взаимодействию со смешанным миром, а также для исследования пользователей и решения проблем.

Влияние MRC на приложение

Включение MRC в приложении

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

Включение улучшенного выравнивания для MRC в приложении

По умолчанию захват смешанной реальности объединяет голографические выходные данные правого глаза с камерой фото-видео (PV). Эти два источника объединяются с помощью точки фокуса, заданной иммерсивным приложением, выполняющимся в данный момент.

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

Установка точки фокуса

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

Если точка фокусировки не задана, плоскость стабилизации по умолчанию будет 2 метра.

Отрисовка с фотоэлектрической камеры (согласие)

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

Отрисовка с фотоэлектрической камеры обеспечивает следующие улучшения по сравнению с интерфейсом MRC по умолчанию:

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

Узнайте больше о отрисовке с фотоэлектрической камеры (DirectX).

Рекомендации (для HoloLens)

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

MRC использует альфа-канал голограммы для смешивания с изображениями камеры

Самый важный шаг — убедиться, что приложение очищается до прозрачного черного цвета, а не до непрозрачного. В Unity это выполняется по умолчанию с помощью MixedRealityToolkit. Если вы разрабатываете не в Unity, может потребоваться внести однострочное изменение.

Вот некоторые артефакты, которые могут появиться в MRC, если ваше приложение не очищается до прозрачного черного цвета:

Примеры сбоев: черные края вокруг содержимого (не удается очистить до прозрачного черного цвета)

Неспособность очистить до прозрачного черного: черные крае артефакты вокруг голограмм Не удается очистить до прозрачного черного: черные пограничные артефакты вокруг голограмм

Примеры сбоев. Вся фоновая сцена голограммы выглядит черной. Установка фонового альфа-значения для одного приводит к черному фону

Установка фонового альфа-значения 1 приводит к черному фону

Ожидаемый результат: голограммы отображаются в правильном сочетании с реальными (ожидаемый результат при очистке до прозрачного черного цвета)

Ожидаемый результат при очистке до прозрачного черного

Решение

  • Измените любое содержимое, отображаемое как непрозрачное черное, чтобы иметь альфа-значение 0.
  • Убедитесь, что приложение очищается до прозрачного черного цвета.
  • Unity по умолчанию автоматически очищается с помощью MixedRealityToolkit, но если это приложение, отличное от Unity, необходимо изменить цвет, используемый с ID3D11DeiceContext::ClearRenderTargetView(). Вы хотите обеспечить очистку до прозрачного черного (0,0,0,0), а не непрозрачного черного (0,0,0,1).

Теперь вы можете настроить альфа-значения ресурсов, если хотите, но обычно это не требуется. Большую часть времени, MRCs будет хорошо выглядеть из коробки. MRC предполагает предварительно умноженное альфа-значение. Альфа-значения влияют только на запись MRC.

Чего ожидать при включении MRC в HoloLens

Следующее относится как к HoloLens (первого поколения), так и к HoloLens 2, если не указано иное:

  • Система будет регулировать отрисовку приложения до 30 Гц. Это создает запас для запуска MRC, поэтому приложению не нужно сохранять постоянный резерв бюджета, а также соответствует частоте кадров видео mrc 30 кадров/с.
  • Содержимое голограммы в правом глазу устройства может показаться "сверкающим" при записи или потоковой передаче MRC: текст может стать более трудным для чтения, а края голограммы могут показаться более неровными (согласие на третью отрисовку камеры на HoloLens 2 позволяет избежать этого компромисса).
  • Фотографии и видео mrc будут учитывать точку фокусировки приложения, если приложение включило ее, что поможет обеспечить точное расположение голограмм. Для видео точка фокусировки сглаживается, поэтому голограммы могут медленно сходить на место, если глубина точки фокусировки значительно изменяется. Голограммы, которые находятся на разной глубине от точки фокусировки, могут выглядеть смещены от реального мира (см. пример ниже, где точка фокусировки установлена на 2 метра, а голограмма находится на 1 метре).

Голограммы на высоте 2 метра будут прекрасно зарегистрированы в мире. Голограммы на близких или дальних расстояниях могут быть слегка смещения.

Интеграция функций MRC из приложения

Приложение смешанной реальности может запускать фото- и видеозахват MRC из приложения, а захваченное содержимое становится доступным для вашего приложения без сохранения в "Альбоме камеры" устройства. Вы можете создать пользовательское средство записи MRC или воспользоваться преимуществами встроенного пользовательского интерфейса захвата камеры.

MRC со встроенным пользовательским интерфейсом камеры

Разработчики могут использовать API пользовательского интерфейса камеры , чтобы получить захваченные пользователем фотографии или видео смешанной реальности с помощью всего нескольких строк кода.

Этот API запускает встроенный пользовательский интерфейс камеры MRC, в котором пользователи могут делать фотографии или видео и возвращать полученный снимок в приложение. Вы можете создать пользовательское средство записи записи Смешанная реальность, если необходимо добавить собственный пользовательский интерфейс камеры или доступ более низкого уровня к потокам захвата.

Создание пользовательского средства записи MRC

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

HoloStudio добавляет настраиваемую камеру MRC с помощью эффектов MRC

HoloStudio добавляет настраиваемую камеру MRC с помощью эффектов MRC

Приложения Unity должны видеть Locatable_camera_in_Unity для свойства для включения голограмм.

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

Узнайте больше о создании пользовательского средства записи MRC (DirectX).

Одновременные ограничения MRC

Необходимо учитывать некоторые ограничения, когда несколько приложений обращаются к MRC одновременно.

Доступ к фото/видеокамере

В HoloLens 1 MRC не сможет захватить или записать видео, пока процесс записывает видео или делает снимок. Верно и обратное: если MRC запущена, приложению не удастся получить доступ к камере.

С HoloLens 2 вы можете поделиться доступом к камере. Если вам не требуется прямой контроль разрешения или частоты кадров, можно инициализировать MediaCapture с помощью свойства SharedMode с SharedReadOnly.

Встроенный доступ к фото/ видеокамере MRC

Узнайте о встроенном доступе к фото- и видеокамерам MRC (DirectX).

Доступ к MRC для разработчиков

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

Узнайте больше о доступе к MRC для разработчиков (DirectX).

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