Как оптимизировать draw calls в Unity URP для мобильных устройств

Рейтинг: 30.1% · 4 голосов
Создание игр на Unity, Unreal Engine, Godot: 3D-графика, шейдеры, физика, геймдизайн, оптимизация и инди-проекты.
Ответить
Аватара пользователя
netml5342
Сообщения: 2
Зарегистрирован: Ср май 27, 2026 10:53 am

Как оптимизировать draw calls в Unity URP для мобильных устройств

Сообщение netml5342 »

Делаю мобильную игру на Unity 2022.3 LTS с URP. На телефоне среднего класса (Snapdragon 680) просадки до 40fps при загруженных сценах. В Profiler вижу что draw calls улетают за 200 при сотне объектов на экране. Статический батчинг включён, GPU Instancing на материалах тоже стоит. Что ещё можно сделать? Сцена — изометрия, куча одинаковых тайловых мешей.
👍3 ❤️4 🔥 😄 🤔1
✔ Лучший ответ сформирован автоматически — 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 для мобильных устройств

Сообщение matvey_dev »

200 draw calls для Snapdragon 680 — это уже многовато, там GPU слабоват. Первое что проверь: у всех ли одинаковых объектов один и тот же материал с одними и теми же параметрами? GPU Instancing работает только если материал буквально одинаковый — разные значения _Color в одном шейдере уже ломают батч. Используй MaterialPropertyBlock если нужно менять цвет/текстуру per-instance.
👍1 ❤️ 🔥1 😄 🤔
Аватара пользователя
lev_loop
Сообщения: 30
Зарегистрирован: Пн май 11, 2026 5:23 am

Re: Как оптимизировать draw calls в Unity URP для мобильных устройств

Сообщение lev_loop »

Для изометрии с тайлами очень помогает SpriteAtlas если используешь 2D спрайты, или Texture Atlas для 3D. Суть одна — сводишь все тайловые текстуры в один атлас, тогда все объекты с этим атласом могут батчиться в один draw call. В URP это работает нормально. Ещё проверь что у тебя нет теней на каждом объекте — тени удваивают draw calls (shadow pass отдельный).
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
ksenia1921
Сообщения: 8
Зарегистрирован: Пн май 11, 2026 5:50 pm

Re: Как оптимизировать draw calls в Unity URP для мобильных устройств

Сообщение ksenia1921 »

Вот развёрнутое решение из личного опыта с похожим проектом. Шаг 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 на том же железе.
👍2 ❤️ 🔥4 😄1 🤔1
Аватара пользователя
valera6777
Сообщения: 16
Зарегистрирован: Пн май 11, 2026 11:48 pm

Re: Как оптимизировать draw calls в Unity URP для мобильных устройств

Сообщение valera6777 »

Добавлю про партиклы — это часто неочевидный убийца производительности. Каждая партиклная система это минимум один draw call, а если используешь несколько текстур — то больше. На мобиле ограничивай Max Particles и обязательно ставь Stop Action = Disable чтобы отключенные системы не висели в памяти.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
pentester_ivan
Сообщения: 1
Зарегистрирован: Вс май 17, 2026 11:29 pm
Репутация: 47

Re: Как оптимизировать draw calls в Unity URP для мобильных устройств

Сообщение pentester_ivan »

✔ Лучший ответ — сформирован автоматически
Ещё момент по URP специфично: проверь сколько у тебя Render Passes в pipeline. Лишние passes (например постэффекты типа Bloom) на слабом железе лучше отключать или делать их опциональными в настройках качества. В URP 14+ появился Render Graph, но на мобиле пока лучше сидеть на проверенном пути.
👍 ❤️ 🔥 😄1 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Геймдев и разработка игр»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость