Добавление того же самого префаба к игровой сцене увеличит или не увеличит количество вызовов? - PullRequest
0 голосов
/ 26 сентября 2018

Мне приходит в голову, что, когда я продолжаю добавлять один и тот же сборник в одну сцену, количество вызовов отрисовки увеличивается.Могу ли я сделать что-то, чтобы сделать его ниже?

Ответы [ 3 ]

0 голосов
/ 26 сентября 2018

Чтобы уменьшить количество звонков, вы можете использовать различную технику, и какая техника вы используете, зависит от типа создаваемой игры и целевой платформы.

Некоторые способы уменьшить количество вызовов отрисовки:

  • Отбор окклюзии
  • Пакетная обработка
  • Создание экземпляров графического процессора

Подробнееинформацию читайте в документации Unity3D по Оптимизация рендеринга графики в играх Unity

0 голосов
/ 21 октября 2018

Существует множество способов уменьшить количество вызовов отрисовки и оптимизировать их.

  1. Использование Atlas / Spritesheet.Рендереры, использующие спрайты из одного и того же атласа, могут помочь уменьшить количество вызовов отрисовки, особенно если расстановка игровых объектов выполнена правильно.
  2. Вы можете использовать отладчик фреймов Unity, чтобы узнать, можете ли вы по-прежнему оптимизировать префабы / игровые объекты на основерасслоение / иерархия. Frame Debugger
  3. Правильное использование Canvas.Для пользовательской части игры, если в пользовательском интерфейсе есть ползунки, окна анимации, движущиеся объекты, лучше всего их размещать на отдельном холсте.Причина этого в том, что если изменяется RectTransform пользовательского интерфейса, рисуется весь Canvas.Таким образом, если 80% пользовательского интерфейса не изменились, но они находятся на том же холсте из 20%, которые изменились, 80% все равно будут перерисованы.
0 голосов
/ 26 сентября 2018

Самый простой способ уменьшить количество вызовов отрисовки при сохранении одних и тех же активов - использовать объединение, при котором вы создаете одну сетку из различных сеток.Это увеличит объем видеопамяти, поскольку вам придется реплицировать все данные сетки.

Другой подход, более сложный и требующий написания ваших собственных шейдеров, заключается в использовании слияния экземпляров, когда вы создаете единыйактивировать из различных сеток и рисовать его, используя вершины для извлечения необходимых данных, что позволяет рисовать несколько активов в виде одной сетки (1 вызов рисования) без репликации данных.

...