# Почему 3D-модель тормозит на телефоне и как это исправить

> Модель тормозит, когда она слишком тяжела для телефона хотя бы по одному из трёх параметров: размер файла (долго грузится), память видеокарты (текстуры и геометрия не помещаются) и число вызовов отрисовки, draw calls (слишком много отдельных деталей и материалов). Лечится облегчением геометрии, уменьшением и сжатием текстур — формат KTX2 остаётся сжатым и в памяти видеокарты, — сжатием геометрии Meshopt или Draco и объединением материалов.

Source: https://gluke.ru/ru/knowledge/mobile-3d-performance · Author: Александр Глухов · Updated: 2026-10-08

На рабочем компьютере модель крутится плавно, а у покупателя на телефоне грузится минуту и дёргается. Причина почти всегда в одном из трёх мест.

## Три причины

1. **Тяжёлый файл** — долго скачивается по мобильному интернету.
2. **Не хватает памяти видеокарты** — модель не помещается в память телефона, браузер тормозит или перезагружает страницу.
3. **Слишком много вызовов отрисовки** — видеокарта получает сотни мелких заданий вместо нескольких крупных.

## Текстуры: файл и память — разные вещи

> **Схема:** Две пары полосок. JPEG или PNG: короткая полоска на диске и очень длинная в памяти видеокарты. KTX2: на диске чуть длиннее, в памяти — короткая.
>
> JPEG и PNG компактны на диске, но видеокарта распаковывает их целиком. KTX2 остаётся сжатым и в памяти.

JPEG и PNG компактны на диске, но видеокарта распаковывает их целиком. Текстура 4096×4096 занимает в памяти около 64 МБ, сколько бы ни весил файл. Формат **KTX2** остаётся сжатым и в памяти видеокарты — поэтому для веба и AR текстуры переводят в него.

> **Схема:** Три вложенных квадрата в масштабе: 1024, 2048 и 4096 пикселей по стороне. Справа подписи: 1024 — память один, 2048 — в четыре раза больше, 4096 — в шестнадцать раз больше.
>
> Вдвое больше сторона — вчетверо больше памяти.

Каждое удвоение стороны текстуры — вчетверо больше памяти. Переход с 4096 на 2048 экономит три четверти. На экране телефона разницу между ними для большинства деталей не видно.

## Геометрия

Плотная [сетка](https://gluke.ru/ru/knowledge/glossary#mesh) — больше вершин, тяжелее файл и больше работы видеокарте. Невидимые детали убирают, сетку упрощают там, где это незаметно, а саму геометрию сжимают — Meshopt или Draco.

## Draw calls

> **Схема:** Слева двенадцать деталей с разными материалами — двенадцать линий к видеокарте. Справа детали сведены в три материала — три линии.
>
> Каждая деталь со своим материалом — отдельное задание видеокарте.

Каждая отдельная деталь со своим материалом — отдельное задание видеокарте, вызов отрисовки (draw call). Сотни таких заданий тормозят даже мощный телефон. Детали объединяют, материалы сводят к нескольким.

## Как проверить

- Открыть модель на **среднем** телефоне, а не на флагмане.
- Посмотреть вес файла и время загрузки на мобильном интернете.
- Открыть модель в техническом просмотрщике вроде gltf.report: он показывает число треугольников, размер текстур и материалов.

Для сцен с множеством объектов есть ещё один приём — уровни детализации; о нём статья [LOD](https://gluke.ru/ru/knowledge/lod).

## Как это выглядит на практике

- [Hilbert](https://gluke.ru/ru/projects/hilbert-house): AR работает с телефона, и дом нужно держать в памяти вместе с камерой и трекингом. Модели переведены на Meshopt и KTX2 — в памяти движка они занимают в три-четыре раза меньше исходных [GLB](https://gluke.ru/ru/knowledge/glossary#glb).
- [RP Grand](https://gluke.ru/ru/projects/rp-grand): материалы сведены к трём — кузов, салон, стекло — ради минимума draw calls; полная сборка машины — около девяти тысяч треугольников.
- [Getic](https://gluke.ru/ru/projects/getic): сжатие текстур под движок и облегчённая версия геометрии для мобильного трафика.

## Частые ошибки

- Смотреть только на размер файла и не думать о памяти.
- Текстуры 4096 на каждую мелкую деталь.
- Сотни отдельных материалов.
- Проверять только на рабочем компьютере.

## Чек-лист

1. Вес файла.
2. Размер текстур и формат KTX2.
3. Геометрия: невидимое убрано, сжатие Meshopt или Draco.
4. Материалов — несколько, а не сотни.
5. Проверка на среднем телефоне.
