Создание 3D-моделей для AR-приложения
3D-модель для AR — не то же самое, что 3D-модель для кино или игрового движка. Другие требования к полигонажу, текстурам, форматам и масштабу. Модель, которая отлично выглядит в Cinema 4D, может дать 5 FPS на iPhone и неправильный масштаб в ARKit.
Создание AR-ready 3D-моделей — это весь пайплайн: от референсов до оптимизированного USDZ или GLB на CDN.
Технические требования к AR-модели
Полигонаж. Для мобильного AR — не более 50 000–100 000 полигонов на объект. Сцена с несколькими объектами: суммарно до 300 000. Выше — FPS проседает на устройствах без PRO-чипа. Для простых объектов (коробка, стакан) — 500–3000 полигонов.
Текстуры. Максимальный размер — 2048×2048 пикселей. Для маленьких объектов — 1024×1024. Форматы:
- iOS/USDZ: PNG или JPEG для diffuse, отдельные карты для normal, roughness, metallic
- Android/GLB: предпочтительно JPEG для diffuse (меньше размер), PNG для прозрачности
UV-развёртка. Без перекрытий, без растяжений. Для AR особенно важно: модель рассматривают вблизи, артефакты UV заметны.
Масштаб. 1 единица = 1 метр. Обязательно для корректного отображения в ARKit/ARCore. Диван шириной 2.2 метра — это 2.2 юнита в сцене. Проверяем размеры в Blender через N-панель перед экспортом.
Pivot point. Точка вращения и размещения — в центре основания объекта для мебели, в геометрическом центре для остальных. ARKit ставит модель relative to pivot — если pivot не там, объект «плавает» над полом или уходит под него.
Пайплайн создания AR-модели
Референсы → Low Poly моделирование → UV → Текстурирование → Оптимизация → Экспорт
Работаем преимущественно в Blender (бесплатный, мощный, есть Python API для автоматизации). Для органики — ZBrush с ретопологией в Blender. Текстуры — Substance Painter для PBR-материалов.
Оптимизация геометрии: Decimate modifier в Blender с контролем качества — убираем полигоны, которые не видны при нормальном ракурсе. Для круглых объектов (вазы, колёса) — шейдинг через normal map, а не геометрию: 16-угольник с нормалью выглядит как цилиндр, но полигонов в 5 раз меньше.
Baking. Если источник — высокополигональная модель (фотограмметрия, CAD-импорт), запекаем normal map, ambient occlusion, curvature в Substance Painter. Это даёт детализацию высокополигональной модели при полигонаже низкополигональной.
Экспорт в AR-форматы
USDZ для iOS:
# Через Apple's reality-converter или usdz_converter
xcrun usdz_converter model.usda model.usdz
# Или через Python USD библиотеку
from pxr import Usd, UsdGeom
USDZ — это ZIP-архив с USD-файлами и текстурами. Важно: текстуры внутри USDZ должны быть PNG (не JPEG) если нужна прозрачность. Размер: оптимизируем через TextureConverter от Apple, сжатие ASTC для текстур.
GLB для Android:
Blender нативно экспортирует GLB с материалами. Проверяем через Khronos glTF Validator — ошибки в glTF часто проявляются только на устройстве. Draco-сжатие геометрии через gltf-pipeline:
gltf-pipeline -i model.glb -o model_compressed.glb --draco.compressionLevel 7
Уменьшает размер геометрии на 60–80%, без заметной потери качества.
Что делаем с CAD и поставщиками
Производители дают STEP, IGES, SolidWorks файлы — это точные CAD-модели с миллионами полигонов. Прямой импорт в AR = 2 FPS. Пайплайн конвертации:
- Импорт STEP в FreeCAD или Fusion 360
- Экспорт в OBJ/FBX
- Ретопология в Blender (автоматическая через Remesh modifier, ручная для важных деталей)
- UV и текстурирование
- Экспорт в USDZ/GLB
Время на одну CAD-модель: 4–16 часов в зависимости от сложности.
Сроки
| Тип объекта | Сложность | Сроки |
|---|---|---|
| Простой объект (коробка, бутылка) | Низкая | 1–2 дня |
| Мебель / бытовая техника | Средняя | 2–5 дней |
| Сложный механизм / транспорт | Высокая | 1–3 недели |
| Персонаж без анимации | Высокая | 1–2 недели |
Стоимость рассчитывается после оценки референсов и требуемого качества текстур. Пакетная работа (10+ моделей) — по отдельному тарифу.







