AR-приложение работает на A17 Pro без нареканий, а на Snapdragon 720G греется и падает до 20 FPS уже через две минуты. Это не баг устройства — это следствие того, что ARKit и ARCore имеют разные возможности, а 3D-контент, созданный без ограничений целевого железа, никогда не будет работать одинаково на всём парке устройств. Мы ежедневно сталкиваемся с такими задачами и разработали подход, который гарантирует стабильную работу AR даже на устройствах с ограниченными ресурсами. Более 7 лет опыта в AR-разработке и 30+ успешных проектов позволяют сократить расходы на доработки до 40% за счёт правильной классификации устройств на старте.
Как мы определяем целевые устройства?
Производительность AR напрямую зависит от класса устройства. Мы делим все смартфоны на три tier и для каждого подбираем оптимальные настройки.
| Tier | Примеры устройств | Полигональный бюджет | Текстуры | Постэффекты |
|---|---|---|---|---|
| High | iPhone 15 Pro, Pixel 8 | до 10 000 | 1024×1024 | Тени, bloom, рефлексии |
| Mid | iPhone 12, Galaxy A54 | до 5 000 | 512×512 | Fake shadow, cubemap |
| Low | iPhone SE 3, Redmi Note 11 | до 2 000 | 256×256 | Отключены |
На iOS tier определяется через MTLCreateSystemDefaultDevice().supportsFamily(_:), на Android — через Build.VERSION.SDK_INT, ActivityManager.getMemoryClass() и Session.isDepthModeSupported(). Такой подход гарантирует, что каждый пользователь получит приемлемый опыт без перегрева и лагов. Device Tiers сокращает время тестирования в 3 раза по сравнению с ручной настройкой под каждое устройство.
Как проходит оптимизация AR-контента под ключ?
- Аудит текущих 3D-моделей и шейдеров: проверка полигонального бюджета, формата текстур, использования PBR.
- Настройка LOD и адаптивных текстур: автоматическое переключение на упрощённые модели при удалении от камеры, оптимизация текстур под ASTC.
- Реализация Device Tiers с динамическим переключением: кодовая логика для определения класса устройства и загрузки соответствующего контента.
- Тестирование на 5+ реальных устройствах разного класса: проверка FPS, теплового троттлинга, стабильности сессии.
- Документация и обучение команды: описание архитектуры, инструкции по добавлению новых моделей.
- Поддержка после внедрения: помощь в интеграции и доработки под новые устройства.
Ограничения платформ: ARCore vs ARKit
ARCore минимально требует OpenGL ES 3.0 или Vulkan. Depth API (получение карты глубины с сенсора) доступен только на устройствах из списка Wikipedia: ARCore — это примерно 30% активных Android-устройств. Instant Placement, Scene Semantics — ещё меньший процент.
ARKit на iOS однороднее, но и здесь есть деление: LiDAR доступен с iPhone 12 Pro. Scene Reconstruction (меш реального мира) требует LiDAR. Без него — только плоскостная детекция.
Ошибка, которую делают часто: приложение разрабатывается на Pro-устройстве с LiDAR, а потом выясняется, что 70% целевой аудитории — пользователи без LiDAR, и весь опыт нужно переделывать. Мы изначально ориентируемся на минимальные требования заказчика и тестируем на устройствах, которые реально используют ваши клиенты.
Оптимизация 3D-моделей для AR
Полигональный бюджет для AR на мобильных — жёстче, чем для игр, потому что AR-рендеринг добавляется поверх camera feed, который сам требует GPU-ресурсов.
Практические ориентиры:
- Объект на переднем плане, детальный: до 10 000 полигонов
- Объект среднего плана, вспомогательный: 1 000–3 000
- Мелкие декоративные элементы: 100–500
LOD (Level of Detail) в AR — обязателен. SceneKit и RealityKit на iOS поддерживают LOD через LODComponent. В Unity с AR Foundation — стандартный LOD Group. Переключение на упрощённую модель при удалении объекта от камеры снижает нагрузку без видимых потерь. Сравнение: динамический LOD уменьшает нагрузку на GPU в 2–3 раза по сравнению с единым высокополигональным ассетом.
Текстуры: ASTC для iOS и Android. Для AR-объектов нормальных размеров 512×512 достаточно — пользователь смотрит на реальный мир, детали текстуры не так заметны. 2048×2048 для AR-объекта размером с чашку — избыточно.
Адаптивное качество по возможностям устройства
Стратегия Device Tiers: определяем класс устройства при запуске и настраиваем качество контента.
// iOS: определяем tier по GPU family let device = MTLCreateSystemDefaultDevice() if device?.supportsFamily(.apple7) == true { // A15+: максимальное качество, LiDAR-функции loadHighQualityAssets() } else if device?.supportsFamily(.apple6) == true { // A14: среднее качество loadMediumQualityAssets() } else { // A12-A13: базовое, без тяжёлых эффектов loadBaseQualityAssets() } На Android: Build.VERSION.SDK_INT + ActivityManager.getMemoryClass() + проверка поддержки ARCore Depth API через Session.isDepthModeSupported().
Шейдеры и постэффекты
Кастомные PBR-шейдеры в AR тяжелее стандартных, потому что AR-объекты должны визуально вписываться в сцену: ambient occlusion, тени на реальные поверхности, рефлексии от окружения.
На low-end устройствах отключаем:
- Real-time тени (заменяем на fake shadow — спрайт под объектом)
- Bloom и другие постэффекты
- Environment reflections (заменяем на статичный cubemap)
В RealityKit эти параметры управляются через RenderOptions и Environment. В Unity AR Foundation — через Universal Render Pipeline с адаптивными Renderer Features.
Как оптимизировать шейдеры для разных устройств?
Шейдеры — основной потребитель GPU. Используйте Shader Graph с вариантными ветками под разные GPU family. Например, для low-end отключайте маты, сложные нормальные карты и прозрачность.
Почему важно тестировать на mid-range?
Mid-range устройства составляют >50% рынка. Тестирование только на флагмане даёт ложное чувство стабильности. На mid-range проверяем тепловой троттлинг: 5 минут активного AR → измеряем FPS через fps метрику или CADisplayLink callback. Если через 3 минуты FPS снижается — перегрев, нужно снижать качество динамически при ProcessInfo.thermalState >= .serious.
Минимальный набор для тестирования:
- Флагман текущего года (iPhone 15, Pixel 8)
- Mid-range 2–3 летней давности (iPhone 12, Samsung Galaxy A54)
- Low-end без LiDAR/Depth API (iPhone SE 3rd gen, Xiaomi Redmi Note 11)
Свяжитесь с нами для аудита вашего AR-проекта — мы предложим оптимальный план работ и сроки. Закажите аудит AR-проекта уже сегодня. Получите консультацию: опишите задачи, и мы оценим объём оптимизации уже в первый день.







