Введение в оптимизацию вызовов отрисовки
Оптимизация вызовов отрисовки ускоряет рендеринг, снижая частоту, с которой CPU отправляет данные на GPU.
По умолчанию каждому мешу нужен собственный вызов отрисовки. Вызов отрисовки состоит из следующих шагов:
- Обновление состояния рендеринга. CPU через графический API готовит и отправляет всё, что нужно GPU для отрисовки меша: например, код шейдера, текстуры и буферы. Это самый нагруженный для CPU шаг.
- Отправить вызов на проведение розыгрыша. CPU использует графику API, чтобы сообщить GPU, что должен провести розыгрыш.
При оптимизации вызовов отрисовки Unity группирует данные и меши, использующие одно и то же состояние рендеринга. В результате Unity реже обновляет состояние рендеринга и отправляет несколько объектов одним вызовом отрисовки.
Оптимизация вызовов отрисовки даёт следующие преимущества:
- Улучшите время кадров или увеличьте количество GameObjects, которые вы можете отобразить в кадре.
- Уменьшение количества электроэнергии, необходимой для вашего приложения. Для устройств, работающих от батарей, это снижает тепло, которое производит устройство, и скорость, с которой батареи разряжаются.
Типы оптимизации вызова игры
Методы оптимизации вызова чертежей в Unity работают одним из следующих способов:
- Отрисовка нескольких копий меша в одном вызове отрисовки с использованием аппаратных возможностей GPU. Это и есть GPU instancing.
- Использование другого метода, чтобы сократить число обновлений состояния рендеринга, — например, больших буферов GPU. Именно так работает Scriptable Render Pipeline (SRP) Batcher.
- Объединение мешей, использующих одно и то же состояние рендеринга, и их совместная отрисовка.
Дополнительные сведения см. в Выбор метода оптимизации вызовов отрисовки.