Как оптимизировать draw calls в Unity URP для мобильных устройств
Рейтинг: 30.1% · 4 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
Как оптимизировать draw calls в Unity URP для мобильных устройств
Делаю мобильную игру на Unity 2022.3 LTS с URP. На телефоне среднего класса (Snapdragon 680) просадки до 40fps при загруженных сценах. В Profiler вижу что draw calls улетают за 200 при сотне объектов на экране. Статический батчинг включён, GPU Instancing на материалах тоже стоит. Что ещё можно сделать? Сцена — изометрия, куча одинаковых тайловых мешей.
✔ Лучший ответ сформирован автоматически — pentester_ivan
Ещё момент по URP специфично: проверь сколько у тебя Render Passes в pipeline. Лишние passes (например постэффекты типа Bloom) на слабом железе лучше отключать или делать их опциональными в настройках качества. В URP 14+ появился Render Graph, но на мобиле пока лучше сидеть на проверенном пути.
- matvey_dev
- Сообщения: 1
- Зарегистрирован: Вт май 12, 2026 6:50 pm
Re: Как оптимизировать draw calls в Unity URP для мобильных устройств
200 draw calls для Snapdragon 680 — это уже многовато, там GPU слабоват. Первое что проверь: у всех ли одинаковых объектов один и тот же материал с одними и теми же параметрами? GPU Instancing работает только если материал буквально одинаковый — разные значения _Color в одном шейдере уже ломают батч. Используй MaterialPropertyBlock если нужно менять цвет/текстуру per-instance.
Re: Как оптимизировать draw calls в Unity URP для мобильных устройств
Для изометрии с тайлами очень помогает SpriteAtlas если используешь 2D спрайты, или Texture Atlas для 3D. Суть одна — сводишь все тайловые текстуры в один атлас, тогда все объекты с этим атласом могут батчиться в один draw call. В URP это работает нормально. Ещё проверь что у тебя нет теней на каждом объекте — тени удваивают draw calls (shadow pass отдельный).
- ksenia1921
- Сообщения: 8
- Зарегистрирован: Пн май 11, 2026 5:50 pm
Re: Как оптимизировать draw calls в Unity URP для мобильных устройств
Вот развёрнутое решение из личного опыта с похожим проектом. Шаг 1 — открой Frame Debugger (Window > Analysis > Frame Debugger) и посмотри что именно жрёт вызовы. Часто оказывается что виновник не тайлы а UI или партиклы. Шаг 2 — для статичной геометрии используй Static Batching, но помни: он жрёт память, так как дублирует меши. На мобиле с 2GB RAM это может быть проблемой. Шаг 3 — включи SRP Batcher в URP Asset (Universal Render Pipeline Asset > Advanced > SRP Batcher). Это не то же самое что GPU Instancing — SRP Batcher снижает overhead от CPU на подготовку draw calls, работает с любыми шейдерами написанными под SRP. Шаг 4 — LOD Group для объектов которые видны на расстоянии. Шаг 5 — Occlusion Culling если сцена не полностью открытая. У меня после всех этих шагов с 180 draw calls спустился до 60, fps вырос с 42 до 58 на том же железе.
- valera6777
- Сообщения: 16
- Зарегистрирован: Пн май 11, 2026 11:48 pm
Re: Как оптимизировать draw calls в Unity URP для мобильных устройств
Добавлю про партиклы — это часто неочевидный убийца производительности. Каждая партиклная система это минимум один draw call, а если используешь несколько текстур — то больше. На мобиле ограничивай Max Particles и обязательно ставь Stop Action = Disable чтобы отключенные системы не висели в памяти.
- pentester_ivan
- Сообщения: 1
- Зарегистрирован: Вс май 17, 2026 11:29 pm
- Репутация: 47
Re: Как оптимизировать draw calls в Unity URP для мобильных устройств
✔ Лучший ответ — сформирован автоматически
Ещё момент по URP специфично: проверь сколько у тебя Render Passes в pipeline. Лишние passes (например постэффекты типа Bloom) на слабом железе лучше отключать или делать их опциональными в настройках качества. В URP 14+ появился Render Graph, но на мобиле пока лучше сидеть на проверенном пути.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
- Zigbee устройства отваливаются пачками — оказалось виноват USB3 и SSD-корпус
8 ответов · 478 просмотров
-
-
- GCP Billing неожиданный счёт за Cloud Storage как разобраться и оптимизировать расходы
5 ответов · 10 просмотров
-
- Zigbee2MQTT ошибка не удается подключить координатор устройство не найдено
6 ответов · 10 просмотров
-
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость