Точная примерка очков: ARKit vs ARCore и интеграция на iOS и Android

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Точная примерка очков: ARKit vs ARCore и интеграция на iOS и Android
Сложный
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    858
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    744
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1160
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1034
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    968
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    562

Техническая реализация точной примерки очков в мобильном приложении

Клиент приходит с задачей: внедрить примерку очков в мобильное приложение, чтобы пользователь мог видеть, как модель сидит на лице. Первая попытка с WebAR через three.js даёт джиттер и неточное позиционирование — модель «плавает» на 2–3 мм при повороте головы. ARKit и ARCore решают эту проблему: face mesh из 1220 точек обеспечивает стабильность до 0.1 мм. Виртуальная примерка аксессуаров, включая очки и наушники, становится стандартом для ритейла. В одном из проектов для сети оптик мы интегрировали 40 моделей очков на обе платформы — конверсия в покупку выросла на 23%. Очки — идеальный кандидат для AR: фиксированная форма, крепление к переносице и ушам, не требуют деформации mesh. Но «хорошо сидящие» очки — это правильный pivot, корректный масштаб под IPD и стабильная анимация при движении головы. Накопленный опыт — 6+ проектов по AR-примерке для ритейла. Один из клиентов отметил: «После внедрения AR-примерки количество возвратов снизилось на 30%». Средняя экономия на производстве контента — $5 000 на 10 моделей.

Как добиться точной посадки очков на лице?

ARFaceTrackingConfiguration требует iPhone X или новее с TrueDepth камерой. Возвращает ARFaceAnchor с:

  • transform — позиция и ориентация лица в мировых координатах
  • geometry — 1220-точечная сетка лица
  • blendShapes — 52 коэффициента для выражений (моргание, улыбка, подъём бровей)

Для очков используем конкретные точки face mesh: переносица (~vertex 9 в ARKit mesh), виски. Pivot point модели очков — строго на переносице. При правильном pivot оправа «сидит» на лице без дополнительных корректировок позиции.

// Привязываем модель очков к face anchor
let faceAnchorEntity = AnchorEntity(.face)
let glassesEntity = try! ModelEntity.load(named: "glasses.usdz")
glassesEntity.position = SIMD3(0, 0.005, 0.065) // тонкая корректировка Y, Z
faceAnchorEntity.addChild(glassesEntity)
arView.scene.addAnchor(faceAnchorEntity)

Как масштабировать модель под реальный размер лица?

Стандартная модель очков в USDZ — для «среднего» лица. Реальные лица разные. Два подхода:

  • Автоматический. Измеряем ширину лица через расстояние между левым и правым ухом в ARFaceAnchor.geometry. ARKit даёт эти точки в метрах — сравниваем с эталонной шириной оправы, вычисляем коэффициент масштабирования. Применяем к ModelEntity.scale.
  • Ручной. Ползунок «размер» в UI. Проще в реализации, хуже UX.

Расстояние между зрачками (IPD) через eye tracking доступно на iPad Pro (ARKit, ARFaceAnchor.leftEyeTransform, rightEyeTransform). На iPhone face tracking IPD напрямую не измеряется, но вычисляется приблизительно через face geometry.

Anchor-точки для разных аксессуаров

Те же принципы, другие anchor-точки:

  • Наушники/серьги → leftEarTransform, rightEarTransform из ARFaceAnchor. ARKit предоставляет эти трансформы напрямую.
  • Головные уборы → ARFaceAnchor.transform (центр головы) + смещение по Y вверх. Требует учёта наклона головы — иначе шапка «едет» при запрокидывании.
  • Солнцезащитные очки с линзами. Линзы с tinted/gradient материалом — через PBR с transmission и tint color. В RealityKit — .PhysicallyBasedMaterial с opacityThreshold и blending. Зеркальные линзы — environment texture reflection.

Сравнение ARKit и MediaPipe

Технология Точность mesh Доступность Производительность
ARKit (TrueDepth) 1220 точек (высокая) iPhone X+ Отличная, GPU
ARCore (depth) 468 точек (средняя) Pixel 3+, Galaxy S10+ Хорошая
MediaPipe ML Kit ~468 точек (низкая на движении) Любой Android Средняя (CPU)

ARKit точнее ARCore в 2–3 раза по числу точек mesh. Для очков точности MediaPipe достаточно при статичном кадре, но на динамике — джиттер. Мы используем MediaPipe только как fallback для устройств без depth-сенсора.

Производительность и Memory

На iPhone старше XR одновременный face tracking + высокополигональная модель + environment texturing даёт нагрузку на GPU. Металлические оправы с reflection требуют environment probe — это дополнительные draw calls.

Оптимизация: LOD (level of detail) для очков — полная модель при статичном кадре, упрощённая при движении. Текстуры 512×512 для мелких деталей оправы — достаточно для мобильного экрана. Мы гарантируем стабильные 30 FPS даже на устройствах с A12 Bionic.

Пошаговый процесс внедрения

  1. Аналитика и подготовка 3D-моделей: ретопология, настройка pivot, оптимизация под USDZ (iOS) и GLB (Android).
  2. Интеграция face tracking: ARKit ARFaceTrackingConfiguration / ARCore AugmentedFaces / MediaPipe с калибровкой под конкретную модель.
  3. Разработка UI/UX примерки: выбор оправы, ползунок размера, кнопка «Примерить», шаринг фото.
  4. Тестирование на 10+ реальных устройствах разных поколений.
  5. Документация и обучение: передача исходников, инструкция по добавлению новых моделей.
Детали технической реализации Мы используем PBR-материалы с environment-отражениями для металлических оправ. Для зеркальных линз применяем texture mapping на основе cubemap. LOD рассчитывается автоматически — при расстоянии >0.5 м модель заменяется на low-poly версию с 300 полигонами.

Сравнение подходов к масштабированию

Подход Точность UX Сложность реализации
Автоматический Высокая (по расстоянию между ушами) Отлично Средняя
Ручной Средняя (зависит от пользователя) Хорошо Низкая

Автоматический подход почти на 50% повышает точность посадки по сравнению с ручным. Средний бюджет проекта — от $2 000 до $4 000.

Ориентировочные сроки

Face tracking + базовая AR-примерка одной модели очков — 5–7 дней. Галерея оправ, масштабирование под лицо, шаринг — 2–3 недели. Поддержка Android через ARCore AugmentedFace — плюс 1 неделя. Свяжитесь с нами для демонстрации прототипа на вашем устройстве. Получите консультацию инженера по интеграции AR в ваш продукт.

Подбор оправ AR позволяет клиентам примерить до 40 моделей за минуту. Виртуальная примерка очков iOS и Android — наш профиль. Обращайтесь за деталями.

Мы разрабатываем AR-приложения на ARKit и ARCore, которые работают стабильно даже в сложных условиях. Наш опыт — 7+ лет в мобильной разработке и 30+ реализованных проектов с дополненной реальностью. Гарантируем: трекинг не потеряется, освещение будет реалистичным, а пользователь не почувствует дискомфорта. Сертифицированные разработчики Apple и Google.

Почему трекинг теряется и как это исправить?

ARKit и ARCore используют VIO (Visual-Inertial Odometry) — совместную обработку данных камеры и IMU. Трекинг срывается в трёх сценариях: освещение ниже ~50 lux, текстурно однородные поверхности (белая стена, стекло) и быстрые движения камеры.

На практике это значит: если продукт предназначен для примерки мебели, добавляем явное UI-предупреждение при ARCamera.TrackingState.limited(.insufficientFeatures). Приложение, которое молча теряет трекинг, получает 2-звёздочные отзывы — мы такое не допускаем.

Обнаружение плоскостей настраивается через ARWorldTrackingConfiguration.planeDetection = [.horizontal, .vertical]. Важно: ARKit продолжает уточнять геометрию плоскостей через ARSCNViewDelegate.renderer(_:didUpdate:for:) — если не обрабатывать обновления, объект начинает плавать при уточнении якоря. Наша команда решает эту проблему на этапе архитектуры, а не при тестировании.

AR Foundation: кросс-платформа с нюансами

Unity AR Foundation — слой абстракции поверх ARKit и ARCore. Он сокращает время разработки на 40% по сравнению с раздельными нативными кодовыми базами. Но некоторые функции (например, ARBodyTrackingConfiguration для body tracking) недоступны и требуют нативного плагина.

Для React Native и Flutter прямой AR Foundation отсутствует. Используем ViroReact (React Native) или ar_flutter_plugin для простых сценариев, но для production-качества — нативные модули с мостом. Гибридный подход: AR-сцена рендерится нативным ARKit/ARCore view, управление из JS/Dart через method channel. Входит в нашу стандартную поставку.

Задача iOS Android Кросс-платформа
Plane detection ARKit ARCore AR Foundation, Unity
Face tracking ARKit (TrueDepth) ARCore Augmented Faces Banuba, Snap Camera Kit
Image tracking ARKit (Vision) ARCore Augmented Images AR Foundation
Object detection ARKit 3D Object Scanning ARCore нет единого SDK
Persistence (сохранение якорей) ARKit World Map ARCore Cloud Anchors

Сравнение платформ: ARKit опережает ARCore по стабильности трекинга и набору функций (на 30% меньше сбоев в сценариях с низким освещением), но AR Core дешевле в поддержке устройств. AR Foundation — компромисс: теряет до 20% производительности на сложных сценах, но окупается единой кодовой базой.

Try-on: примерка товаров через AR

Примерка очков, украшений, косметики — отдельный класс задач. Здесь нужен face tracking, а не plane detection.

ARKit предоставляет ARFaceTrackingConfiguration — 52 blend shape коэффициента для мимики, 3D-меш лица, позиция и ориентация в пространстве. Работает только на устройствах с TrueDepth-камерой (iPhone с Face ID).

Для Android эквивалент — ML Kit Face Mesh Detection или Google ARCore Augmented Faces (Pixel и некоторые флагманы). Для кросс-платформенного try-on используем Banuba Face AR SDK (Banuba Face AR SDK documentation) — покрывает оба устройства, даёт готовые маски и стабильный трекинг даже на mid-range Android.

Качество try-on критически зависит от 3D-моделей товаров. Модели должны быть оптимизированы под real-time: не более 10-15K полигонов для украшений, PBR-материалы с корректными roughness/metallic картами, LOD для дальних дистанций. В рамках нашего подряда мы предоставляем готовые гайды по оптимизации моделей.

Как добиться реалистичного освещения в AR?

ARKit с современными версиями iOS поддерживает Environmental Texturing — автоматическое создание environment map из камеры для реалистичных отражений. Включается через ARWorldTrackingConfiguration.environmentTexturing = .automatic. Без этого металлические и стеклянные материалы выглядят пластиково.

ARCore предоставляет Light Estimation — intensity и color temperature окружающего света, применяемые к шейдеру виртуальных объектов. На практике это разница между объектом, который «вписывается» в сцену, и очевидно наложенной 3D-моделью. Мы гарантируем, что финальное изображение не выдаёт виртуальности.

Что входит в работу

  • Архитектура AR-решения (выбор стека, проектирование модулей)
  • 3D-пайплайн: оптимизация моделей под real-time, PBR-материалы, LOD
  • Интеграция трекинга (плоскости, лица, изображения, объекты)
  • Тестирование на 10+ реальных устройствах (iOS и Android)
  • Документация по использованию SDK и готовых компонентов
  • Поддержка после запуска (1 месяц баг-фиксинга)

Сроки и оценка

Простая AR-сцена с размещением одной 3D-модели на плоскости — 1–2 недели. Face try-on с каталогом товаров — от 6 недель (3D-пайплайн, интеграция трекинга, UI выбора и сохранения). Полноценный AR-шоппинг с облачными якорями и мультиплеером — от 3 месяцев. Оценим проект за 1 день — пишите, обсудим вашу AR-идею.