Dynamic Batching
Говоря об оптимизации при разработке на Unity 3D, мы уже упоминали Performance Profiler и Static batching. Пришло время сказать пару слов про Dynamic Batching.
Dynamic Batching можно использовать для нестатических объектов. Такие объекты требуют на каждую вершину определенные ресурсы, следовательно, Dynamic Batching применяется лишь к мешам, которые содержат меньше 900 вершин. Также стоит вспомнить, что шейдер использует Vertex Position, Colors и UV. В результате несложно посчитать, что может быть до трехсот вершин на объект.
Какие полезные советы по этому поводу мы можем найти в руководстве Unity:
- Dynamic Batching предполагает дополнительную нагрузку для каждой вершины, таким образом, как уже упоминалось, его рационально использовать лишь к мешам, которые в сумме содержат меньше 900 вершин.
- Если шейдер у вас применяет Vertex Position, Normal и единственный UV, то у вас есть возможность батчить до 300 вершин. Если же шейдер задействует Vertex Position, Normal, Tangent, а также UV0 и UV1, то число вершин сокращается до 180.
- Не стоит масштабировать! Дело в том, что объекты, имеющие масштаб (1,1,1) и (2,2,2), батчиться не будут.
- Продолжая тему предыдущего пункта, скажем, что батчиться не будут и равномерно масштабированные объекты с неравномерно масштабированными.
- Применение разных материалов с высокой вероятностью приведет к сбою батчинга.
- У объектов с Lightmap существует дополнительный параметр материала: смещение/масштаб в Lightmap. Следовательно, объекты с Lightmap тоже батчиться не будут.
Остается добавить, что если объект обладает анимацией, однако при всем при этом существует неподвижная часть, вы можете отметить эту часть в качестве статической, причем мешать анимации она не будет.
По материалам https://tproger.ru/.