Тестування стабільності AR-трекінгу в різних умовах освітлення

Тестування стабільності AR-трекінгу в різних умовах освітлення Користувач ставить віртуальний об'єкт на стіл, а той висить у повітрі — це не баг, а втрата трекінгу через освітлення. Ми стикаємося з цим на кожному другому проєкті. Сонячне світло під кутом 15°, флуоресцентне мерехтіння 100 Гц, темн

Наші компетенції

Інші послуги студії

VR/AR/MR застосунки на замовлення

Вражайте клієнтів і навчайте команду у віртуальній реальності

Розробка ігор на Unity

Від ідеї до релізу — ігри, які запам'ятовуються

3D-моделювання та анімація

Оживимо ваш продукт в об'ємній графіці та анімації

VR-тренажери промислового обладнання

Тренуємо операторів на техніці без ризику і простою

AR-інструкції для виробництва

Покрокові підказки прямо на обладнанні — без паперу

Safety-тренажери

Відпрацювання НС і техніки безпеки без виходу на об'єкт

VR/AR-тренінги

Навчаємо персонал сервісу, адаптації та soft skills у VR

Навчальні вікторини

Перевірка знань у форматі гри — легко і без стресу

Корпоративні відеоінструкції

Зрозумілі ролики для навчання співробітників і клієнтів

Гейміфікація бізнес-процесів

Мотивуємо команду через ігрові механіки в KPI та HR

Застосунки для інфокіосків

Інтерактивні екрани для магазинів, стендів і офісів

VR/AR-інсталяції

Wow-ефект для брендів на виставках, івентах і в шоу-румах

Віртуальні виставки та музеї

Ваша експозиція доступна з будь-якої точки світу — 24/7

Event-квести та брендовані ігри

Незабутні ігри для конференцій та клієнтських івентів

Часті запитання

Останні роботи

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    1504
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    1006
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    635
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    716
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Навчальна вікторина для дітей «Покупки в магазині»
    95

Тестування стабільності AR-трекінгу в різних умовах освітлення

Користувач ставить віртуальний об'єкт на стіл, а той висить у повітрі — це не баг, а втрата трекінгу через освітлення. Ми стикаємося з цим на кожному другому проєкті. Сонячне світло під кутом 15°, флуоресцентне мерехтіння 100 Гц, темна кімната з точковим LED — кожен сценарій ламає трекінг по-своєму. Багаторічний досвід (понад 30 проєктів, 5+ років на ринку) дозволяє передбачити ці сценарії та усунути їх до релізу. Зв'яжіться з нами для детального аудиту вашого проєкту.

Чому трекінг втрачається при поганому освітленні?

Алгоритми Visual Inertial Odometry (VIO), на яких побудовані ARCore та ARKit, використовують feature points — характерні точки в кадрі — для обчислення положення камери. При освітленості нижче ~50 лк кількість надійних точок різко падає, і система компенсує втрату за рахунок IMU. Це працює, поки IMU не накопичує дрейф. На практиці — 3–4 секунди в поганому світлі, і якір «спливає» на 5–8 см. В іграх це катастрофа: об'єкт висить у повітрі замість поверхні.

Пересвіт також критичний: пряме сонячне світло створює зони з saturated пікселями, де feature extraction не працює. ARKit повідомляє про це через ARCamera.TrackingState з reason .insufficientFeatures, ARCore — через TrackingFailureReason.INSUFFICIENT_LIGHT. Пороги спрацьовування різняться, але обидва дають можливість показати користувачеві попередження.

Флуоресцентні лампи — окремий клас болю. На частотах 50/60 Гц вони створюють мерехтіння, яке сенсор фіксує як регулярні перепади експозиції. Візуально це майже непомітно, але алгоритм бачить, як feature points «дихають» між кадрами, та інтерпретує це як рух камери. Згідно з документацією Apple, ARKit використовує VIO та детектує нестачу освітленості через ARCamera.TrackingState.

Як ми тестуємо різні типи освітлення?

Стандартна матриця тестів включає три осі:

  • Рівень освітленості: темна кімната (~10–30 лк), офіс (~300–500 лк), похмура вулиця (~1000–5000 лк), пряме сонячне світло (>50 000 лк).
  • Тип джерела: точковий (LED), лінійний (флуоресцентна лампа), дифузний (хмари), змішаний (вікно + стеля).
  • Динаміка: статика, тіні, що проходять, зміна день/ніч, миготливе світло.

Для кожного сценарію фіксуємо: час до втрати трекінгу, максимальний дрейф ARAnchor за 60 секунд, кількість подій .limited, час відновлення.

Інструментарій: кастомний overlay в Unity AR Foundation з виведенням стану сесії в реальному часі, запис через ReplayKit (iOS) або MediaProjection (Android).

Умова освітлення Очікувана поведінка трекінгу Типовий сценарій втрати
< 50 лк Часті .limited (insufficientFeatures) Через 5–10 сек
50–300 лк Нестабільний, залежить від текстури поверхні При русі камери
300–5000 лк Робочий діапазон Втрата при пересвіті
> 20 000 лк (пряме сонце) Saturated frame, повна втрата Негайно
Детальніше про методикуТестування проводиться на реальних пристроях з різними камерами (останні моделі iPhone та Galaxy). Ми використовуємо димовані LED-панелі для точного встановлення рівня освітленості та спектрометр для верифікації.

Порівняння ARCore та ARKit при низькому освітленні

Параметр ARCore ARKit
Поріг переходу в .limited ~30 лк ~50 лк
Реакція на мерехтіння Довше утримує трекінг Частіше переходить у .limited
Використання IMU при втраті feature points Агресивна фільтрація зсуву Швидке сповіщення через .insufficientFeatures

ARCore утримує трекінг на 30% довше ніж ARKit в умовах мерехтіння, що важливо для додатків з довгими сесіями.

Що робити, якщо трекінг збоїть на сонці

Зазначимо: коли трекінг нестабільний у конкретному діапазоні — це задача для UX. Декілька прийомів:

  • Включення ARWorldTrackingConfiguration.environmentTexturing допомагає ARKit краще розуміти оточення, але збільшує споживання пам'яті. На iPhone 12 і старше це виправдано.
  • Для поганого світла — примусовий plane detection з ARPlaneDetectionMode та якорі до площин замість feature points. Так стійкіше.
  • На Android — налаштування Config.FocusMode.FIXED знижує «розмиті» кадри при швидкому русі в низькому освітленні.

Неправильна оцінка освітлення обходиться в додаткові тижні QA та до 20% бюджету на переробку. Своєчасне тестування дозволяє заощадити до 40% бюджету на етапі оптимізації, що для середнього проєкту становить близько $2000–$5000.

Як провести тестування AR-трекінгу: покроковий план

  1. Зберіть ТЗ: цільові платформи, версії ОС, моделі пристроїв, типові умови використання, допустимий дрейф якорів.
  2. Підготуйте тестове середовище: регульовані світильники, штори, набір таргетів з різною текстурою.
  3. Проженіть матрицю сценаріїв, фіксуючи метрики: час до втрати трекінгу, дрейф ARAnchor, події .limited.
  4. Проаналізуйте результати: визначте критичні пороги освітленості для кожної платформи.
  5. Внесіть корективи в конфігурацію AR-сесії та UX-обробку станів.

Що входить у роботу

  • Розробка тестової матриці під вашу специфіку (платформи, пристрої, типові сценарії).
  • Проведення тестів на iOS/Android з фіксацією метрик.
  • Документування результатів: пороги дрейфу, рекомендації з конфігурації сесії.
  • Інтеграція обробки станів трекінгу в код проєкту.
  • Навчання команди: міні-документація та code review.

Гарантуємо якість тестування з першої ітерації завдяки сертифікованим фахівцям з AR (досвід роботи з ARKit та ARCore понад 5 років).

Процес роботи

Збираємо ТЗ: цільові платформи, версії ОС, моделі пристроїв, типові умови використання, допустимий дрейф якорів. Готуємо тестове середовище: регульовані світильники, штори, набір таргетів з різною текстурою. Проженяємо матрицю сценаріїв, фіксуємо метрики, готуємо звіт з порогами та рекомендаціями. При необхідності правимо конфігурацію AR-сесії або додаємо UX-обробку критичних станів.

Терміни — від 2–3 днів для однієї платформи до 2–3 тижнів для повного покриття з ітераціями. Для невеликих проєктів вартість тестування стартує від $500, для комплексних — до $3000. Замовте консультацію — оцінимо ваш проєкт за 1 день. Працюємо під ключ.