Проблемы с Dynamic batching

Раздел, посвящённый самому важному - скорости.

Проблемы с Dynamic batching

Сообщение aleha1010 18 июл 2017, 08:01

Доброго времени суток.

Возникла следующая проблема. Два спрайта на сцене с одним материалом обрабатываются за два Draw call'а. Больше ничего на сцене нет. Спрайты упакованы в один атлас и на одной странице. Трансформации не применялись. Какие либо другие параметры тоже не изменялись. Frame Debugger сообщает следующее:"Objects have different MaterialPropertyBlock set". В скриптах над спрайтами никаких модификаций не проводилось.

Прошу совета у знатаков. По какой причине эти два спрайта не батчатся вместе?
aleha1010
UNец
 
Сообщения: 3
Зарегистрирован: 18 июл 2017, 05:40

Re: Проблемы с Dynamic batching

Сообщение Woolf 18 июл 2017, 12:04

что, и света тоже нет? Это не показатель на двух спрайтах. Сделайте 200 спрайтов и посмотрите, будут ли батчится.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Проблемы с Dynamic batching

Сообщение Elday 18 июл 2017, 12:14

Рендеринг спрайтов в редакторе по умолчанию не использует пэкинг спрайтов. Поэтому тебе нужно его включить: Edit -> Project Settings -> Editor -> Sprite Packer -> Always Enabled.
После этого включи фреймдебаггер в игровом режиме - должен быть один дроуколл на эти два спрайта.
Elday
UNец
 
Сообщения: 5
Зарегистрирован: 17 мар 2014, 22:55

Re: Проблемы с Dynamic batching

Сообщение aleha1010 18 июл 2017, 13:35

Woolf писал(а):что, и света тоже нет? Это не показатель на двух спрайтах. Сделайте 200 спрайтов и посмотрите, будут ли батчится.

И света нет. Шейдер используется Sprite-Default. Sprite Mode у этих двух спрйтов Single. Сделал по 63 экземпляра каждого из спрайтов. В итоге 2 Draw call'а. Добавил еще несколько других спрайтов. У вновь добавленых Sprite Mode = Multiple. Теперь получается в один Draw call попадют спрайты из одного файла. Всего 3 Draw call'а. В первом и вотором Draw call'е спрайты у которых Sprite Mode = Single, по одному Draw call'у на файл со стпрайтом соответственно. А в трейтий попадают все спрйты из файла у которого Sprite Mode = Multiple.
aleha1010
UNец
 
Сообщения: 3
Зарегистрирован: 18 июл 2017, 05:40

Re: Проблемы с Dynamic batching

Сообщение aleha1010 18 июл 2017, 13:38

Elday писал(а):Рендеринг спрайтов в редакторе по умолчанию не использует пэкинг спрайтов. Поэтому тебе нужно его включить: Edit -> Project Settings -> Editor -> Sprite Packer -> Always Enabled.
После этого включи фреймдебаггер в игровом режиме - должен быть один дроуколл на эти два спрайта.

Спасибо! Проблема решилась!
aleha1010
UNец
 
Сообщения: 3
Зарегистрирован: 18 июл 2017, 05:40

Re: Проблемы с Dynamic batching

Сообщение Woolf 18 июл 2017, 14:14

Сделал по 63 экземпляра каждого из спрайтов. В итоге 2 Draw call'а

Ну вот видите, значит батчит же
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59


Вернуться в Оптимизация

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

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