Table of Contents

Создание 3D-контента, точно выровненного с реальной сценой

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

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

Примечание

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

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

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

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

Для содержимого этой статьи в проект уже должны быть импортированы следующие Unity-пакеты:

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

Данные реальной сцены block

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

  • модель сетки block

    alt text

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

    alt text

    Примечание

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

  • LCC 3D Gaussian Splatting

    alt text

    Примечание

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

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

Нажмите первый флажок под данными block. Это запустит загрузку данных редактора block; после загрузки в окне Scene можно увидеть mesh текущего block.

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

Размещение 3D-контента под узлом block

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

alt text

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

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

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

Размещение по модели сетки block

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

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

[Опционально] Размещение по панораме

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

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

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

alt text

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

[Опционально] Размещение по LCC 3D Gaussian Splatting

Примечание

Этот раздел применим к сценариям использования после сбора данных устройством Qiyu и завершения построения карты. Результаты построения карты на других устройствах не содержат данных LCC 3DGS.

Если вы использовали функцию LCC 3D Gaussian Splatting (Qiyu LCC), можно настроить положение модели, сверяясь с 3DGS. Использование данных LCC см. в загрузке данных LCC и выравнивании с Mesh.

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

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

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

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

Осторожно

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

Что делать, если загруженная модель Block имеет разрушенные или отсутствующие части

В процессе 3D-реконструкции из-за неполного покрытия ракурсов съемки в созданной плотной модели могут появляться разрушенные или отсутствующие части.

Разрушенные и отсутствующие части

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

Размещение по панораме

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

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

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