Сравнение функций Mega и ARKit/ARCore
EasyAR Mega одновременно связан с ARKit от Apple и ARCore от Google и отличается от них. Понимание их взаимосвязи и преимуществ каждого решения важно для разработчиков, чтобы понять механизм работы Mega. Проще говоря, Mega может полноценно использовать возможности motion tracking ARKit/ARCore и при этом расширяет потребности large-scale spatial localization, которые ARKit/ARCore не могут удовлетворить.
Основная взаимосвязь
ARKit/ARCore (базовый уровень):
- Это AR development frameworks, предоставляемые операционными системами устройств (iOS/Android).
- Их основная задача — environment perception и tracking на уровне устройства. Например, они используют camera устройства и IMU для реализации simultaneous localization and mapping (SLAM), plane detection, lighting estimation, image/object recognition и т. д.
- Они предоставляют приложениям верхнего уровня стабильный поток данных 6DoF pose с низкой задержкой.
EasyAR Mega (уровень приложения/платформы):
- Это платформа пространственных вычислений сверхбольшого масштаба.
- Ее основная задача — объединять заранее построенные высокоточные 3D-данные с передовой технологией visual localization для достижения persistent localization городского масштаба и сантиметрового уровня. Она использует базовые 6DoF-данные, предоставляемые ARKit/ARCore, для fused motion tracking.
- Mega не заменяет ARKit/ARCore. Вместо этого она использует их для получения начальных данных движения устройства в физическом мире, затем сопоставляет эти данные с картой Mega и "закрепляет" их в единой высокоточной системе координат.
Сравнение функций и преимущества Mega
ARKit/ARCore также предоставляют определенные возможности spatial recognition и localization, например ARWorldMap в ARKit и Cloud Anchors/Geospatial API в ARCore. Эти функции в некоторой степени похожи на возможности ultra-large-scale spatial localization, предоставляемые Mega, но принципиально отличаются. Ниже приведено подробное техническое сравнение.
| Функция | ARWorldMap | Cloud Anchors/Geospatial API | EasyAR Mega |
|---|---|---|---|
| Диапазон localization | Может сканировать и выполнять localization окружающей среды | Может сканировать и выполнять localization окружающей среды | Может сканировать и выполнять localization пространственной среды городского масштаба |
| Особенности localization | Может справляться с изменениями среды | Может справляться с изменениями среды | Может справляться с изменениями среды и сменой дня/ночи |
| Построение map | Данные собираются и строятся на стороне устройства, общий доступ через local area network | Данные собираются и строятся на стороне устройства, общий доступ через endpoints, размещенные в Google Cloud | Данные собираются специальными устройствами и строятся в cloud, общий доступ для любых устройств через cloud localization services |
| Virtual-real occlusion | Geometric occlusion через Mesh, отсканированный LiDAR | Occlusion на основе depth через Depth API | Предоставляет детализированные 3D-модели с LOD для точного geometric occlusion |
| Кросс-устройственный опыт | Поддерживает общий доступ и опыт только между устройствами iOS | Общий доступ и опыт между Android и iOS через endpoints Google Cloud | Общий доступ и опыт почти на всех устройствах (Android, iOS, XR headsets) через единый cloud localization service или on-device deployment |
| Технические зависимости | Работает только на устройствах с ARKit, а некоторые функции требуют дополнительного hardware или software (например, LiDAR) | Работает на устройствах с ARKit или ARCore | Широко совместима с различными устройствами, без жесткого требования наличия ARKit или ARCore |
Одновременное использование с ARKit/ARCore
При интеграции EasyAR Mega вам обычно не нужно напрямую вызывать API ARKit или ARCore. Это очень важная концепция:
- Приложение Mega автоматически получает доступный поток данных ARKit/ARCore 6DoF в зависимости от устройства, на котором оно работает.
- Вам нужно только использовать единый API
MegaTrackerилиMegaGoTracker, чтобы управлять localization services и получать pose data. Внутри raw data ARKit/ARCore автоматически объединяются и вычисляются, в итоге предоставляя единый, высокоточный, непрерывно tracking результат spatial localization. - Такой дизайн значительно упрощает процесс разработки. Вам не нужно писать и поддерживать два набора кода для разных платформ, а также глубоко разбираться в сложных API ARKit/ARCore. Достаточно сосредоточиться на использовании функций EasyAR Mega для построения логики приложения.
Совет
Исключение: если вы хотите использовать определенные функции ARKit/ARCore одновременно с Mega localization, например People Occlusion в ARKit, вам может потребоваться смешанно вызывать native API в приложении.
EasyAR Mega не конкурирует с ARKit/ARCore и не заменяет их, а дополняет и взаимодействует с ними. ARKit/ARCore решают задачу "как устройство движется в среде", а EasyAR Mega решает задачу "как всем устройствам точно выполнять localization в одном огромном пространстве". Объединив их, вы можете создавать беспрецедентные AR-приложения с возможностями large-scale spatial sharing и persistent localization.