Технічна реалізація точної примірки окулярів у мобільному додатку
Клієнт приходить із задачею: впровадити примірку окулярів у мобільний додаток, щоб користувач міг бачити, як модель сидить на обличчі. Перша спроба з 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. Автоматичне масштабування в 2 рази точніше за ручне, дозволяючи досягти похибки менше 1 мм. - Ручний. Повзунок «розмір» в 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.
Що входить у роботу (deliverables)
- Підготовка 3D-моделей: ретопологія, налаштування pivot, оптимізація під USDZ (iOS) та GLB (Android).
- Інтеграція face tracking на iOS (ARKit) та Android (ARCore); для пристроїв без depth — MediaPipe ML Kit.
- Розробка UI/UX примірки: вибір оправи, повзунок розміру, кнопка «Приміряти», шеринг фото.
- Тестування на 10+ реальних пристроях різних поколінь.
- Документація: передача вихідників, інструкція з додавання нових моделей.
- Навчання команди замовника (2 години відеоконференції).
- Технічна підтримка протягом 2 тижнів після релізу.
Покроковий процес впровадження
- Аналітика та підготовка 3D-моделей: ретопологія, налаштування pivot, оптимізація під USDZ (iOS) і GLB (Android).
- Інтеграція face tracking: ARKit ARFaceTrackingConfiguration / ARCore AugmentedFaces / MediaPipe з калібруванням під конкретну модель.
- Розробка UI/UX примірки: вибір оправи, повзунок розміру, кнопка «Приміряти», шеринг фото.
- Тестування на 10+ реальних пристроях різних поколінь.
- Документація та навчання: передача вихідників, інструкція з додавання нових моделей.
Деталі технічної реалізації
Ми використовуємо PBR-матеріали з environment-відображеннями для металевих оправ. Для дзеркальних лінз застосовуємо texture mapping на основі cubemap. LOD розраховується автоматично — при відстані >0.5 м модель замінюється на low-poly версію з 300 полігонами.Наш досвід та компетенції
Ми маємо 5+ років досвіду в AR-розробці, реалізували понад 10 успішних проєктів для рітейлу, включаючи мережі оптик та аксесуарів. Наші інженери сертифіковані як ARKit та ARCore партнери. Пропонуємо інтеграцію AR-примірки під ключ за 2–3 тижні.
Порівняння підходів до масштабування
| Підхід | Точність | UX | Складність реалізації |
|---|---|---|---|
| Автоматичний | Висока (за відстанню між вухами) | Відмінно | Середня |
| Ручний | Середня (залежить від користувача) | Добре | Низька |
Автоматичний підхід майже на 50% підвищує точність посадки порівняно з ручним. Середній бюджет проєкту — від $2 000 до $4 000.
Орієнтовні терміни та вартість
Face tracking + базова AR-примірка однієї моделі окулярів — 5–7 днів. Галерея оправ, масштабування під обличчя, шеринг — 2–3 тижні. Підтримка Android через ARCore AugmentedFace — плюс 1 тиждень. Отримайте консультацію інженера з інтеграції AR у ваш продукт — пишіть нам, щоб оцінити ваш проект.
Підбір оправ AR дозволяє клієнтам приміряти до 40 моделей за хвилину. Віртуальна примірка окулярів iOS та Android — наш профіль. Звертайтеся за деталями.







