Как оптимизировать 3D-модели для мобильных игр: полигоны, LOD'ы и текстуры

Практический разбор: бюджеты полигонов, LOD-системы, сжатие текстур и сокращение draw call'ов — чтобы 3D-модели реально работали на живых мобильных устройствах.

Команда Wandy3DОбновлено 7 мин чтения

3D-модель, которая выглядит шикарно во вьюпорте, может убить среднебюджетный Android-смартфон. Мобильная оптимизация — это не про срезание углов, а про понимание ограничений и проектирование в их рамках. Сделаете правильно — игра не греется, тратит меньше батареи и помещается в 150 МБ установочного размера, который реально влияет на скачивания.

Вот практическое руководство, как делать 3D-модели, которые действительно работают на телефонах.

Почему мобильная оптимизация — обязательна

Мобильные GPU — это tile-based deferred renderers. Они обрабатывают геометрию иначе чем десктопные, и overdraw для них смертелен. Помимо чистого FPS, кусают четыре вещи:

  • Тепловой троттлинг — перегрузите SoC, и через 90 секунд он сбросит частоту, ополовинив производительность на остаток сессии
  • Расход батареи — игроки удаляют игры, которые убивают телефон за 20 минут
  • Размер установки — Google Play режет free-установки по сотовой связи на 200 МБ; App Store на 200 МБ без предупреждения
  • Слабый Android — если вы целитесь в глобальный рынок, половина аудитории сидит на устройствах слабее iPhone 2019 года

Бюджеты полигонов, которые реально работают

A model at decreasing wireframe densities

Бюджеты на ассет для игры на среднем Android (Snapdragon 7-серии, железо ~2022 года):

  • Hero-ассет (главный персонаж, ключевой предмет): 5 000–15 000 треугольников
  • Второстепенные предметы (мебель, разрушаемые объекты): 1 500–5 000 треугольников
  • Фон / дальние объекты: 200–1 500 треугольников
  • Общий бюджет на экран: 100 000–250 000 треугольников на всю сцену

iOS более лоялен — GPU от Apple примерно в 2 раза мощнее эквивалентного Android в той же ценовой категории. Для iOS-first проектов эти числа можно удваивать. Про то, как выглядит mobile-friendly AI-генерация, смотрите сравнение генераторов 2026.

LOD-системы: самый большой выигрыш

LOD levels fading into distance

Level of Detail (LOD) подменяет высокополигональный меш всё более простыми версиями по мере удаления камеры. Сделано правильно — это самый мощный рычаг производительности.

  • LOD0 — полное качество, в радиусе ~10 м от камеры. 100% полигонов источника.
  • LOD1 — редукция 50%, на 10–30 м
  • LOD2 — редукция 75%, на 30–60 м
  • LOD3 (опционально) — billboard или редукция 90%+, дальше 60 м

В Unity есть встроенный компонент LOD Group. Unreal делает это в Static Mesh Editor. Оба поддерживают автогенерацию, но настроенные вручную LOD'ы всегда выглядят лучше на дистанциях перехода.

Оптимизация текстур

A packed texture atlas sheet

Текстуры жрут больше памяти, чем геометрия в большинстве мобильных игр. Три тактики:

Атлас-сборка

Объедините текстуры нескольких объектов в один лист. Один атлас 2048×2048 на десять пропсов значительно дешевле, чем десять текстур 512×512 — меньше биндов и draw call'ов.

Форматы сжатия

  • ASTC — используйте на современных устройствах (iOS 9+, Android с OpenGL ES 3.2). Регулируемый размер блока от 4×4 (качество) до 12×12 (сжатие).
  • ETC2 — fallback для старых Android. Хуже ASTC по качеству, но универсально поддерживается на OpenGL ES 3.0+.
  • Никогда не отгружайте несжатый RGBA на мобильные. Никогда.

Выбор разрешения

Hero-ассеты получают 1024×1024 или 2048×2048. Фоновые пропсы — 256×256 или 512×512. Mipmaps обязательно включены — экономят bandwidth GPU и убирают мерцание.

Сокращение draw call'ов

На мобильных каждый draw call стоит примерно 0.1 мс CPU. Держите сцену меньше 100 draw call'ов, если хотите 60 FPS на среднем устройстве. Две основные техники:

  • Атлас материалов — объекты с одним материалом батчатся. Не давайте каждому пропсу уникальный материал.
  • GPU instancing — для повторяющихся объектов (деревья, камни, конусы) включите instancing в шейдере. Сотни инстансов рендерятся одним вызовом.

Стратегия освещения

Реалтайм-свет дорогой. Запекайте всё, что можно:

  • Лайтмапы для статической геометрии — здания, ландшафт, неподвижные пропсы
  • Light probes через каждые 2–4 метра — динамические объекты сэмплируют запечённый GI
  • Максимум один реалтайм directional light — солнце. Всё остальное запечено.
  • Избегайте реалтайм-теней на мобильных, либо ограничьте их одним hero-светом с узким cascade-диапазоном

Советы по AI-сгенерированным GLB

AI-генераторы делают меши под визуальное качество, а не под мобильные игры. После генерации ожидайте такие проходы:

  1. Снизьте число треугольников — сырая ИИ-модель обычно намного плотнее мобильного бюджета. Сделайте в Wandy3D ремеш на чистые квады от 2 000 до 10 000 граней с перезапечёнными текстурами — или используйте модификатор Decimate в Blender либо Unity Mesh Decimator.
  2. Уменьшите текстуры — генераторы часто выдают 2048×2048. Урежьте до 1024 для hero, 512 для пропсов.
  3. Запеките нормали с высокополигонального источника до децимации — это сохранит детали поверхности, которые упрощённый меш геометрически уже не несёт.
  4. Реэкспорт в GLB с Draco-сжатием, если движок поддерживает.

Если вы новичок в пайплайне AI-в-движок, наш гайд для инди-разработчиков закрывает весь маршрут. По текстурам смотрите разбор PBR-текстур.

Инструменты, которые стоит знать

  • Unity Mesh Decimator (бесплатный, open source) — качественная автоматическая децимация внутри Unity
  • Simplygon — индустриальный стандарт LOD-генерации, бесплатно для инди с выручкой до $250k
  • Blender Decimate modifier — встроенный, работает на любой платформе, отлично для разовой чистки
  • Crunch / Basis Universal — supercompressed форматы текстур, транскодируются в ASTC/ETC2 в рантайме, режут размер установки

Профилируйте на реальном устройстве

Симулятор врёт. Всегда профилируйте на самом дешёвом целевом устройстве, которое можете купить. Unity Profiler или Unreal Insights по USB:

  • GPU bound — уменьшайте overdraw, упрощайте шейдеры, режьте разрешение текстур
  • CPU bound — сокращайте draw call'ы, агрессивнее батчите, убирайте per-frame аллокации
  • Memory bound — сжимайте текстуры сильнее, стримьте ассеты, выгружайте неиспользуемые сцены

Итог

Мобильная оптимизация — это негламурное ремесло, но именно она отделяет игру, которая выходит, от игры, которую удаляют после первой сессии. Назначьте бюджеты полигонов рано, постройте нормальную LOD-цепочку, сжимайте каждую текстуру, профилируйте на живом железе — это покрывает 80% выигрышей.

Готовы получить mobile-friendly ассеты? Сгенерируйте первую модель на Wandy3D, посмотрите модели сообщества для вдохновения или посмотрите тарифы со скачиванием во всех форматах. По основам фото-в-модель начните с гайда для новичков.