Столкнулся с ситуацией когда одинаковые объекты на сцене увеличивали количество DC и при этом не батчились. Покопавшись обнаружил:
О динамическом батчинге немного:
900 вертексов (не треугольников, GPU нужны вертексы, а не трисы) — это максимальное количество в вертексов в меше после бачтинга, то есть меше, собранного из мешей с одинаковым материалом. Но это не значит что вообще максимум 900 вертексов можно сбатчить, движок соберёт ещё один меш небольше 900 вертексов и отправит его на рендер.
300 вертексов — это максимальное количество в вертексов для меша, чтобы подвергнуть его динамическому батчингу, при этом шейдер должен использовать только позицию вертекса, его нормаль и UV-координату, не больше.
180 вертексов — если шейдер использует дополнительно ещё одну UV-координату и тангенсы.
Нежелательно использовать масштабирование объектов. (подробнее в ссылке сверху)
Плюс если нужен динамический батчинг, то нельзя использовать многопроходные шейдеры.
Ещё как показывает практика, если шейдер использует тангенсы для нормал маппинга, то динамический батчинг перестаёт работать сколько бы вертексов в меше не было.
Может кто-то ещё знает нечто интересное?
Но вопрос немного не об этом. Художник сделал эффект взрыва. На одной сцене он нуждался в 8 DC, а остальные 100 DC батчились. Используя тот же взрыв в другой сцене он вообще не батчился и DC вырастало на все 120 DC. Избавившись от всех источников свет, кроме одного directional, удалось добиться что соотношение батченных и небатченных DC стало 50 на 50.
Кто-нибудь сталкивался с таким? Есть ещё нюансы использования динамического батчинга?