3D-модели в GLB/GLTF для Android AR: пайплайн конвертации

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

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

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
3D-модели в GLB/GLTF для Android AR: пайплайн конвертации
Простой
~1 день
Часто задаваемые вопросы

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

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

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

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    859
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    746
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1162
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1035
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    969
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    563

Мы сталкивались с ситуацией: клиент разрабатывает Android AR-приложение на ARCore, а 3D-модели в FBX с Blinn-Phong материалами — не загружаются. Однажды потеряли два дня на дебаг модели, которая отображалась серым квадратом — оказалось, UV-развёртка сбита. GLB — бинарный контейнер формата glTF 2.0, стандарт Khronos glTF 2.0 Specification. ARCore, Sceneform, model-viewer, WebXR — все используют glTF/GLB. В отличие от USDZ, GLB работает кросс-платформенно: Android AR, WebAR, Three.js, Babylon.js, Unity, Unreal. Но «открытый стандарт» не означает «всё просто конвертируется без проблем». За годы работы над AR-проектами мы выработали пайплайн, который гарантирует совместимость и производительность — расскажем о нём. Плохая конвертация приводит к перерасходу бюджета на повторную обработку: средняя экономия на хранении и передаче после Draco-сжатия составляет 70–90%. Получите консультацию по пайплайну конвертации.

Структура GLB и требования для AR

glTF 2.0 описывает сцену через JSON: меши, материалы (PBR metallic-roughness workflow), анимации, скины, камеры, свет. GLB упаковывает JSON + бинарные данные (геометрия, анимации) + текстуры в один файл.

Обязательные требования для Android ARCore / Sceneform:

  • Материалы только через pbrMetallicRoughness — Blinn-Phong, Phong, Lambert не поддерживаются
  • Текстуры: PNG (с alpha) или JPEG (без alpha), max 2048×2048
  • Геометрия: только треугольники (TRIANGLES primitive mode), не quads
  • Нет нереференсированных нод и материалов (валидатор ругается)
  • asset.generator — желательно указывать (помогает при дебаге совместимости)

Как конвертировать FBX, OBJ и USDZ в GLB?

FBX → GLB. Blender — лучший промежуточный конвертер:

blender --background --python fbx_to_glb.py -- input.fbx output.glb

Python-скрипт для Blender:

import bpy
bpy.ops.import_scene.fbx(filepath=input_path)
bpy.ops.export_scene.gltf(
    filepath=output_path,
    export_format='GLB',
    export_materials='EXPORT',
    export_animations=True,
    export_apply=True  # применяет модификаторы
)

Главная проблема FBX → GLB через Blender: материалы FBX часто используют Standard или Lambert шейдеры — Blender конвертирует их в Principled BSDF, но параметры (specular, shininess) маппятся приблизительно. Результат нужно проверять визуально.

OBJ → GLB. OBJ не поддерживает анимацию, PBR-материалы (только MTL с Kd/Ks), скины. Для статичных объектов — конвертация через Blender или obj2gltf. MTL-файл маппится в glTF pbrMetallicRoughness приблизительно: KdbaseColorFactor, map_KdbaseColorTexture. Карты normal, roughness, metallic из MTL не подхватываются — нужно добавлять вручную через glTF-пайплайн.

USDZ → GLB (iOS → Android). Apple Reality Converter может экспортировать в USD/OBJ, затем через Blender в GLB. Прямого конвертера USDZ→GLB нет — обязательный промежуточный шаг через USD Python API или Blender.

Как выполняется конвертация: пошагово

  1. Подготовка исходной модели. Проверка UV-развёртки, масштаба, PBR-материалов. Устранение дублей геометрии.
  2. Конвертация. Используем Blender, obj2gltf или USD Python API в зависимости от формата.
  3. Постобработка. Ручная коррекция материалов, удаление неиспользуемых нод, назначение doubleSided при необходимости.

Почему важна оптимизация для мобильного AR?

Без оптимизации даже простая модель может вызывать лаги на средних устройствах. Используем три техники:

Draco-сжатие. Сжимает геометрию на 60–90% без видимой потери качества. KTX2/Basis Universal текстуры. GPU-сжатые текстуры, загружаются быстрее и занимают меньше VRAM. Basis Universal декодируется на GPU — не нужно распаковывать в RAM. На Android AR снижает потребление памяти на 40–60%. Mesh quantization. Упаковка float32 координат вершин в int16 — потеря точности < 0.01%, выигрыш по размеру 25–40%.

Команды для оптимизации:

# Draco compression
npx gltf-pipeline -i model.glb -o model_draco.glb --draco.compressionLevel 7
# KTX2 textures
npx gltf-transform etc1s model.glb model_ktx2.glb
# Quantization
npx gltf-transform quantize model.glb model_quantized.glb

Валидация

glTF Validator от Khronos — обязателен перед деплоем:

npx gltf-validator model.glb

Выдаёт ошибки и предупреждения с кодами. Коды типа ACCESSOR_ELEMENT_OUT_OF_MIN_BOUND — плавающие значения вне допустимого диапазона, часто из FBX-конвертации.

model-viewer (Google) — браузерный просмотрщик glTF, показывает модель как в ARCore. Идеален для быстрой проверки до установки на устройство.

Типичные ошибки

Ошибка Последствие Решение
Модель без UV-развёртки В ARCore белая или серая Развернуть UV в Blender
Double-sided не указан Внутренние грани не видны Добавить doubleSided: true
Координаты в дюймах вместо метров Объект микроскопический или гигантский Масштабировать до метров
Non-linear interpolation анимации glTF не поддерживает Конвертировать в LINEAR или CUBICSPLINE

Что входит в услугу конвертации под ключ

  • Анализ исходных моделей (формат, материалы, анимации)
  • Конвертация в GLB с ручной коррекцией материалов
  • Оптимизация (Draco, KTX2, quantization)
  • Валидация через glTF Validator и model-viewer
  • Документация: отчёт о конвертации, чек-лист совместимости
  • Гарантия: модель корректно отображается на ARCore-устройствах

Сроки

Объём Сроки
1–10 моделей с ручной конвертацией и проверкой 1–3 дня
Автоматизированный пайплайн FBX/OBJ → GLB 1 неделя
Пакет 50–200 моделей с оптимизацией и валидацией 2–3 недели
Пример конвертации Недавно конвертировали партию из 100 моделей интерьерной мебели из FBX в GLB. После Draco-сжатия средний размер файла уменьшился с 25 МБ до 3 МБ. Клиент отметил, что приложение стало загружаться вдвое быстрее на устройствах среднего сегмента.

Свяжитесь с нами для оценки вашего проекта — мы подготовим предложение с учётом экономии до 60% на размере файлов. Закажите конвертацию с гарантией совместимости. Более 100 успешно конвертированных проектов за годы работы — доверяйте опытным инженерам.

Мы разрабатываем 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-идею.