TGViewer
Game Development | YeaHub Game Development | YeaHub @yeahub_game_dev · 370 subscribers
Post #388 229
Что такое Draw Call (Batches) и почему они убивают производительность

Когда Unity рисует сцену, она не “стримит картинку”, а отдельно отрисовывает каждый объект.

Перед каждым рендером процессор говорит видеокарте:
“Вот меш, вот материал, вот позиция - рисуй”


Такая команда называется Draw Call.
Если у тебя на сцене 100 объектов - будет 100 Draw Calls.
И каждое обращение CPU → GPU стоит времени.

Почему это проблема

Видеокарта отлично справляется с рендером, но процессор задыхается, когда надо постоянно передавать команды.
Чем больше объектов и материалов - тем выше нагрузка на CPU, и тем ниже FPS.

Как сократить Draw Calls

Согласитесь - было бы эффективнее один раз передать информацию о многих объектах со сцены, а не передавать её маленькими кусочками.
В Unity есть такой механизм. Это называется Batching.
Делится на два вида:

1. Static Batching - для неподвижных объектов.
Если у тебя есть объекты на сцене, которые не будут двигаться (стены, окружение, декор) - отмечай их галочкой Static. Найти её можно в верхнем-правом углу в инспекторе объекта.
Unity объединит их в один большой меш на этапе сборки сцены.

2. Dynamic Batching - для подвижных.
Включается в Edit → Project Settings → Player → Other Settings → Dynamic Batching.
Автоматически будет работать для всех остальных объектов, не попавших в Static Batching. Наиболее эффективен для маленьких объектов.

Главное условие работы batching’а

Объекты должны использовать один и тот же материал.
Если у каждого свой - batching не сработает.
Поэтому, одна из твоих задач - сократить количество используемых материалов.
Конечно, оставить один материал на всю игру невозможно - но это и не требуется.

Как проверить количество Draw Calls

В Game View → Stats смотри строчку Batches.
Это количество вызовов после всех оптимизаций.

Ориентиры, рекомендуемые Unity:

До 200 Draw Call - для мобильных
До 2000 Draw Call - для ПК

Итог

Draw Calls - количество "приказов" от CPU на GPU отрисовать объект.
Меньше приказов = меньше лагов и больше FPS.

Для уменьшения - сокращение количества материалов, использование Static Batching для неподвижных объектов, Dynamic Batching - для подвижных.

🚀 Пост Guru Unity: @Minerope
More from @yeahub_game_dev
  1. Oct 9, 2026#video #unity 📚 FREE Complete Unity Game Development Courses Полный бесплатный курс по ра…
  2. Oct 8, 2026#Собес #lost #update 🤔 Что такое lost update и при каких условиях он возникает? 💬 Кратко…
  3. Oct 7, 2026#Собес #Task #ThreadPool #async 🤔 Как Task использует ThreadPool? 💬 Кратко: Task использ…
  4. Oct 5, 2026#Собес #memory_layout #data_alignment #padding 🤔 Какие есть исключения из правил хранения…
  5. Oct 2, 2026#tool #гит 📚 Хочешь изучить Git, не рискуя своей локальной установкой? Теперь можно запус…
  6. Oct 1, 2026#Собес #docker_rm #container #stop 🤔 Как удалить Docker-контейнер? 💬 Кратко: Чтобы удали…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →