Страница 1 из 1

Проблемы с Dynamic batching

СообщениеДобавлено: 18 июл 2017, 08:01
aleha1010
Доброго времени суток.

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

Прошу совета у знатаков. По какой причине эти два спрайта не батчатся вместе?

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

СообщениеДобавлено: 18 июл 2017, 12:04
Woolf
что, и света тоже нет? Это не показатель на двух спрайтах. Сделайте 200 спрайтов и посмотрите, будут ли батчится.

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

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

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

СообщениеДобавлено: 18 июл 2017, 13:35
aleha1010
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.

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

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

Спасибо! Проблема решилась!

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

СообщениеДобавлено: 18 июл 2017, 14:14
Woolf
Сделал по 63 экземпляра каждого из спрайтов. В итоге 2 Draw call'а

Ну вот видите, значит батчит же