Table of Contents

Создание 3D-контента, точно совмещающегося с реальным окружением

В этом документе описывается, как точно разместить виртуальные объекты в определенном месте реального пространства и обеспечить их точное совмещение с реальным пространством в AR-опыте.

Перед началом

Примечание

Следующие материалы и инструменты предназначены только для разработки приложений Unity с использованием EasyAR Mega.

Если вы разрабатываете мини-приложение, обратитесь к Создание и загрузка аннотаций с использованием Unity Editor (разработка мини-приложений).

Если вы не разрабатываете приложение Unity, но хотите просмотреть результаты построения карты Mega, обратитесь к руководству по использованию Mega Просмотр 3D-реального сетчатого объекта.

Если вы не разрабатываете приложение Unity, но нуждаетесь в имитации работы для просмотра эффекта локализации, обратитесь к руководству по использованию Mega Просмотр имитации работы.

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

  • com.easyar.sense
  • com.easyar.mega

Block реальные данные сцены

В разработке Mega можно использовать несколько типов реальных данных сцены для помощи в размещении 3D-контента:

  • блок сеточная модель

    alt text

  • панорамное изображение (с маскировкой пространственной модели)

    alt text

    Примечание

    Некоторые данные не поддерживают панорамные изображения.

  • LCC 3D Gaussian splatting

    alt text

    Примечание

    Данные LCC 3D Gaussian splatting доступны только в сценариях использования после сбора на устройстве соответствующего домена и завершения построения карты.

Включение инструмента редактора

Сначала необходимо добавить цель отслеживания Mega в редакторе, затем выбрать цель отслеживания и нажать кнопку Create Editor Tool.

Совет

Если приложение должно создавать цель отслеживания в скрипте, а не в редакторе, можно после завершения размещения в редакторе записать цель отслеживания и/или ее дочерние объекты, а затем во время выполнения скрипта настроить цель отслеживания и прикрепить дочерние объекты к цели отслеживания.

Проверьте информацию о службе и подключитесь к службе.

Важно

Перед подключением необходимо проверить права API Key.

  • Если тип службы - Block, необходимо убедиться, что используемый API Key имеет право доступа к службе Mega Block и службе SpatialMap.
  • Если тип службы - Landmark, необходимо убедиться, что API Key имеет право доступа к службе Mega Landmark.

alt text

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

alt text

Если источник данных target был правильно настроен, после успешного подключения к службе вы увидите время обновления данных и интерфейс управления данными редактора block.

Совет

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

Данные инструмента редактора хранятся в узле EasyAR.Mega.EditorTool. Удаление этого узла эквивалентно удалению данных инструмента редактора.

Осторожно

Не изменяйте содержимое узла EasyAR.Mega.EditorTool напрямую, особенно не изменяйте Transform этого узла, иначе инструмент редактора может не работать корректно или содержимое может отображаться в неправильном месте при отслеживании.

Загрузка модели блока

Нажмите на первый выбор под блоком данных. Это запустит процесс загрузки данных редактора блоков. После загрузки вы сможете увидеть сетку текущего блока в окне Scene.

Совет
  • Сетка блока выровнена по пространству целевого отслеживания блока, что позволяет размещать 3D-контент непосредственно на модели.
  • Сетка блока переключает уровни детализации (LOD) в зависимости от положения камеры. Для корректной работы переключения LOD необходимо поддерживать подключение к интернету.
  • Сетка блока хранится в узле инструментов, существует только в режиме редактора и не включается в финальное приложение.

Монтирование 3D контента под узлом block

После загрузки модели блока смонтируйте 3D контент под узлом Block в сцене, сделав его дочерним узлом.

alt text

Осторожно
  • 3D объекты не должны размещаться под узлом EasyAR.Mega.EditorTool. Этот узел предназначен только для инструментов редактора и в некоторых случаях может быть автоматически удален или перестроен.
Важно
  • 3D объекты должны размещаться под узлом block, чтобы обеспечить правильную позицию рендеринга виртуального контента во время выполнения.

Точное размещение 3d-контента

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

Расположение по сеточной модели block

В сцене подстраивайте положение и вращение 3D-контента относительно block mesh, чтобы настроить его в желаемое положение и направление.

Совет
  • После входа редактора в режим play block mesh по-прежнему доступен, но не будет переключать LOD в зависимости от положения камеры.
  • block mesh хранится в узле инструмента и существует только в режиме редактора, не будет упакован в конечное приложение.

[Опционально] Размещение на основе панорамного изображения

Нажмите на флажок Panorama Preview Marker, чтобы отобразить панорамные маркеры.

Примечание
  • Некоторые данные не поддерживают панорамные изображения.

Нажмите на любой панорамный маркер, чтобы разместить контент в его позиции в панорамном режиме. Вы можете переключаться между разными панорамами, нажимая на различные панорамные маркеры, чтобы убедиться, что положение 3D-контента корректно с разных точек обзора.

alt text

Совет
  • При размещении контента с помощью панорамных маркеров, окклюзия на основе mesh-моделей пространства остается активной.
  • Эта функция остается доступной после перехода редактора в режим воспроизведения, но точность окклюзии на основе mesh-моделей пространства может быть снижена из-за отключения переключения LOD.
  • Панорамные маркеры и данные панорамных изображений хранятся в узле инструмента, существуют только в режиме редактора и не включаются в финальное приложение.

[опционально] размещение по данным lcc 3d gaussian splatting

Примечание

Этот раздел подходит для сценария использования после сбора данных и построения карты с помощью устройства их домена. Результаты построения карты с использованием других устройств не содержат данных lcc 3dgs.

Если вы использовали функцию 3d gaussian splatting LCC (их доменный LCC), вы можете настроить положение модели по 3DGS. Информацию об использовании данных LCC можно посмотреть в Загрузка данных LCC и выравнивание с mesh.

Влияние дефектов реального - мира данных на размещение контента

Что делать, если загруженная модель Block не горизонтальна

В панели Hierarchy выберите узел блока, который нужно настроить. В панели Inspector измените параметр Rotation до тех пор, пока ориентация модели в редакторе Unity не станет правильной.

Трансформация узла блока в мировой системе координат не влияет на локальную систему координат блока и, следовательно, не влияет на результат рендеринга 3D-контента, являющегося дочерним узлом блока. Его трансформация не связана с конечным отображаемым результатом.

Осторожно

Не изменяйте Transform объекта EasyAR.Mega.EditorTool в узле блока, иначе это может привести к неправильной работе инструментов редактора или к ошибке в отображении контента при отслеживании.

Что делать, если загруженная модель Block имеет разбитые или поврежденные части?

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

Разбитые и поврежденные части

При работе с неполной моделью, если точность выравнивания 3D - контента в разбитых/поврежденных частях не требуется высокой, можно разместить 3D - контент, нажав на панорамную метку и сравнив ее с панорамной картой. Затем можно проверить результат, нажимая на разные панорамные метки поблизости.

Размещение с помощью панорамной карты

Если точность выравнивания 3D - контента в разбитых/поврежденных частях требуется очень высокой, то необходимо выполнить дополнительное обновление или безопасное полное обновление для дополнения или обновления карты. Как правило, такие области означают, что они не были охвачены во время съемки изображений, и в таких областях качество позиционирования Mega может быть снижено. Просто выравнивать 3D - контент в редакторе недостаточно.

Следующие шаги

Связанные темы