Unity 6.3
0 онлайн 91 гостей 3 в системе
Вход
Оптимизация Шаг 131 из 208

Scriptable Render Pipeline Дозатор в URP

Scriptable Render Pipeline (SRP) Batcher является оптимизацией draw call, которая существенно повышает производительность приложений, использующих SRP. SRP Batcher сокращает время CPU, необходимое Unity для подготовки и отправки вызовов отрисовки для материалов, использующих один и тот же вариант шейдера.

Бачер Scriptable Render Pipeline (SRP) сокращает время CPU, необходимое Unity для рендеринга сцен с большим количеством материалов, использующих один и тот же вариант шейдера.
Бачер Scriptable Render Pipeline (SRP) сокращает время CPU, необходимое Unity для рендеринга сцен с большим количеством материалов, использующих один и тот же вариант шейдера.

Требования и совместимость

В этом разделе содержится информация о совместимости конвейера рендеринга SRP Batcher.

Совместимость конвейера отображения

Особенности Universal Render Pipeline (URP) High Definition Render Pipeline (HDRP) Изготовленный на заказ Scriptable Render Pipeline (SRP) Built-in Render Pipeline
SRP Дозатор Да Да Да Нет

Как работает SRP Batcher

Традиционный способ оптимизации вызовов отрисовки — сократить их количество. SRP Batcher вместо этого сокращает изменения состояния рендеринга между вызовами отрисовки. Для этого SRP Batcher объединяет последовательность команд bind и draw GPU. Каждая последовательность команд называется SRP batch.

Пакетное выполнение команд bind и draw уменьшает настройку GPU между вызовами draw.
Пакетное выполнение команд привязки и отрисовки сокращает настройку GPU между вызовами отрисовки.

Для достижения оптимальной производительности вашего рендеринга, каждая батч SRP должна содержать как можно больше команд bind и draw. Чтобы достичь этого, используйте как можно меньше вариантов шейдеров. Вы все равно можете использовать столько различных материалов с одним шейдером, сколько хотите.

Когда Unity обнаруживает новый материал во время цикла рендеринга, CPU собирает все свойства и привязывает их к GPU в постоянных буферах. Количество буферов GPU зависит от того, как шейдер объявляет свои постоянные буферы.

SRP Batcher — это низкоуровневый цикл рендеринга, благодаря которому данные материалов остаются в памяти GPU. Если содержимое материала не меняется, SRP Batcher не вносит никаких изменений в состояние рендеринга. Вместо этого SRP Batcher использует отдельный путь кода для обновления свойств движка Unity в большом буфере GPU, например:

Работа SRP Batcher. SRP Batcher использует выделенный путь кода для обновления свойств Unity Engine в большом буфере GPU.
Работа SRP Batcher. SRP Batcher использует выделенный путь кода для обновления свойств Unity Engine в большом буфере GPU.

Здесь, CPU только обрабатывает Unity Свойства двигателя, маркированные Большой буфер на объект Все материалы имеют устойчивые постоянные буферы, расположенные в GPU памяти, которые готовы к использованию. Это ускоряет рендеринг, потому что:

  • Все материальное содержимое теперь сохраняется в памяти GPU.
  • Выделенный код управляет большим константным буфером GPU на объект для всех свойств на объект.